data_collections_api package¶
Subpackages¶
Submodules¶
data_collections_api.dumpers module¶
Dumper/loader functions.
- data_collections_api.dumpers.Dumper¶
Dumping function protocol.
- class data_collections_api.dumpers.Format(dumper: Dumper, loader: Loader, str_loader: StrLoader)[source]¶
Bases:
NamedTupleSet of operations for a given loader format.
- data_collections_api.dumpers.Formats¶
Valid formats.
alias of
Literal[‘json’, ‘yaml’, ‘ruamel’, ‘pyyaml’]
- data_collections_api.dumpers.Loader¶
Loading function protocol.
- data_collections_api.dumpers.SUPPORTED_FORMATS: dict[str, Format] = {'json': (<function _json_dumper>, <function _json_loader>, <function _json_str_loader>), 'pyyaml': (<function _pyyaml_dumper>, <function _pyyaml_loader>, <function _pyyaml_str_loader>), 'ruamel': (<function _ruamel_dumper>, <function _ruamel_loader>, <function _ruamel_str_loader>)}¶
Currently supported dumpers.
- data_collections_api.dumpers.StrLoader¶
String loading function protocol.
- data_collections_api.dumpers.get_dumper(fmt: Literal['json', 'yaml', 'ruamel', 'pyyaml'])[source]¶
Get appropriate dumper for unified interface.
- Parameters:
- fmtFormats
Format to handle.
- Returns:
- Dumper
Dumping function.
See also
SUPPORTED_FORMATSAcceptable values for fmt.
- data_collections_api.dumpers.get_load_dump(fmt: Literal['json', 'yaml', 'ruamel', 'pyyaml'], *, loader: bool, string: bool = False) Callable[[Any, TextIO], None] | Callable[[Path | str], dict[str, Any]] | Callable[[str], dict[str, Any]][source]¶
Get appropriate loader/dumper for unified interface.
- Parameters:
- fmtstr
Format to handle.
- loaderbool
Whether to load loader.
- stringbool, optional
Whether for string or file.
- Returns:
- Dumper or Loader or StrLoader
Dumping/Loading function.
- Raises:
- ValueError
Invalid fmt provided.
- ImportError
No valid YAML dumper and yaml requested.
- NotImplementedError
String dumper requested.
See also
SUPPORTED_FORMATSAcceptable values for fmt.
- data_collections_api.dumpers.get_loader(fmt: Literal['json', 'yaml', 'ruamel', 'pyyaml'])[source]¶
Get appropriate loader for unified interface.
- Parameters:
- fmtFormats
Format to handle.
- Returns:
- Loader
Loading function.
See also
SUPPORTED_FORMATSAcceptable values for fmt.
- data_collections_api.dumpers.get_str_loader(fmt: Literal['json', 'yaml', 'ruamel', 'pyyaml'])[source]¶
Get appropriate loader for unified interface.
- Parameters:
- fmtFormats
Format to handle.
- Returns:
- StrLoader
String loading function.
See also
SUPPORTED_FORMATSAcceptable values for fmt.
- data_collections_api.dumpers.guess_format(path: Path) Literal['json', 'yaml', 'ruamel', 'pyyaml'][source]¶
- data_collections_api.dumpers.guess_format(path: Path, *, raise_on_invalid: Literal[True]) Literal['json', 'yaml', 'ruamel', 'pyyaml']
- data_collections_api.dumpers.guess_format(path: Path, *, raise_on_invalid: Literal[False]) Literal['json', 'yaml', 'ruamel', 'pyyaml'] | None
Guess format from path suffix.
- Parameters:
- pathPath
Path to guess format of.
- raise_on_invalidbool
Whether to raise on unrecognised or return
None.
- Returns:
- Formats or None
Expected format.
- Raises:
- NotImplementedError
Unknown format found.
Examples
>>> from pathlib import Path >>> guess_format(Path("my_file.json")) 'json' >>> guess_format(Path("my_file.yml")) 'yaml'
data_collections_api.invenio module¶
Repository data structure.
- class data_collections_api.invenio.InvenioRepository(url: URL | str, api_key: str, *, is_zenodo: bool = False)[source]¶
Bases:
objectHandler for Invenio-like repositories.
Handles pushing info to e.g. Zenodo.
- Parameters:
- urlURL
Repository URL.
- api_keystr
API key with appropriate permissions.
- is_zenodobool
Whether to use deposition interface or records interface.
Examples
my_repo = InvenioRepository(url="companyname.website", api_key="abc123") my_repo.depositions["my_repo"].files["file"].upload(my_file) my_repo.records.get() my_repo.licenses.list()
data_collections_api.metadata module¶
Metadata validation and parsing.
- data_collections_api.metadata.dump_example(out_file: Path, fmt: Literal['json', 'yaml', 'ruamel', 'pyyaml'] | None = None, in_file: Path = PosixPath('/opt/hostedtoolcache/Python/3.12.12/x64/lib/python3.12/site-packages/data_collections_api/examples/bare_example.yml'))[source]¶
- data_collections_api.metadata.dump_example(args: Namespace)
Dump an example schema.
- Parameters:
- out_filePath
File to write to.
- fmtFormats
Format to dump as.
- in_filePath
File to read data from.
- data_collections_api.metadata.validate_cli(inp: Namespace) dict[source]¶
Validate metadata and print success to screen.
- Parameters:
- inpargparse.Namespace
Input arguments from CLI.
- Returns:
- dict
Validated schema from file.
- data_collections_api.metadata.validate_metadata(_val, fmt: Literal['json', 'yaml', 'ruamel', 'pyyaml'] | None = None)[source]¶
- data_collections_api.metadata.validate_metadata(data: dict, schema: Schema | str) dict
- data_collections_api.metadata.validate_metadata(data: Path | str, schema: Schema | str, fmt: Literal['json', 'yaml', 'ruamel', 'pyyaml']) dict
- data_collections_api.metadata.validate_metadata(path: Path, schema: Schema | str, fmt: Literal['json', 'yaml', 'ruamel', 'pyyaml'] | None = None) dict
- data_collections_api.metadata.validate_metadata(inp: Namespace) dict
Verify and process project metadata.
- Parameters:
- _valPath | str
Path to data to validate.
- fmtFormats, optional
Format to process.
Module contents¶
Data API for uploading and downloading from PSDI depositories.