@@ -1102,42 +1102,52 @@ def set(self, section, option, value=None):
11021102class SectionProxy (MutableMapping ):
11031103 """A proxy for a single section from a parser."""
11041104
1105- def __init__ (self , parser , section_name ):
1106- """Creates a view on a section named `section_name ` in `parser`."""
1105+ def __init__ (self , parser , name ):
1106+ """Creates a view on a section of the specified `name ` in `parser`."""
11071107 self ._parser = parser
1108- self ._section = section_name
1108+ self ._name = name
11091109 self .getint = functools .partial (self ._parser .getint ,
1110- self ._section )
1110+ self ._name )
11111111 self .getfloat = functools .partial (self ._parser .getfloat ,
1112- self ._section )
1112+ self ._name )
11131113 self .getboolean = functools .partial (self ._parser .getboolean ,
1114- self ._section )
1114+ self ._name )
11151115
11161116 def __repr__ (self ):
1117- return '<Section: {}>' .format (self ._section )
1117+ return '<Section: {}>' .format (self ._name )
11181118
11191119 def __getitem__ (self , key ):
1120- if not self ._parser .has_option (self ._section , key ):
1120+ if not self ._parser .has_option (self ._name , key ):
11211121 raise KeyError (key )
1122- return self ._parser .get (self ._section , key )
1122+ return self ._parser .get (self ._name , key )
11231123
11241124 def __setitem__ (self , key , value ):
11251125 self ._parser ._validate_value_type (value )
1126- return self ._parser .set (self ._section , key , value )
1126+ return self ._parser .set (self ._name , key , value )
11271127
11281128 def __delitem__ (self , key ):
1129- if not self ._parser .has_option (self ._section , key ):
1129+ if not self ._parser .has_option (self ._name , key ):
11301130 raise KeyError (key )
1131- return self ._parser .remove_option (self ._section , key )
1131+ return self ._parser .remove_option (self ._name , key )
11321132
11331133 def __contains__ (self , key ):
1134- return self ._parser .has_option (self ._section , key )
1134+ return self ._parser .has_option (self ._name , key )
11351135
11361136 def __len__ (self ):
11371137 # XXX weak performance
1138- return len (self ._parser .options (self ._section ))
1138+ return len (self ._parser .options (self ._name ))
11391139
11401140 def __iter__ (self ):
11411141 # XXX weak performance
11421142 # XXX does not break when underlying container state changed
1143- return self ._parser .options (self ._section ).__iter__ ()
1143+ return self ._parser .options (self ._name ).__iter__ ()
1144+
1145+ @property
1146+ def parser (self ):
1147+ # The parser object of the proxy is read-only.
1148+ return self ._parser
1149+
1150+ @property
1151+ def name (self ):
1152+ # The name of the section on a proxy is read-only.
1153+ return self ._name
0 commit comments