aria.storage¶
Storage package.
-
class
aria.storage.Storage(api_cls, api_kwargs=None, items=(), initiator=None, initiator_kwargs=None, **kwargs)¶ Bases:
aria.logger.LoggerMixinBase class for storage managers.
Parameters: - api_cls – API class for each entry
- api_kwargs –
- items – items to register
- initiator – function which initializes the storage before the first use; this function should return a dict, this dict would be passed in addition to the API kwargs; this enables the creation of non-serializable objects
- initiator_kwargs –
- kwargs –
-
register(entry)¶ Register an API.
Parameters: entry –
-
serialization_dict¶
-
class
aria.storage.ModelStorage(*args, **kwargs)¶ Bases:
aria.storage.core.StorageManages storage model APIs (“MAPIs”).
-
drop()¶ Drop all the tables.
-
instrument(*args, **kwds)¶
-
register(model_cls)¶ Register a storage model API (“MAPI”).
Parameters: model_cls – model API to register
-
-
class
aria.storage.ResourceStorage(api_cls, api_kwargs=None, items=(), initiator=None, initiator_kwargs=None, **kwargs)¶ Bases:
aria.storage.core.StorageManages storage resource APIs (“RAPIs”).
Parameters: - api_cls – API class for each entry
- api_kwargs –
- items – items to register
- initiator – function which initializes the storage before the first use; this function should return a dict, this dict would be passed in addition to the API kwargs; this enables the creation of non-serializable objects
- initiator_kwargs –
- kwargs –
-
register(name)¶ Register a storage resource API (“RAPI”).
Parameters: name – name
aria.storage.api¶
Storage APIs.
-
class
aria.storage.api.ModelAPI(model_cls, name=None, **kwargs)¶ Bases:
aria.storage.api.StorageAPIBase class for model APIs (“MAPI”).
Parameters: - model_cls – representing class of the model
- name – name of the model
-
delete(entry_id, **kwargs)¶ Deletes a model from storage.
Parameters: entry_id –
-
get(entry_id, filters=None, **kwargs)¶ Gets a model from storage.
Parameters: entry_id –
-
iter(**kwargs)¶ Iterate over all models in storage.
-
model_cls¶ Class representing the model
Type: Type
-
name¶ Name of the class.
Type: basestring
-
put(entry, **kwargs)¶ Puts a model in storage.
Parameters: entry –
-
update(entry, **kwargs)¶ Update a model in storage.
Parameters: - entry –
- kwargs –
-
class
aria.storage.api.ResourceAPI(name, **kwargs)¶ Bases:
aria.storage.api.StorageAPIBase class for resource APIs (“RAPI”).
Parameters: name – resource type -
delete(entry_id, path, **kwargs)¶ Delete a resource from storage.
Parameters: - entry_id –
- path –
-
download(entry_id, destination, path=None, **kwargs)¶ Download a resource from storage.
Parameters: - entry_id –
- destination –
- path –
-
name¶ Name of resource.
Type: basestring
-
read(entry_id, path, **kwargs)¶ Get a bytesteam for a resource from storage.
Parameters: - entry_id –
- path –
-
upload(entry_id, source, path=None, **kwargs)¶ Upload a resource to storage.
Parameters: - entry_id –
- source –
- path –
-
-
class
aria.storage.api.StorageAPI¶ Bases:
objectBase class for storage APIs.
-
create(**kwargs)¶ Create a storage API. :param kwargs: :return:
-
-
aria.storage.api.generate_lower_name(model_cls)¶ Generates the name of the class from the class object, e.g.
SomeClass->some_classParameters: model_cls – class to evaluate Returns: lowercase name Return type: basestring
aria.storage.collection_instrumentation¶
Utilities for instrumenting collections of models in storage.
-
aria.storage.collection_instrumentation.instrument(instrumentation, original_model, mapi)¶
aria.storage.core¶
Storage API management.
-
class
aria.storage.core.Storage(api_cls, api_kwargs=None, items=(), initiator=None, initiator_kwargs=None, **kwargs)¶ Bases:
aria.logger.LoggerMixinBase class for storage managers.
Parameters: - api_cls – API class for each entry
- api_kwargs –
- items – items to register
- initiator – function which initializes the storage before the first use; this function should return a dict, this dict would be passed in addition to the API kwargs; this enables the creation of non-serializable objects
- initiator_kwargs –
- kwargs –
-
register(entry)¶ Register an API.
Parameters: entry –
-
serialization_dict¶
-
class
aria.storage.core.ModelStorage(*args, **kwargs)¶ Bases:
aria.storage.core.StorageManages storage model APIs (“MAPIs”).
-
drop()¶ Drop all the tables.
-
instrument(*args, **kwds)¶
-
register(model_cls)¶ Register a storage model API (“MAPI”).
Parameters: model_cls – model API to register
-
-
class
aria.storage.core.ResourceStorage(api_cls, api_kwargs=None, items=(), initiator=None, initiator_kwargs=None, **kwargs)¶ Bases:
aria.storage.core.StorageManages storage resource APIs (“RAPIs”).
Parameters: - api_cls – API class for each entry
- api_kwargs –
- items – items to register
- initiator – function which initializes the storage before the first use; this function should return a dict, this dict would be passed in addition to the API kwargs; this enables the creation of non-serializable objects
- initiator_kwargs –
- kwargs –
-
register(name)¶ Register a storage resource API (“RAPI”).
Parameters: name – name
aria.storage.exceptions¶
Storage exceptions.
-
exception
aria.storage.exceptions.NotFoundError¶
-
exception
aria.storage.exceptions.StorageError¶ Bases:
aria.exceptions.AriaErrorGeneral storage exception
aria.storage.filesystem_rapi¶
File system implementation of the storage resource API (“RAPI”).
-
class
aria.storage.filesystem_rapi.FileSystemResourceAPI(directory, **kwargs)¶ Bases:
aria.storage.api.ResourceAPIFile system implementation of the storage resource API (“RAPI”).
Parameters: directory – root dir for storage -
connect(*args, **kwds)¶ Establishes a connection and destroys it after use.
-
create(**kwargs)¶ Creates a directory in by path. Tries to create the root directory as well.
Parameters: name – path of directory
-
delete(entry_id, path=None, **_)¶ Deletes a file or directory.
Parameters: - entry_id – entry ID
- path – path to delete relative to the root of the entry (otherwise all)
-
download(entry_id, destination, path=None, **_)¶ Downloads a file or directory.
Parameters: - entry_id – entry ID
- destination – download destination
- path – path to download relative to the root of the entry (otherwise all)
-
read(entry_id, path, **_)¶ Retrieves the contents of a file.
Parameters: - entry_id – entry ID
- path – path to resource
Returns: contents of the file
Return type: bytes
-
upload(entry_id, source, path=None, **_)¶ Uploads a file or directory.
Parameters: - entry_id – entry ID
- source – source of the files to upload
- path – the destination of the file/s relative to the entry root dir.
-
aria.storage.sql_mapi¶
SQLAlchemy implementation of the storage model API (“MAPI”).
-
class
aria.storage.sql_mapi.ListResult(metadata, *args, **qwargs)¶ Bases:
listContains results about the requested items.
-
class
aria.storage.sql_mapi.SQLAlchemyModelAPI(engine, session, **kwargs)¶ Bases:
aria.storage.api.ModelAPISQLAlchemy implementation of the storage model API (“MAPI”).
-
create(checkfirst=True, create_all=True, **kwargs)¶
-
delete(entry, **kwargs)¶ Deletes a single result based on the model class and element ID.
-
drop()¶ Drops the table.
-
get(entry_id, include=None, **kwargs)¶ Returns a single result based on the model class and element ID
-
get_by_name(entry_name, include=None, **kwargs)¶
-
iter(include=None, filters=None, sort=None, **kwargs)¶ Returns a (possibly empty) list of
model_classresults.
-
list(include=None, filters=None, pagination=None, sort=None, **kwargs)¶
-
put(entry, **kwargs)¶ Creatse a
model_classinstance from a serializablemodelobject.Parameters: entry – dict with relevant kwargs, or an instance of a class that has a to_dictmethod, and whose attributes match the columns ofmodel_class(might also be just an instance ofmodel_class)Returns: an instance of model_class
-
refresh(entry)¶ Reloads the instance with fresh information from the database.
Parameters: entry – instance to be re-loaded from the database Returns: refreshed instance
-
update(entry, **kwargs)¶ Adds
instanceto the database session, and attempts to commit.Returns: updated instance
-
-
aria.storage.sql_mapi.init_storage(base_dir, filename=’db.sqlite’)¶ Built-in ModelStorage initiator.
Creates a SQLAlchemy engine and a session to be passed to the MAPI.
initiator_kwargsmust be passed to the ModelStorage which must hold thebase_dirfor the location of the database file, and an option filename. This would create an SQLite database.Parameters: - base_dir – directory of the database
- filename – database file name.
Returns: