Utils#
Various functions and classes.
Common#
All-purpose functions
- gismap.utils.common.get_classes(root, key='name')[source]#
- Parameters:
root (
class
) – Starting class (can be abstract).key (
str
, default=’name’) – Attribute to look-up
- Returns:
Dictionaries of all subclasses that have a key attribute (as in class attribute key).
- Return type:
Examples
>>> from gismap.database.blueprint import DBAuthor >>> subclasses = get_classes(DBAuthor, key='db_name') >>> dict(sorted(subclasses.items())) {'dblp': <class 'gismap.database.dblp.DBLPAuthor'>, 'hal': <class 'gismap.database.hal.HALAuthor'>}
Requests#
Functions related to the requests
MixInIO#
MixInIO class (make classes easy to dump and load).
- class gismap.utils.mixinio.MixInIO[source]#
Provide basic save/load capacities to other classes.
- dump(filename: str, path='.', overwrite=False, compress=True, stemize=True)[source]#
Save instance to file.
- Parameters:
Examples
>>> import tempfile >>> v1 = ToyClass(42) >>> v2 = ToyClass() >>> v2.value 0 >>> with tempfile.TemporaryDirectory() as tmpdirname: ... v1.dump(filename='myfile', compress=True, path=tmpdirname) ... dir_content = [file.name for file in Path(tmpdirname).glob('*')] ... v2 = ToyClass.load(filename='myfile', path=Path(tmpdirname)) ... v1.dump(filename='myfile', compress=True, path=tmpdirname) # doctest.ELLIPSIS File ...myfile.pkl.gz already exists! Use overwrite option to overwrite. >>> dir_content ['myfile.pkl.gz'] >>> v2.value 42
>>> with tempfile.TemporaryDirectory() as tmpdirname: ... v1.dump(filename='myfile', compress=False, path=tmpdirname) ... v1.dump(filename='myfile', compress=False, path=tmpdirname) # doctest.ELLIPSIS File ...myfile.pkl already exists! Use overwrite option to overwrite.
>>> v1.value = 51 >>> with tempfile.TemporaryDirectory() as tmpdirname: ... v1.dump(filename='myfile', path=tmpdirname, compress=False) ... v1.dump(filename='myfile', path=tmpdirname, overwrite=True, compress=False) ... v2 = ToyClass.load(filename='myfile', path=tmpdirname) ... dir_content = [file.name for file in Path(tmpdirname).glob('*')] >>> dir_content ['myfile.pkl'] >>> v2.value 51
>>> with tempfile.TemporaryDirectory() as tmpdirname: ... v2 = ToyClass.load(filename='thisfilenamedoesnotexist') Traceback (most recent call last): ... FileNotFoundError: [Errno 2] No such file or directory: ...