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_authors(*args, **kwargs)

Create datastore for authors with appropriate typehints.

Return type

S2DataStore[str, S2Author]

classmethod load_papers(*args, **kwargs)

Create datastore for papers with appropriate typehints.

Return type

S2DataStore[str, S2Paper]

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_authors(*args, **kwargs)

Create datastore for authors with appropriate typehints.

Return type

S2DataStore[str, S2Author]

classmethod load_papers(*args, **kwargs)

Create datastore for papers with appropriate typehints.

Return type

S2DataStore[str, S2Paper]

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