cgnal.core.data.layer package
Subpackages
Module contents
Data layer module.
- class cgnal.core.data.layer.Archiver(*args, **kwds)
Bases:
Generic
[cgnal.core.typing.T
],abc.ABC
Object that retrieve data from source and stores it in memory.
- abstract archive(obj: cgnal.core.typing.T) Union[cgnal.core.data.layer.Archiver, None, pymongo.results.UpdateResult, List[pymongo.results.UpdateResult]]
Archive an object in the persistance layer.
- Parameters
obj – object to be archived
- Returns
archiver or update result
- foreach(f: Callable[[cgnal.core.typing.T], None], *args, **kwargs) None
Apply a function to each object.
- Parameters
f – function
args – other arguments passed to the retrieve method
kwargs – other keyworded arguments passed to the retrieve method
- map(f: Callable[[cgnal.core.typing.T], cgnal.core.data.layer.V], *args: Any, **kwargs: Any) Iterator[cgnal.core.data.layer.V]
Apply a tranformation to each object and return an iterator.
- Parameters
f – function
args – other arguments passed to the retrieve method
kwargs – other keyworded arguments passed to the retrieve method
- Yield
iterator over transformed objects
- abstract retrieve(condition: Any, sort_by: Any) Iterator[cgnal.core.typing.T]
Retrieve objects under given filter conditions and sorting options.
- Parameters
condition – filter to be applied in the persistance layer
sort_by – sorting options
- Yield
iterator over the objects retrieved from the persistance layer
- retrieveGenerator(condition: Any, sort_by: Any) cgnal.core.data.model.core.IterGenerator[cgnal.core.typing.T]
Wrap the retrieve method to return an iterator generator.
- Parameters
condition – filter condition
sort_by – sorting options
- Returns
iterator generator
- class cgnal.core.data.layer.DAO(*args, **kwds)
Bases:
Generic
[cgnal.core.typing.T
,cgnal.core.data.layer.V
],abc.ABC
Data Access Object.
- abstract computeKey(obj: cgnal.core.typing.T) Union[Hashable, Dict[str, bson.objectid.ObjectId]]
Compute the key of a given object.
- Parameters
obj – object
- Returns
hashable key
- abstract get(obj: cgnal.core.typing.T) cgnal.core.data.layer.V
Return the record from the persistance layer corresponding to a object.
- Parameters
obj – object
- Returns
value
- abstract parse(row: cgnal.core.data.layer.V) cgnal.core.typing.T
Parse the record of the persistance layer into a object.
- Parameters
row – record of the persistance layer
- Returns
object
- class cgnal.core.data.layer.DatabaseABC
Bases:
abc.ABC
Abstract class for databases.
- abstract table(table_name: str) Optional[cgnal.core.data.layer.TableABC]
Return the table with a given name.
- Parameters
table_name – name of the table
- Returns
table or None if table not found
- class cgnal.core.data.layer.EmptyDatabase
Bases:
cgnal.core.data.layer.DatabaseABC
Class for empty Databases.
- table(table_name: str) None
Raise an exception, since the database is empty.
- Parameters
table_name – name of the table
- Raises
NoTableException – no table is present in an empty database
- class cgnal.core.data.layer.TableABC
Bases:
abc.ABC
Abstract class for tables.
- abstract to_df(query: str) pandas.core.frame.DataFrame
Transform the underling data into a pandas dataframe.
- Parameters
query – query
- Returns
pandas dataframe
- abstract write(df: pandas.core.frame.DataFrame) None
Write the pandas dataframe in the persistance layer.
- Parameters
df – pandas dataframe
- class cgnal.core.data.layer.Writer
Bases:
abc.ABC
Abstract class to write Tables.
- abstract push(df: pandas.core.frame.DataFrame) None
Push a pandas dataframe.
- Parameters
df – dataframe
- abstract property table: cgnal.core.data.layer.TableABC
Return table object.