Commit 470a1239 authored by Georg Brandl's avatar Georg Brandl

#1090076: explain the behavior of *vars* in get() better.

parent 6a74d34d
...@@ -44,7 +44,7 @@ inline comment, while ``#`` does not.) ...@@ -44,7 +44,7 @@ inline comment, while ``#`` does not.)
On top of the core functionality, :class:`SafeConfigParser` supports On top of the core functionality, :class:`SafeConfigParser` supports
interpolation. This means values can contain format strings which refer to interpolation. This means values can contain format strings which refer to
other values in the same section, or values in a special ``DEFAULT`` section. other values in the same section, or values in a special ``DEFAULT`` section.
Additional defaults can be provided on initialization and retrieval. Additional defaults can be provided on initialization.
For example:: For example::
...@@ -92,8 +92,7 @@ value of ``my_pictures`` and ``%(home_dir)s/lumberjack`` as the value of ...@@ -92,8 +92,7 @@ value of ``my_pictures`` and ``%(home_dir)s/lumberjack`` as the value of
manner by both parsers. manner by both parsers.
Default values can be specified by passing them as a dictionary when Default values can be specified by passing them as a dictionary when
constructing the :class:`SafeConfigParser`. Additional defaults may be passed constructing the :class:`SafeConfigParser`.
to the :meth:`get` method which will override all others.
Sections are normally stored in an :class:`collections.OrderedDict` which Sections are normally stored in an :class:`collections.OrderedDict` which
maintains the order of all keys. An alternative dictionary type can be passed maintains the order of all keys. An alternative dictionary type can be passed
...@@ -418,10 +417,13 @@ for the interpolation. ...@@ -418,10 +417,13 @@ for the interpolation.
.. method:: ConfigParser.get(section, option, raw=False, vars=None) .. method:: ConfigParser.get(section, option, raw=False, vars=None)
Get an *option* value for the named *section*. All the ``'%'`` Get an *option* value for the named *section*. If *vars* is provided, it
interpolations are expanded in the return values, based on the defaults must be a dictionary. The *option* is looked up in *vars* (if provided),
passed into the :meth:`__init__` method, as well as the options *vars* *section*, and in *defaults* in that order.
provided, unless the *raw* argument is true.
All the ``'%'`` interpolations are expanded in the return values, unless the
*raw* argument is true. Values for interpolation keys are looked up in the
same manner as the option.
.. method:: ConfigParser.items(section, raw=False, vars=None) .. method:: ConfigParser.items(section, raw=False, vars=None)
......
...@@ -661,11 +661,12 @@ class ConfigParser(RawConfigParser): ...@@ -661,11 +661,12 @@ class ConfigParser(RawConfigParser):
def get(self, section, option, raw=False, vars=None): def get(self, section, option, raw=False, vars=None):
"""Get an option value for a given section. """Get an option value for a given section.
All % interpolations are expanded in the return values, based on the If `vars' is provided, it must be a dictionary. The option is looked up
defaults passed into the constructor, unless the optional argument in `vars' (if provided), `section', and in `defaults' in that order.
`raw' is true. Additional substitutions may be provided using the
`vars' argument, which must be a dictionary whose contents overrides All % interpolations are expanded in the return values, unless the
any pre-existing defaults. optional argument `raw' is true. Values for interpolation keys are
looked up in the same manner as the option.
The section DEFAULT is special. The section DEFAULT is special.
""" """
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment