ConfigParserRT
index
/home/optics/dazle/dics/dics/ConfigParserRT.py

Configuration file parser.
 
*******************************************************************************
Slightly modified version of the ConfigParser module from the Standard Library,
Python 2.3.  The modifications are to stop the INI files from being utterly
mangled when writing back to them.  Specifically the aim is to preserve the
ordering of sections, and the options within them, thereby allowing the
INI file to be structured in a consistent, logical manner for human-
readability.  Later versions may also preserve comments to some extent.
 
ConfigParserRT ('Round Trip') is a fully compatible drop-in replacement for the
standard ConfigParser module, the only differences are in the formatting of
written INI files.
 
Anthony Horton
horton@ast.cam.ac.uk
*******************************************************************************
 
A setup file consists of sections, lead by a "[section]" header,
and followed by "name: value" entries, with continuations and such in
the style of RFC 822.
 
The option values can contain format strings which refer to other values in
the same section, or values in a special [DEFAULT] section.
 
For example:
 
    something: %(dir)s/whatever
 
would resolve the "%(dir)s" to the value of dir.  All reference
expansions are done late, on demand.
 
Intrinsic defaults can be specified by passing them into the
ConfigParser constructor as a dictionary.
 
class:
 
ConfigParser -- responsible for parsing a list of
                configuration files, and managing the parsed database.
 
    methods:
 
    __init__(defaults=None)
        create the parser and specify a dictionary of intrinsic defaults.  The
        keys must be strings, the values must be appropriate for %()s string
        interpolation.  Note that `__name__' is always an intrinsic default;
        it's value is the section's name.
 
    sections()
        return all the configuration section names, sans DEFAULT
 
    has_section(section)
        return whether the given section exists
 
    has_option(section, option)
        return whether the given option exists in the given section
 
    options(section)
        return list of configuration options for the named section
 
    read(filenames)
        read and parse the list of named configuration files, given by
        name.  A single filename is also allowed.  Non-existing files
        are ignored.
 
    readfp(fp, filename=None)
        read and parse one configuration file, given as a file object.
        The filename defaults to fp.name; it is only used in error
        messages (if fp has no `name' attribute, the string `<???>' is used).
 
    get(section, option, raw=False, vars=None)
        return a string value for the named option.  All % interpolations are
        expanded in the return values, based on the defaults passed into the
        constructor and the DEFAULT section.  Additional substitutions may be
        provided using the `vars' argument, which must be a dictionary whose
        contents override any pre-existing defaults.
 
    getint(section, options)
        like get(), but convert value to an integer
 
    getfloat(section, options)
        like get(), but convert value to a float
 
    getboolean(section, options)
        like get(), but convert value to a boolean (currently case
        insensitively defined as 0, false, no, off for False, and 1, true,
        yes, on for True).  Returns False or True.
 
    items(section, raw=False, vars=None)
        return a list of tuples with (name, value) for each option
        in the section.
 
    remove_section(section)
        remove the given file section and all its options
 
    remove_option(section, option)
        remove the given option from the given section
 
    set(section, option, value)
        set the given option
 
    write(fp)
        write the configuration state in .ini format

 
Modules
       
re

 
Classes
       
exceptions.Exception
Error
DuplicateSectionError
InterpolationError
InterpolationDepthError
InterpolationMissingOptionError
InterpolationSyntaxError
NoOptionError
NoSectionError
ParsingError
MissingSectionHeaderError
RawConfigParser
ConfigParser
SafeConfigParser

 
class ConfigParser(RawConfigParser)
     Methods defined here:
get(self, section, option, raw=False, vars=None)
Get an option value for a given section.
 
All % interpolations are expanded in the return values, based on the
defaults passed into the constructor, unless the optional argument
`raw' is true.  Additional substitutions may be provided using the
`vars' argument, which must be a dictionary whose contents overrides
any pre-existing defaults.
 
The section DEFAULT is special.
items(self, section, raw=False, vars=None)
Return a list of tuples with (name, value) for each option
in the section.
 
All % interpolations are expanded in the return values, based on the
defaults passed into the constructor, unless the optional argument
`raw' is true.  Additional substitutions may be provided using the
`vars' argument, which must be a dictionary whose contents overrides
any pre-existing defaults.
 
The section DEFAULT is special.

Methods inherited from RawConfigParser:
__init__(self, defaults=None)
add_section(self, section)
Create a new section in the configuration.
 
Raise DuplicateSectionError if a section by the specified name
already exists.
defaults(self)
getboolean(self, section, option)
getfloat(self, section, option)
getint(self, section, option)
has_option(self, section, option)
Check for the existence of a given option in a given section.
has_section(self, section)
Indicate whether the named section is present in the configuration.
 
The DEFAULT section is not acknowledged.
options(self, section)
Return a list of option names for the given section name.
optionxform(self, optionstr)
read(self, filenames)
Read and parse a filename or a list of filenames.
 
Files that cannot be opened are silently ignored; this is
designed so that you can specify a list of potential
configuration file locations (e.g. current directory, user's
home directory, systemwide directory), and all existing
configuration files in the list will be read.  A single
filename may also be given.
readfp(self, fp, filename=None)
Like read() but the argument must be a file-like object.
 
The `fp' argument must have a `readline' method.  Optional
second argument is the `filename', which if not given, is
taken from fp.name.  If fp has no `name' attribute, `<???>' is
used.
remove_option(self, section, option)
Remove an option.
remove_section(self, section)
Remove a file section.
sections(self)
Return a list of section names, excluding [DEFAULT]
set(self, section, option, value)
Set an option.
write(self, fp)
Write an .ini-format representation of the configuration state.

