dsss.store.StructuredFileStore#
- class dsss.store.StructuredFileStore(path: Path, **kwargs)#
Bases:
FileStoreFileStore arranged in directories by maintainer, with more readable names.
- __init__(path: Path, **kwargs) None#
Initialize the store instance.
Subclasses must call this parent class method to initialize hooks.
Parameters#
- hook :
Hooks for the instance. Mapping from
hook_idsto either single callables, or iterables of callables.
Methods
__init__(path, **kwargs)Initialize the store instance.
assign_version(obj, **kwargs)Assign a version to obj subsequent to any existing versions.
delete(key)Delete an object given its key.
get(key)Return an object given its key.
invoke_hooks(kind, *args, **kwargs)Invoke each callable in
hookwithhook_idkind.Iterate over stored keys.
key(obj)Construct a key for obj.
list([klass, maintainer, id, version])List matching keys.
list_versions(klass, maintainer, id)Return all versions of a
MaintainableArtefact.path_for(obj, key)Construct the path to the file to be written for obj, or read for key.
read_message(path)Read a
sdmx.message.Messagefrom path and return its contents.resolve(obj[, attr])Resolve an external reference in a named attr of obj.
set(obj)Store obj and return its key.
update(obj)Update obj and return its key.
update_from(obj, **kwargs)Update the Store from another obj.
write_message(obj, path)Write obj to an SDMX-ML message at path.
Attributes
IDs of hooks.
Expressions giving file paths to ignore.
Storage location.
Mapping from
hook_idsto lists of hooks.- assign_version(obj, **kwargs) None#
Assign a version to obj subsequent to any existing versions.
See also#
sdmx.model.version.increment
- hook: MutableMapping[str, List[Callable]]#
Mapping from
hook_idsto lists of hooks. Hooks are per-instance.
- iter_keys()#
Iterate over stored keys.
The keys are not ordered.
- key(obj) str#
Construct a key for obj.
Supported obj classes include:
MaintainableArtefact.Example:
"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=FOO:CL(1.0)"The key is the full
IdentifiableArtefact.urn.BaseDataSet,BaseMetadataSetExample:
"data-FOO:DSD_ID-adaa503c71ac9574"The key consists of:
"data-"or"metadata-", based on the class of obj;the
IdentifiableArtefact.idof the maintainer of either (a) theDataflowthat describes obj or if not defined (b) of theDataStructurethat structures obj;the ID of the (Meta)Dataflow or (b) (Meta)DataStructure itself; and
a hash of the
Observationkeys.
- list(klass: type | None = None, maintainer: str | None = None, id: str | None = None, version: str | None = None) List[str]#
List matching keys.
Only keys that match the given parameters (if any) are returned.
Parameters#
- klass
AnnotableArtefact Class of artefact.
- maintainer :
ID of the maintainer of an artefact or its (meta)dataflow.
- id :
ID of an artefact or its (meta)dataflow.
- version :
Version of an artefact.
- klass
- list_versions(klass: type, maintainer: str, id: str) Tuple[str, ...]#
Return all versions of a
MaintainableArtefact.The klass, maintainer, and id arguments are the same as for
list().
- read_message(path: Path) MaintainableArtefact | BaseDataSet | BaseMetadataSet#
Read a
sdmx.message.Messagefrom path and return its contents.
- resolve(obj, attr: str | None = None) MaintainableArtefact#
Resolve an external reference in a named attr of obj.
- update(obj)#
Update obj and return its key.
- update_from(obj: Store, **kwargs) None#
Update the Store from another obj.
Parameters#
- obj :
Any of:
pathlib.Pathof an.xmlfile or directory —the given file, or all.xmlfiles in the directory and any subdirectories, are read and their contents added.another
Storeinstance —all contents of the other store are added.a
DataMessage—allBaseDataSetin the message are read and stored.a
StructureMessage—all SDMX structures in the message are read and stored.
Other Parameters#
- ignoreoptional
if obj is a path, ignore is an optional iterable of callables. Each of the callables in ignore is applied to every file path to be read; if the any of them returns
True, the file is skipped.
Raises#
- NotImplementedError
for any obj other than the above.