b.u.c.configobj : module documentation

Part of bzrlib.util.configobj

No module docstring
Function match_utf8 Undocumented
Function enumerate enumerate for Python 2.2.
Function getObj Undocumented
Class UnknownType Undocumented
Class Builder Undocumented
Function unrepr Undocumented
Class ConfigObjError This is the base class for all errors that ConfigObj raises.
Class NestingError This error indicates a level of nesting that doesn't match.
Class ParseError This error indicates that a line is badly written.
Class ReloadError A 'reload' operation failed.
Class DuplicateError The keyword or section specified already exists.
Class ConfigspecError An error occured whilst parsing a configspec.
Class InterpolationError Base class for the two interpolation errors.
Class InterpolationLoopError Maximum interpolation depth exceeded in string interpolation.
Class RepeatSectionError This error indicates additional sections in a section with a
Class MissingInterpolationOption A value specified for interpolation was missing.
Class UnreprError An error parsing in unrepr mode.
Class InterpolationEngine A helper class to help perform string interpolation.
Class ConfigParserInterpolation Behaves like ConfigParser.
Class TemplateInterpolation Behaves like string.Template.
Function __newobj__ Undocumented
Class Section A dictionary-like object that represents a section in a config file.
Class ConfigObj An object to read, create, and write config files.
Class SimpleVal A simple validator.
Function flatten_errors An example function that will turn a nested dictionary of results
def match_utf8(encoding):
def enumerate(obj):
enumerate for Python 2.2.
def getObj(s):
def unrepr(s):
def __newobj__(cls, *args):
def 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.

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 (or a section was expected and a scalar provided - or vice-versa) 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
API Documentation for Bazaar, generated by pydoctor at 2020-07-06 00:55:29.