vcorelib.io.arbiter package#
Submodules#
vcorelib.io.arbiter.base module#
A module exposing data-file encoders and decoders.
- class vcorelib.io.arbiter.base.DataArbiterBase(logger: ~logging.Logger | ~logging.LoggerAdapter[~typing.Any] = <Logger vcorelib.io.arbiter.base (WARNING)>, encoding: str = 'utf-8')[source]#
Bases:
object
A class for looking up encode and decode functions for given data types.
- decode(pathlike: Path | str | None, logger: Logger | LoggerAdapter[Any] = None, require_success: bool = False, includes_key: str = None, preprocessor: Callable[[TextIO | StringIO], TextIO | StringIO] = None, maxsplit: int = 1, expect_overwrite: bool = False, strategy: MergeStrategy = MergeStrategy.RECURSIVE, files_loaded: List[Path] = None, **kwargs) LoadResult [source]#
Attempt to load data from a file.
- decode_stream(ext: str, stream: TextIO | StringIO, logger: Logger | LoggerAdapter[Any] = None, **kwargs) LoadResult [source]#
Attempt to load data from a text stream.
- encode(pathlike: Path | str | None, data: Dict[str, str | int | float | bool | None | Dict[str, str | int | float | bool | None] | List[str | int | float | bool | None]], logger: Logger | LoggerAdapter[Any] = None, maxsplit: int = 1, **kwargs) Tuple[bool, int] [source]#
Encode data to a file on disk.
- encode_stream(ext: str, stream: TextIO | StringIO, data: Dict[str, str | int | float | bool | None | Dict[str, str | int | float | bool | None] | List[str | int | float | bool | None]], logger: Logger | LoggerAdapter[Any] = None, **kwargs) Tuple[bool, int] [source]#
Serialize data to an output stream.
vcorelib.io.arbiter.context module#
A module implementing various context-manager interfaces for the data arbiter.
- class vcorelib.io.arbiter.context.DataArbiterContext(logger: ~logging.Logger | ~logging.LoggerAdapter[~typing.Any] = <Logger vcorelib.io.arbiter.base (WARNING)>, encoding: str = 'utf-8')[source]#
Bases:
DataArbiterDirectories
A class implementing context-manager interfaces for the data arbiter.
- object_directory_context(pathlike: Path | str | None, decode_kwargs: Dict[str, Any] = None, encode_kwargs: Dict[str, Any] = None) Iterator[Dict[str, str | int | float | bool | None | Dict[str, str | int | float | bool | None] | List[str | int | float | bool | None]]] [source]#
Provide a loaded directory as a context.
- object_file_context(pathlike: Path | str | None, decode_kwargs: Dict[str, Any] = None, encode_kwargs: Dict[str, Any] = None) Iterator[Dict[str, str | int | float | bool | None | Dict[str, str | int | float | bool | None] | List[str | int | float | bool | None]]] [source]#
Provide data loaded from a file as a context so that it’s written back when the context ends.
vcorelib.io.arbiter.directory module#
A data-arbiter extension for working with directories.
- class vcorelib.io.arbiter.directory.DataArbiterDirectories(logger: ~logging.Logger | ~logging.LoggerAdapter[~typing.Any] = <Logger vcorelib.io.arbiter.base (WARNING)>, encoding: str = 'utf-8')[source]#
Bases:
DataArbiterBase
A class adding interfaces for working with directories.
- decode_directory(pathlike: Path | str | None, logger: Logger | LoggerAdapter[Any] = None, require_success: bool = False, path_filter: Callable[[Path], bool] = None, recurse: bool = False, **kwargs) LoadResult [source]#
Attempt to decode data files in a directory. Assigns data loaded from each file to a key, returns whether or not any files failed to load and the cumulative time that each file-load took.
- encode_directory(pathlike: Path | str | None, data: Dict[str, str | int | float | bool | None | Dict[str, str | int | float | bool | None] | List[str | int | float | bool | None]], ext: str = 'json', logger: Logger | LoggerAdapter[Any] = None, **kwargs) Tuple[bool, int] [source]#
Encode data to a directory where every key becomes a file with the provided extension. The encoding scheme is implied by the extension.
Module contents#
A module aggregating all data-arbiter capabilities.
- class vcorelib.io.arbiter.DataArbiter(logger: ~logging.Logger | ~logging.LoggerAdapter[~typing.Any] = <Logger vcorelib.io.arbiter.base (WARNING)>, encoding: str = 'utf-8')[source]#
Bases:
DataArbiterContext
A class aggregating all data-arbiter capabilities.