Migration Guide#
From 0.2 to 0.3#
Python 3.6 and
manylinux2010
(PEP 571) support have been removed. The new minimal versions are Python 3.7 andmanylinux2014
(PEP 599).The on-disk storage system has been rebuilt on top of RocksDB. It is now implemented by the
Store
class that keeps the same API as the lateSledStore
class.To migrate you have to dump the store content using pyoxigraph 0.2 and the following code:
from pyoxigraph import SledStore store = SledStore('MY_STORAGE_PATH') with open('temp_file.nq', 'wb') as fp: store.dump(fp, "application/n-quads")
And then upgrade to pyoxigraph 0.3 and run:
from pyoxigraph import Store store = Store('MY_NEW_STORAGE_PATH') with open('temp_file.nq', 'rb') as fp: store.bulk_load(fp, "application/n-quads")
The in-memory storage class
MemoryStore
has been merged into theStore
class that provides the exact same API as the lateMemoryStore
. On platforms other than Linux, a temporary directory is created when opening theStore
and automatically removed when it is garbage collected. No data is written in this directory.Store
operations are now transactional using the “repeatable read” isolation level: the store only exposes changes that have been “committed” (i.e. no partial writes) and the exposed state does not change for the complete duration of a read operation (e.g. a SPARQL query) or a read/write operation (e.g. a SPARQL update).RDF-star is now supported (including serialization formats and SPARQL-star).
Triple
can now be used inTriple.object
,Triple.object
,Quad.subject
andQuad.object
.