s2.store¶
PyS2 allows you to interact with S2Paper and S2Author via
S2DataStore which provides a dict-like interface that can be inherited
and adapted for any custom backend. JsonDS is an example that simply
uses json files to reduce the memory footprint of working with many papers
while creating human-readable records.
S2DataStore¶
-
class
s2.store.S2DataStore(s2model=<class 's2.models.S2Paper'>)¶ Base class for storing/retrieving S2 Objects
-
clear() → None. Remove all items from D.¶
-
get(k[, d]) → D[k] if k in D, else d. d defaults to None.¶
-
items() → a set-like object providing a view on D’s items¶
-
keys() → a set-like object providing a view on D’s keys¶
-
classmethod
load_papers(*args, **kwargs)¶ Create datastore for papers with appropriate typehints.
-
pop(k[, d]) → v, remove specified key and return the corresponding value.¶ If key is not found, d is returned if given, otherwise KeyError is raised.
-
popitem() → (k, v), remove and return some (key, value) pair¶ as a 2-tuple; but raise KeyError if D is empty.
-
setdefault(k[, d]) → D.get(k,d), also set D[k]=d if k not in D¶
-
update([E, ]**F) → None. Update D from mapping/iterable E and F.¶ If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v
-
values() → an object providing a view on D’s values¶
-
JsonDS¶
-
class
s2.store.json.JsonDS(json_dir, enforce_id=True, s2model=<class 's2.models.S2Paper'>)¶ -
clear() → None. Remove all items from D.¶
-
get(k[, d]) → D[k] if k in D, else d. d defaults to None.¶
-
items() → a set-like object providing a view on D’s items¶
-
keys() → a set-like object providing a view on D’s keys¶
-
classmethod
load_papers(*args, **kwargs)¶ Create datastore for papers with appropriate typehints.
-
pop(k[, d]) → v, remove specified key and return the corresponding value.¶ If key is not found, d is returned if given, otherwise KeyError is raised.
-
popitem() → (k, v), remove and return some (key, value) pair¶ as a 2-tuple; but raise KeyError if D is empty.
-
setdefault(k[, d]) → D.get(k,d), also set D[k]=d if k not in D¶
-
update([E, ]**F) → None. Update D from mapping/iterable E and F.¶ If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v
-
values() → an object providing a view on D’s values¶
-