anyconfig.processors.utils¶
Utility functions for anyconfig.processors.
- anyconfig.processors.utils.sort_by_prio(prs)¶
Sort an iterable of processor classes by each priority.
- Parameters:
prs (
Iterable[TypeVar(ProcT, bound=Processor)]) – A list ofanyconfig.models.processor.Processorclasses- Return type:
list[TypeVar(ProcT, bound=Processor)]- Returns:
Sambe as above but sorted by priority
- anyconfig.processors.utils.select_by_key(items, sort_fn=<built-in function sorted>)¶
Select items from
itemsby key.- Parameters:
items (
Iterable[tuple[tuple[str,...],Any]]) – A list of tuples of keys and values, [([key], val)]- Return type:
list[tuple[str,list[Any]]]- Returns:
A list of tuples of key and values, [(key, [val])]
>>> select_by_key([(["a", "aaa"], 1), (["b", "bb"], 2), (["a"], 3)]) [('a', [1, 3]), ('aaa', [1]), ('b', [2]), ('bb', [2])]
- anyconfig.processors.utils.list_by_x(prs, key)¶
List items by the factor ‘x’.
- Parameters:
key (
str) – Grouping key, ‘type’ or ‘extensions’- Return type:
list[tuple[str,list[TypeVar(ProcT, bound=Processor)]]]- Returns:
A list of
Processoror its children classes grouped by given ‘item’, [(cid, [Processor)]] by default
- anyconfig.processors.utils.findall_with_pred(predicate, prs)¶
Find all of the items match with given predicates.
- Parameters:
predicate (
Callable[...,bool]) – any callable to filter resultsprs (
list[TypeVar(ProcT, bound=Processor)]) – A list ofanyconfig.models.processor.Processorclasses
- Return type:
list[TypeVar(ProcT, bound=Processor)]- Returns:
A list of appropriate processor classes or []
- anyconfig.processors.utils.maybe_processor(type_or_id, cls=<class 'anyconfig.models.processor.Processor'>)¶
Try to get the processor.
- Parameters:
type_or_id (
Union[TypeVar(ProcT, bound=Processor),type[TypeVar(ProcT, bound=Processor)]]) – Type of the data to process or ID of the processor class oranyconfig.models.processor.Processorclass object or its instancecls (
type[TypeVar(ProcT, bound=Processor)]) – A class object to compare with ‘type_or_id’
- Return type:
Optional[TypeVar(ProcT, bound=Processor)]- Returns:
Processor instance or None
- anyconfig.processors.utils.find_by_type_or_id(type_or_id, prs)¶
Find the processor by types or IDs.
- Parameters:
type_or_id (
str) – Type of the data to process or ID of the processor classprs (
list[TypeVar(ProcT, bound=Processor)]) – A list ofanyconfig.models.processor.Processorclasses
- Return type:
list[TypeVar(ProcT, bound=Processor)]- Returns:
A list of processor classes to process files of given data type or processor ‘type_or_id’ found by its ID
- Raises:
anyconfig.common.UnknownProcessorTypeError
- anyconfig.processors.utils.find_by_fileext(fileext, prs)¶
Find the processor by file extensions.
- Parameters:
fileext (
str) – File extensionprs (
list[TypeVar(ProcT, bound=Processor)]) – A list ofanyconfig.models.processor.Processorclasses
- Return type:
list[TypeVar(ProcT, bound=Processor)]- Returns:
A list of processor class to processor files with given extension
- Raises:
common.UnknownFileTypeError
- anyconfig.processors.utils.find_by_maybe_file(obj, prs)¶
Find the processor appropariate for the given file
obj.- Parameters:
obj (
Union[str,Path,IO,IOInfo]) – a file path, file or file-like object, pathlib.Path object or an ‘anyconfig.ioinfo.IOInfo’ (namedtuple) objectcps_by_ext – A list of processor classes
- Return type:
list[TypeVar(ProcT, bound=Processor)]- Returns:
A list of processor classes to process given (maybe) file
- Raises:
common.UnknownFileTypeError
- anyconfig.processors.utils.findall(obj, prs, forced_type=None)¶
Find all of the processors match with the conditions.
- Parameters:
obj (
Union[str,Path,IO,IOInfo,None]) – a file path, file, file-like object, pathlib.Path object or an ‘anyconfig.ioinfo.IOInfo` (namedtuple) objectprs (
list[TypeVar(ProcT, bound=Processor)]) – A list ofanyconfig.models.processor.Processorclassesforced_type (
str|None) – Forced processor type of the data to process or ID of the processor class or None
- Return type:
list[TypeVar(ProcT, bound=Processor)]- Returns:
A list of instances of processor classes to process ‘obj’ data
- Raises:
ValueError, common.UnknownProcessorTypeError, common.UnknownFileTypeError
- anyconfig.processors.utils.find(obj, prs, forced_type=None)¶
Find the processors best match with the conditions.
- Parameters:
obj (
Union[str,Path,IO,IOInfo,None]) – a file path, file, file-like object, pathlib.Path object or an ‘anyconfig.ioinfo.IOInfo’ (namedtuple) objectprs (
list[TypeVar(ProcT, bound=Processor)]) – A list ofanyconfig.models.processor.Processorclassesforced_type (
Union[str,TypeVar(ProcT, bound=Processor),type[TypeVar(ProcT, bound=Processor)],None]) – Forced processor type of the data to process or ID of the processor class oranyconfig.models.processor.Processorclass object or its instance itselfcls – A class object to compare with ‘forced_type’ later
- Return type:
TypeVar(ProcT, bound=Processor)- Returns:
an instance of processor class to process ‘obj’ data
- Raises:
ValueError, common.UnknownProcessorTypeError, common.UnknownFileTypeError
- anyconfig.processors.utils.load_plugins(pgroup)¶
Load processor plugins.
A generator function to yield a class object of
anyconfig.models.processor.Processor.- Parameters:
pgroup (
str) – A string represents plugin type, e.g. anyconfig_backends- Return type:
Iterator[type[TypeVar(ProcT, bound=Processor)]]