| 1379 | return self._data[key] |
| 1380 | |
| 1381 | def __setitem__(self, key, value): |
| 1382 | try: |
| 1383 | k = 'get' + key |
| 1384 | except TypeError: |
| 1385 | raise ValueError('Incompatible key: {} (type: {})' |
| 1386 | ''.format(key, type(key))) |
| 1387 | if k == 'get': |
| 1388 | raise ValueError('Incompatible key: cannot use "" as a name') |
| 1389 | self._data[key] = value |
| 1390 | func = functools.partial(self._parser._get_conv, conv=value) |
| 1391 | func.converter = value |
| 1392 | setattr(self._parser, k, func) |
| 1393 | for proxy in self._parser.values(): |
| 1394 | getter = functools.partial(proxy.get, _impl=func) |
| 1395 | setattr(proxy, k, getter) |
| 1396 | |
| 1397 | def __delitem__(self, key): |
| 1398 | try: |