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

Method __getitem__

Tools/c-analyzer/c_parser/info.py:1498–1521  ·  view source on GitHub ↗
(self, key)

Source from the content-addressed store, hash-verified

1496 yield from self._decls
1497
1498 def __getitem__(self, key):
1499 # XXX Be more exact for the 3-tuple case?
1500 if type(key) not in (str, tuple):
1501 raise KeyError(f'unsupported key {key!r}')
1502 resolved, extra = self._resolve_key(key)
1503 if extra:
1504 raise KeyError(f'key must have at most 3 parts, got {key!r}')
1505 if not resolved[2]:
1506 raise ValueError(f'expected name in key, got {key!r}')
1507 try:
1508 return self._decls[resolved]
1509 except KeyError:
1510 if type(key) is tuple and len(key) == 3:
1511 filename, funcname, name = key
1512 else:
1513 filename, funcname, name = resolved
1514 if filename and not filename.endswith(('.c', '.h')):
1515 raise KeyError(f'invalid filename in key {key!r}')
1516 elif funcname and funcname.endswith(('.c', '.h')):
1517 raise KeyError(f'invalid funcname in key {key!r}')
1518 elif name and name.endswith(('.c', '.h')):
1519 raise KeyError(f'invalid name in key {key!r}')
1520 else:
1521 raise # re-raise
1522
1523 @property
1524 def types(self):

Callers

nothing calls this directly

Calls 2

_resolve_keyMethod · 0.95
endswithMethod · 0.45

Tested by

no test coverage detected