diff options
-rw-r--r-- | tagit/apps/desktop.py | 23 | ||||
-rw-r--r-- | tagit/apps/port_data.py | 141 |
2 files changed, 21 insertions, 143 deletions
diff --git a/tagit/apps/desktop.py b/tagit/apps/desktop.py index b64bf7e..913f922 100644 --- a/tagit/apps/desktop.py +++ b/tagit/apps/desktop.py @@ -27,6 +27,26 @@ __all__: typing.Sequence[str] = ( ## code ## +def load_data_hook(cfg, store): + """Data loading hook to circumvent non-persistent storage.""" + import pickle + import os + # fetch data_hook config flags + schema_path = cfg('session', 'data_hook', 'schema') + triples_path = cfg('session', 'data_hook', 'triples') + # load data if present + if os.path.exists(schema_path) and os.path.exists(triples_path): + with open(schema_path, 'rb') as ifile: + store._backend._schema = pickle.load(ifile) + with open(triples_path, 'rb') as ifile: + for triple in pickle.load(ifile): + store._backend._graph.add(triple) + return store + +config.declare(('session', 'data_hook', 'schema'), config.String(), '') +config.declare(('session', 'data_hook', 'triples'), config.String(), '') + + class TagitApp(App): """The tagit main application.""" @@ -41,9 +61,8 @@ class TagitApp(App): from tagit.config.loader import load_settings, TAGITRC cfg = load_settings(TAGITRC, 0) - # open BSFS storage - store = bsfs.Open(cfg('session', 'bsfs')) + store = load_data_hook(cfg, bsfs.Open(cfg('session', 'bsfs'))) # FIXME: mb/port: data hook # check storage schema with open(resource_find('required_schema.nt'), 'rt') as ifile: required_schema = bsfs.schema.from_string(ifile.read()) diff --git a/tagit/apps/port_data.py b/tagit/apps/port_data.py deleted file mode 100644 index 2e4161b..0000000 --- a/tagit/apps/port_data.py +++ /dev/null @@ -1,141 +0,0 @@ - -# standard imports -import os -import pickle - -# tagit imports -from tagit.utils import ns -from tagit.utils.bsfs import URI - -# load data -def add_port_data(store): - with open(os.path.join(os.path.dirname(__file__), 'port-schema.pkl'), 'rb') as ifile: - store._backend._schema = pickle.load(ifile) - with open(os.path.join(os.path.dirname(__file__), 'port-data.pkl'), 'rb') as ifile: - for triple in pickle.load(ifile): - store._backend._graph.add(triple) - - -def add_port_data2(store): - # tags - t_hello = store.node(ns.bsn.Tag, URI('http://example.com/me/tag#hello')) \ - .set(ns.bst.label, 'hello') - t_world = store.node(ns.bsn.Tag, URI('http://example.com/me/tag#world')) \ - .set(ns.bst.label, 'world') - t_foobar = store.node(ns.bsn.Tag, URI('http://example.com/me/tag#foobar')) \ - .set(ns.bst.label, 'foobar') - - # entities - n0 = store.node(ns.bsn.Entity, URI('http://example.com/me/entity#01')) \ - .set(ns.bse.filename, 'textfile.t') \ - .set(ns.bse.filesize, 100) \ - .set(ns.bse.tag, t_hello) \ - .set(ns.bse.tag, t_foobar) \ - .set(ns.bse.latitude, 47.374444) \ - .set(ns.bse.longitude, 8.541111) - n1 = store.node(ns.bsn.Entity, URI('http://example.com/me/entity#02')) \ - .set(ns.bse.filename, 'document.pdf') \ - .set(ns.bse.filesize, 200) \ - .set(ns.bse.tag, t_world) \ - .set(ns.bse.tag, t_foobar) - n2 = store.node(ns.bsn.Entity, URI('http://example.com/me/entity#03')) \ - .set(ns.bse.filename, 'document.odt') \ - .set(ns.bse.filesize, 300) \ - .set(ns.bse.tag, t_world) - n3 = store.node(ns.bsn.Entity, URI('http://example.com/me/entity#04')) \ - .set(ns.bse.filename, 'image.jpg') \ - .set(ns.bse.comment, 'some image') \ - .set(ns.bse.tag, t_hello) \ - .set(ns.bse.tag, t_foobar) - n4 = store.node(ns.bsn.Entity, URI('http://example.com/me/entity#05')) \ - .set(ns.bse.filename, 'image.png') \ - .set(ns.bse.comment, 'another image') \ - .set(ns.bse.tag, t_hello) - - # groups - grp = store.node(ns.bsn.Group, URI('http://example.com/me/group#1234')) - grp.set(ns.bsg.represented_by, n0) - n0.set(ns.bse.group, grp) - n1.set(ns.bse.group, grp) - n3.set(ns.bse.group, grp) - - # previews - base = os.path.join(os.path.dirname(__file__), 'port-data') - n0.set(ns.bse.preview, - store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent01_w100_h100')) \ - .set(ns.bsp.width, 100) \ - .set(ns.bsp.height, 100) \ - .set(ns.bsp.orientation, 1) \ - .set(ns.bsp.asset, open(os.path.join(base, 'ent01_w100_h100.jpg'), 'rb').read()) - ) - n0.set(ns.bse.preview, - store.node(ns.bsn.Preview, str('http://example.com/me/preview#ent01_w400_h200')) \ - .set(ns.bsp.width, 200) \ - .set(ns.bsp.height, 400) \ - .set(ns.bsp.orientation, 1) \ - .set(ns.bsp.asset, open(os.path.join(base, 'ent01_w400_h200.jpg'), 'rb').read()) - ) - n0.set(ns.bse.preview, - store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent01_w400_h400')) \ - .set(ns.bsp.width, 400) \ - .set(ns.bsp.height, 400) \ - .set(ns.bsp.orientation, 1) \ - .set(ns.bsp.asset, open(os.path.join(base, 'ent01_w400_h400.jpg'), 'rb').read()) - ) - n1.set(ns.bse.preview, - store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent02_w100_h100')) \ - .set(ns.bsp.width, 100) \ - .set(ns.bsp.height, 100) \ - .set(ns.bsp.orientation, 1) \ - .set(ns.bsp.asset, open(os.path.join(base, 'ent02_w100_h100.jpg'), 'rb').read()) - ) - n1.set(ns.bse.preview, - store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent02_w400_h200')) \ - .set(ns.bsp.width, 200) \ - .set(ns.bsp.height, 400) \ - .set(ns.bsp.orientation, 1) \ - .set(ns.bsp.asset, open(os.path.join(base, 'ent02_w400_h200.jpg'), 'rb').read()) - ) - n2.set(ns.bse.preview, - store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent03_w100_h100')) \ - .set(ns.bsp.width, 100) \ - .set(ns.bsp.height, 100) \ - .set(ns.bsp.orientation, 1) \ - .set(ns.bsp.asset, open(os.path.join(base, 'ent03_w100_h100.jpg'), 'rb').read()) - ) - n2.set(ns.bse.preview, - store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent03_w400_h200')) \ - .set(ns.bsp.width, 200) \ - .set(ns.bsp.height, 400) \ - .set(ns.bsp.orientation, 1) \ - .set(ns.bsp.asset, open(os.path.join(base, 'ent03_w400_h200.jpg'), 'rb').read()) - ) - n3.set(ns.bse.preview, - store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent04_w100_h100')) \ - .set(ns.bsp.width, 100) \ - .set(ns.bsp.height, 100) \ - .set(ns.bsp.orientation, 1) \ - .set(ns.bsp.asset, open(os.path.join(base, 'ent04_w100_h100.png'), 'rb').read()) - ) - n3.set(ns.bse.preview, - store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent04_w400_h200')) \ - .set(ns.bsp.width, 200) \ - .set(ns.bsp.height, 400) \ - .set(ns.bsp.orientation, 1) \ - .set(ns.bsp.asset, open(os.path.join(base, 'ent04_w400_h200.png'), 'rb').read()) - ) - n4.set(ns.bse.preview, - store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent05_w100_h100')) \ - .set(ns.bsp.width, 100) \ - .set(ns.bsp.height, 100) \ - .set(ns.bsp.orientation, 1) \ - .set(ns.bsp.asset, open(os.path.join(base, 'ent05_w100_h100.jpg'), 'rb').read()) - ) - n4.set(ns.bse.preview, - store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent05_w400_h200')) \ - .set(ns.bsp.width, 200) \ - .set(ns.bsp.height, 400) \ - .set(ns.bsp.orientation, 1) \ - .set(ns.bsp.asset, open(os.path.join(base, 'ent05_w400_h200.jpg'), 'rb').read()) - ) - |