Module configobj
[hide private]
[frames] | no frames]

Module configobj

source code

Classes [hide private]
  UnknownType
  Builder
  ConfigObjError
This is the base class for all errors that ConfigObj raises.
  NestingError
This error indicates a level of nesting that doesn't match.
  ParseError
This error indicates that a line is badly written.
  DuplicateError
The keyword or section specified already exists.
  ConfigspecError
An error occured whilst parsing a configspec.
  InterpolationError
Base class for the two interpolation errors.
  InterpolationLoopError
Maximum interpolation depth exceeded in string interpolation.
  RepeatSectionError
This error indicates additional sections in a section with a ``__many__`` (repeated) section.
  MissingInterpolationOption
A value specified for interpolation was missing.
  UnreprError
An error parsing in unrepr mode.
  InterpolationEngine
A helper class to help perform string interpolation.
  ConfigParserInterpolation
Behaves like ConfigParser.
  TemplateInterpolation
Behaves like string.Template.
  Section
A dictionary-like object that represents a section in a config file.
  ConfigObj
An object to read, create, and write config files.
  SimpleVal
A simple validator.
Functions [hide private]
 
enumerate(obj)
enumerate for Python 2.2.
source code
 
getObj(s) source code
 
unrepr(s) source code
 
_splitlines(instring)
Split a string on lines, without losing line endings or truncating.
source code
 
flatten_errors(cfg, res, levels=None, results=None)
An example function that will turn a nested dictionary of results (as returned by ``ConfigObj.validate``) into a flat list.
source code
Variables [hide private]
  INTP_VER = (2, 5)
  BOM_UTF8 = '\xef\xbb\xbf'
  BOM_UTF16_LE = '\xfe\xff'
  BOM_UTF16_BE = '\xfe\xff'
  BOM_UTF16 = '\xfe\xff'
  BOMS = {'\xef\xbb\xbf': ('utf_8', None), '\xfe\xff': ('utf16_b...
  BOM_LIST = {'u16': 'utf_16', 'u8': 'utf_8', 'utf': 'utf_8', 'u...
  BOM_SET = {None: '\xef\xbb\xbf', 'utf16_be': '\xfe\xff', 'utf1...
  __version__ = '4.4.0'
  __revision__ = '$Id: configobj.py 156 2006-01-31 14:57:08Z fuz...
  DEFAULT_INTERPOLATION = 'configparser'
  DEFAULT_INDENT_TYPE = ' '
  MAX_INTERPOL_DEPTH = 10
  OPTION_DEFAULTS = {'configspec': None, 'create_empty': False, ...
  interpolation_engines = {'configparser': <class 'configobj.Con...
Function Details [hide private]

flatten_errors(cfg, res, levels=None, results=None)

source code 

An example function that will turn a nested dictionary of results
(as returned by ``ConfigObj.validate``) into a flat list.

``cfg`` is the ConfigObj instance being checked, ``res`` is the results
dictionary returned by ``validate``.

(This is a recursive function, so you shouldn't use the ``levels`` or
``results`` arguments - they are used by the function.

Returns a list of keys that failed. Each member of the list is a tuple :
::

    ([list of sections...], key, result)

If ``validate`` was called with ``preserve_errors=False`` (the default)
then ``result`` will always be ``False``.

*list of sections* is a flattened list of sections that the key was found
in.

If the section was missing then key will be ``None``.

If the value (or section) was missing then ``result`` will be ``False``.

If ``validate`` was called with ``preserve_errors=True`` and a value
was present, but failed the check, then ``result`` will be the exception
object returned. You can use this as a string that describes the failure.

For example *The value "3" is of the wrong type*.

>>> import validate
>>> vtor = validate.Validator()
>>> my_ini = '''
...     option1 = True
...     [section1]
...     option1 = True
...     [section2]
...     another_option = Probably
...     [section3]
...     another_option = True
...     [[section3b]]
...     value = 3
...     value2 = a
...     value3 = 11
...     '''
>>> my_cfg = '''
...     option1 = boolean()
...     option2 = boolean()
...     option3 = boolean(default=Bad_value)
...     [section1]
...     option1 = boolean()
...     option2 = boolean()
...     option3 = boolean(default=Bad_value)
...     [section2]
...     another_option = boolean()
...     [section3]
...     another_option = boolean()
...     [[section3b]]
...     value = integer
...     value2 = integer
...     value3 = integer(0, 10)
...         [[[section3b-sub]]]
...         value = string
...     [section4]
...     another_option = boolean()
...     '''
>>> cs = my_cfg.split('\n')
>>> ini = my_ini.split('\n')
>>> cfg = ConfigObj(ini, configspec=cs)
>>> res = cfg.validate(vtor, preserve_errors=True)
>>> errors = []
>>> for entry in flatten_errors(cfg, res):
...     section_list, key, error = entry
...     section_list.insert(0, '[root]')
...     if key is not None:
...        section_list.append(key)
...     else:
...         section_list.append('[missing]')
...     section_string = ', '.join(section_list)
...     errors.append((section_string, ' = ', error))
>>> errors.sort()
>>> for entry in errors:
...     print entry[0], entry[1], (entry[2] or 0)
[root], option2  =  0
[root], option3  =  the value "Bad_value" is of the wrong type.
[root], section1, option2  =  0
[root], section1, option3  =  the value "Bad_value" is of the wrong type.
[root], section2, another_option  =  the value "Probably" is of the wrong type.
[root], section3, section3b, section3b-sub, [missing]  =  0
[root], section3, section3b, value2  =  the value "a" is of the wrong type.
[root], section3, section3b, value3  =  the value "11" is too big.
[root], section4, [missing]  =  0


Variables Details [hide private]

BOMS

Value:
{'\xef\xbb\xbf': ('utf_8', None),
 '\xfe\xff': ('utf16_be', 'utf_16'),
 '\xff\xfe': ('utf_16', 'utf_16')}

BOM_LIST

Value:
{'u16': 'utf_16',
 'u8': 'utf_8',
 'utf': 'utf_8',
 'utf-16': 'utf_16',
 'utf-16be': 'utf16_be',
 'utf-16le': 'utf16_le',
 'utf-8': 'utf_8',
 'utf16': 'utf_16',
...

BOM_SET

Value:
{None: '\xef\xbb\xbf',
 'utf16_be': '\xfe\xff',
 'utf16_le': '\xff\xfe',
 'utf_16': '\xff\xfe',
 'utf_8': '\xef\xbb\xbf'}

__revision__

Value:
'$Id: configobj.py 156 2006-01-31 14:57:08Z fuzzyman $'

OPTION_DEFAULTS

Value:
{'configspec': None,
 'create_empty': False,
 'default_encoding': None,
 'encoding': None,
 'file_error': False,
 'indent_type': None,
 'interpolation': True,
 'list_values': True,
...

interpolation_engines

Value:
{'configparser': <class 'configobj.ConfigParserInterpolation'>,
 'template': <class 'configobj.TemplateInterpolation'>}