anyconfig.ioinfo
¶
Functions for value objects represent inputs and outputs.
New in version 0.9.5.
Add functions to make and process input and output object holding some attributes like input and output type (path, stream or pathlib.Path object), path, opener, etc.
-
anyconfig.ioinfo.
guess_io_type
(obj)¶ Guess input or output type of
obj
.- Parameters
obj – a path string, a pathlib.Path or a file / file-like object
- Returns
IOInfo type defined in anyconfig.globals.IOI_TYPES
>>> apath = "/path/to/a_conf.ext" >>> assert guess_io_type(apath) == IOI_PATH_STR
>>> from anyconfig.compat import pathlib >>> if pathlib is not None: ... assert guess_io_type(pathlib.Path(apath)) == IOI_PATH_OBJ >>> assert guess_io_type(open(__file__)) == IOI_STREAM
-
anyconfig.ioinfo.
inspect_io_obj
(obj)¶ - Parameters
obj – a path string, a pathlib.Path or a file / file-like object
- Returns
A tuple of (objtype, objpath, objopener)
- Raises
UnknownFileTypeError
-
anyconfig.ioinfo.
find_by_fileext
(fileext, cps_by_ext)¶ - Parameters
fileext – File extension
cps_by_ext – A list of pairs (file_extension, [processor_class])
- Returns
Most appropriate processor class to process given file
>>> from anyconfig.backends import _PARSERS_BY_EXT as cps >>> find_by_fileext("json", cps) <class 'anyconfig.backend.json.Parser'> >>> find_by_fileext("ext_should_not_be_found", cps) is None True
-
anyconfig.ioinfo.
find_by_filepath
(filepath, cps_by_ext)¶ - Parameters
filepath – Path to the file to find out processor to process it
cps_by_ext – A list of pairs (file_extension, [processor_class])
- Returns
Most appropriate processor class to process given file
>>> from anyconfig.backends import _PARSERS_BY_EXT as cps >>> find_by_filepath("/a/b/c/x.json", cps) <class 'anyconfig.backend.json.Parser'> >>> find_by_filepath("/path/to/a.ext_should_not_be_found", cps) is None True
-
anyconfig.ioinfo.
find_by_type
(cptype, cps_by_type)¶ - Parameters
cptype – Config file’s type
cps_by_type – A list of pairs, (processor_type, [processor_class])
- Returns
Most appropriate processor class to process given type or None
>>> from anyconfig.backends import _PARSERS_BY_TYPE as cps >>> find_by_type("json", cps) <class 'anyconfig.backend.json.Parser'> >>> find_by_type("missing_type", cps) is None True
-
anyconfig.ioinfo.
find_processor
(ipath, cps_by_ext, cps_by_type, forced_type=None)¶ - Parameters
ipath – file path
cps_by_ext – A list of pairs (file_extension, [processor_cls])
cps_by_type – A list of pairs (processor_type, [processor_cls])
forced_type – Forced processor type or processor object
- Returns
Instance of processor class appropriate for the input ipath
- Raises
ValueError, UnknownParserTypeError, UnknownFileTypeError
-
anyconfig.ioinfo.
make
(obj, cps_by_ext, cps_by_type, forced_type=None)¶ - Parameters
obj – a path string, a pathlib.Path or a file / file-like object
cps_by_ext – A list of pairs (file_extension, [processor_cls])
cps_by_type – A list of pairs (processor_type, [processor_cls])
forced_type – Forced configuration processor type
- Returns
Namedtuple object represents a kind of input object such as a file / file-like object, path string or pathlib.Path object
- Raises
ValueError, UnknownParserTypeError, UnknownFileTypeError