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

Module configobj

source code


Version: 4.5.3

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.
  ReloadError
A 'reload' operation failed.
  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]
 
match_utf8(encoding) source code
 
enumerate(obj)
enumerate for Python 2.2.
source code
 
getObj(s) source code
 
unrepr(s) 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 = '\xff\xfe'
  BOM_UTF16_BE = '\xfe\xff'
  BOM_UTF16 = '\xff\xfe'
  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...
  squot = '\'%s\''
  dquot = '"%s"'
  noquot = '%s'
  wspace_plus = ' \r\t\n\x0b\t\'"'
  tsquot = '"""%s"""'
  tdquot = '\'\'\'%s\'\'\''
  __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, ...
  _builder = Builder()
  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'>}