items(): New method, provided by Gustavo Niemeyer in SF bug #545096.
This commit is contained in:
parent
309db061af
commit
2ca041fde0
|
@ -189,6 +189,13 @@ values are checked in a case-insensitive manner. Any other value will
|
|||
cause it to raise \exception{ValueError}.
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}{items}{section\optional{, raw\optional{, vars}}}
|
||||
Create a generator which will return a tuple \code{(name, value)} for
|
||||
each option in the given \var{section}. Optional arguments have the
|
||||
same meaning as for the \code{get()} method.
|
||||
\versionadded{2.3}
|
||||
\end{methoddesc}
|
||||
|
||||
\begin{methoddesc}{set}{section, option, value}
|
||||
If the given section exists, set the given option to the specified value;
|
||||
otherwise raise \exception{NoSectionError}.
|
||||
|
|
|
@ -70,6 +70,10 @@ ConfigParser -- responsible for for parsing a list of
|
|||
insensitively defined as 0, false, no, off for 0, and 1, true,
|
||||
yes, on for 1). Returns 0 or 1.
|
||||
|
||||
items(section, raw=0, 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
|
||||
|
||||
|
@ -278,6 +282,35 @@ class ConfigParser:
|
|||
return value
|
||||
return self._interpolate(section, option, value, d)
|
||||
|
||||
def items(self, section, raw=0, 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.
|
||||
"""
|
||||
d = self.__defaults.copy()
|
||||
try:
|
||||
d.update(self.__sections[section])
|
||||
except KeyError:
|
||||
if section != DEFAULTSECT:
|
||||
raise NoSectionError(section)
|
||||
# Update with the entry specific variables
|
||||
if vars:
|
||||
d.update(vars)
|
||||
if raw:
|
||||
for option in self.options(section):
|
||||
yield (option, d[option])
|
||||
else:
|
||||
for option in self.options(section):
|
||||
yield (option,
|
||||
self._interpolate(section, option, d[option], d))
|
||||
|
||||
def _interpolate(self, section, option, rawval, vars):
|
||||
# do the string interpolation
|
||||
value = rawval
|
||||
|
|
Loading…
Reference in New Issue