Data and other attributes inherited from RawConfigParser:
OPTCRE = <_sre.SRE_Pattern object>
SECTCRE = <_sre.SRE_Pattern object>

 
class DuplicateSectionError(Error)
    Raised when a section is multiply-created.
 
 
Method resolution order:
DuplicateSectionError
Error
exceptions.Exception

Methods defined here:
__init__(self, section)

Methods inherited from Error:
__repr__(self)
__str__ = __repr__(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class Error(exceptions.Exception)
    Base class for ConfigParser exceptions.
 
  Methods defined here:
__init__(self, msg='')
__repr__(self)
__str__ = __repr__(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class InterpolationDepthError(InterpolationError)
    Raised when substitutions are nested too deeply.
 
 
Method resolution order:
InterpolationDepthError
InterpolationError
Error
exceptions.Exception

Methods defined here:
__init__(self, option, section, rawval)

Methods inherited from Error:
__repr__(self)
__str__ = __repr__(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class InterpolationError(Error)
    Base class for interpolation-related exceptions.
 
 
Method resolution order:
InterpolationError
Error
exceptions.Exception

Methods defined here:
__init__(self, option, section, msg)

Methods inherited from Error:
__repr__(self)
__str__ = __repr__(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class InterpolationMissingOptionError(InterpolationError)
    A string substitution required a setting which was not available.
 
 
Method resolution order:
InterpolationMissingOptionError
InterpolationError
Error
exceptions.Exception

Methods defined here:
__init__(self, option, section, rawval, reference)

Methods inherited from Error:
__repr__(self)
__str__ = __repr__(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class InterpolationSyntaxError(InterpolationError)
    Raised when the source text into which substitutions are made
does not conform to the required syntax.
 
 
Method resolution order:
InterpolationSyntaxError
InterpolationError
Error
exceptions.Exception

Methods inherited from InterpolationError:
__init__(self, option, section, msg)

Methods inherited from Error:
__repr__(self)
__str__ = __repr__(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class MissingSectionHeaderError(ParsingError)
    Raised when a key-value pair is found before any section header.
 
 
Method resolution order:
MissingSectionHeaderError
ParsingError
Error
exceptions.Exception

Methods defined here:
__init__(self, filename, lineno, line)

Methods inherited from ParsingError:
append(self, lineno, line)

Methods inherited from Error:
__repr__(self)
__str__ = __repr__(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class NoOptionError(Error)
    A requested option was not found.
 
 
Method resolution order:
NoOptionError
Error
exceptions.Exception

Methods defined here:
__init__(self, option, section)

Methods inherited from Error:
__repr__(self)
__str__ = __repr__(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class NoSectionError(Error)
    Raised when no section matches a requested option.
 
 
Method resolution order:
NoSectionError
Error
exceptions.Exception

Methods defined here:
__init__(self, section)

Methods inherited from Error:
__repr__(self)
__str__ = __repr__(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class ParsingError(Error)
    Raised when a configuration file does not follow legal syntax.
 
 
Method resolution order:
ParsingError
Error
exceptions.Exception

Methods defined here:
__init__(self, filename)
append(self, lineno, line)

Methods inherited from Error:
__repr__(self)
__str__ = __repr__(self)

Methods inherited from exceptions.Exception:
__getitem__(...)

 
class RawConfigParser
     Methods defined here:
__init__(self, defaults=None)
add_section(self, section)
Create a new section in the configuration.
 
Raise DuplicateSectionError if a section by the specified name
already exists.
defaults(self)
get(self, section, option)
getboolean(self, section, option)
getfloat(self, section, option)
getint(self, section, option)
has_option(self, section, option)
Check for the existence of a given option in a given section.
has_section(self, section)
Indicate whether the named section is present in the configuration.
 
The DEFAULT section is not acknowledged.
items(self, section)
options(self, section)
Return a list of option names for the given section name.
optionxform(self, optionstr)
read(self, filenames)
Read and parse a filename or a list of filenames.
 
Files that cannot be opened are silently ignored; this is
designed so that you can specify a list of potential
configuration file locations (e.g. current directory, user's
home directory, systemwide directory), and all existing
configuration files in the list will be read.  A single
filename may also be given.
readfp(self, fp, filename=None)
Like read() but the argument must be a file-like object.
 
The `fp' argument must have a `readline' method.  Optional
second argument is the `filename', which if not given, is
taken from fp.name.  If fp has no `name' attribute, `<???>' is
used.
remove_option(self, section, option)
Remove an option.
remove_section(self, section)
Remove a file section.
sections(self)
Return a list of section names, excluding [DEFAULT]
set(self, section, option, value)
Set an option.
write(self, fp)
Write an .ini-format representation of the configuration state.

Data and other attributes defined here:
OPTCRE = <_sre.SRE_Pattern object>
SECTCRE = <_sre.SRE_Pattern object>

 
class SafeConfigParser(ConfigParser)
    
Method resolution order:
SafeConfigParser
ConfigParser
RawConfigParser

Methods inherited from ConfigParser:
get(self, section, option, raw=False, vars=None)
Get an option value for a given section.
 
All % interpolations are expanded in the return values, based on the
defaults passed into the constructor, unless the optional argument
`raw' is true.  Additional substitutions may be provided using the
`vars' argument, which must be a dictionary whose contents overrides
any pre-existing defaults.
 
The section DEFAULT is special.
items(self, section, raw=False, vars=None)
Return a list of tuples with (name, value) for each option
in the section.
 
All % interpolations are expanded in the return values, based on the
defaults passed into the constructor, unless the optional argument
`raw' is true.  Additional substitutions may be provided using the
`vars' argument, which must be a dictionary whose contents overrides
any pre-existing defaults.
 
The section DEFAULT is special.

Methods inherited from RawConfigParser:
__init__(self, defaults=None)
add_section(self, section)
Create a new section in the configuration.
 
Raise DuplicateSectionError if a section by the specified name
already exists.
defaults(self)
getboolean(self, section, option)
getfloat(self, section, option)
getint(self, section, option)
has_option(self, section, option)
Check for the existence of a given option in a given section.
has_section(self, section)
Indicate whether the named section is present in the configuration.
 
The DEFAULT section is not acknowledged.
options(self, section)
Return a list of option names for the given section name.
optionxform(self, optionstr)
read(self, filenames)
Read and parse a filename or a list of filenames.
 
Files that cannot be opened are silently ignored; this is
designed so that you can specify a list of potential
configuration file locations (e.g. current directory, user's
home directory, systemwide directory), and all existing
configuration files in the list will be read.  A single
filename may also be given.
readfp(self, fp, filename=None)
Like read() but the argument must be a file-like object.
 
The `fp' argument must have a `readline' method.  Optional
second argument is the `filename', which if not given, is
taken from fp.name.  If fp has no `name' attribute, `<???>' is
used.
remove_option(self, section, option)
Remove an option.
remove_section(self, section)
Remove a file section.
sections(self)
Return a list of section names, excluding [DEFAULT]
set(self, section, option, value)
Set an option.
write(self, fp)
Write an .ini-format representation of the configuration state.

Data and other attributes inherited from RawConfigParser:
OPTCRE = <_sre.SRE_Pattern object>
SECTCRE = <_sre.SRE_Pattern object>

 
Data
        DEFAULTSECT = 'DEFAULT'
MAX_INTERPOLATION_DEPTH = 10
__all__ = ['NoSectionError', 'DuplicateSectionError', 'NoOptionError', 'InterpolationError', 'InterpolationDepthError', 'InterpolationSyntaxError', 'ParsingError', 'MissingSectionHeaderError', 'ConfigParser', 'SafeConfigParser', 'DEFAULTSECT', 'MAX_INTERPOLATION_DEPTH']