anyconfig.processors

Abstract processor module.

    New in version 0.9.5:
  • Add to abstract processors such like Parsers (loaders and dumpers).

class anyconfig.processors.Processor

Bases: object

Abstract processor class to provide basic implementation of some methods, interfaces and members.

  • _type: type indicates data types it can process
  • _priority: Priority to select it if there are others of same type
  • _extensions: File extensions of data type it can process
classmethod type()

Processors’ type

classmethod priority()

Processors’s priority

classmethod extensions()

File extensions which this process can process

anyconfig.processors.load_plugins(pgroup, safe=True)
Parameters:
  • pgroup – A string represents plugin type, e.g. anyconfig_backends
  • safe – Do not raise ImportError during load if True
Raises:

ImportError

anyconfig.processors.list_processors_by_type(prs)
Parameters:prs – A list of instances of Processor
Returns:List (generator) of (processor_type, [processor_cls])
>>> class A(Processor):
...    _type = "a"
>>> class A2(A):
...    _priority = 2
>>> class B(Processor):
...    _type = "b"
>>> g = list_processors_by_type([B, A2, A])
>>> list(g)  
[('a', [<class 'anyconfig.processors.A'>,
        <class 'anyconfig.processors.A2'>]),
 ('b', [<class 'anyconfig.processors.B'>])]
anyconfig.processors.list_processors_by_ext(prs)
Parameters:prs – A list of instances of Processor
Returns:List (generator) of (file_extension, [processor_cls])
>>> class A(Processor):
...    _extensions = ['json']
>>> class A2(A):
...    _priority = 2
>>> class B(Processor):
...    _extensions = ['yaml', 'yml']
>>> g = list_processors_by_ext([B, A2, A])
>>> list(g)  
[('json', [<class 'anyconfig.processors.A'>,
          <class 'anyconfig.processors.A2'>]),
 ('yaml', [<class 'anyconfig.processors.B'>]),
 ('yml', [<class 'anyconfig.processors.B'>])]