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