MCPcopy Index your code
hub / github.com/python/cpython / SectionProxy

Class SectionProxy

Lib/configparser.py:1289–1356  ·  view source on GitHub ↗

A proxy for a single section from a parser.

Source from the content-addressed store, hash-verified

1287
1288
1289class SectionProxy(MutableMapping):
1290 """A proxy for a single section from a parser."""
1291
1292 def __init__(self, parser, name):
1293 """Creates a view on a section of the specified `name` in `parser`."""
1294 self._parser = parser
1295 self._name = name
1296 for conv in parser.converters:
1297 key = 'get' + conv
1298 getter = functools.partial(self.get, _impl=getattr(parser, key))
1299 setattr(self, key, getter)
1300
1301 def __repr__(self):
1302 return '<Section: {}>'.format(self._name)
1303
1304 def __getitem__(self, key):
1305 if not self._parser.has_option(self._name, key):
1306 raise KeyError(key)
1307 return self._parser.get(self._name, key)
1308
1309 def __setitem__(self, key, value):
1310 self._parser._validate_value_types(option=key, value=value)
1311 return self._parser.set(self._name, key, value)
1312
1313 def __delitem__(self, key):
1314 if not (self._parser.has_option(self._name, key) and
1315 self._parser.remove_option(self._name, key)):
1316 raise KeyError(key)
1317
1318 def __contains__(self, key):
1319 return self._parser.has_option(self._name, key)
1320
1321 def __len__(self):
1322 return len(self._options())
1323
1324 def __iter__(self):
1325 return self._options().__iter__()
1326
1327 def _options(self):
1328 if self._name != self._parser.default_section:
1329 return self._parser.options(self._name)
1330 else:
1331 return self._parser.defaults()
1332
1333 @property
1334 def parser(self):
1335 # The parser object of the proxy is read-only.
1336 return self._parser
1337
1338 @property
1339 def name(self):
1340 # The name of the section on a proxy is read-only.
1341 return self._name
1342
1343 def get(self, option, fallback=None, *, raw=False, vars=None,
1344 _impl=None, **kwargs):
1345 """Get an option value.
1346

Callers 3

__init__Method · 0.85
add_sectionMethod · 0.85
_handle_headerMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…