Lines Matching defs:key

603     def key(self):
1399 key = (name, None, None)
1401 key = (None, None, name)
1403 key = (None, None, None)
1408 key = (None, parent.name, name)
1410 key = (None, None, name)
1414 key = (parent, None, name)
1416 key = (None, parent, name)
1418 key, extra = raw[:3], raw[3:]
1419 filename, funcname, name = key
1426 key = (filename, funcname, name)
1427 return key, extra
1453 for key, decl in self._decls.items():
1454 if type(key) is not tuple or len(key) != 3:
1455 raise ValueError(f'expected 3-tuple key, got {key!r} (for decl {decl!r})')
1456 filename, funcname, name = key
1458 raise ValueError(f'expected name in key, got {key!r} (for decl {decl!r})')
1460 raise ValueError(f'expected name in key to be str, got {key!r} (for decl {decl!r})')
1476 def __getitem__(self, key):
1478 if type(key) not in (str, tuple):
1479 raise KeyError(f'unsupported key {key!r}')
1480 resolved, extra = self._resolve_key(key)
1482 raise KeyError(f'key must have at most 3 parts, got {key!r}')
1484 raise ValueError(f'expected name in key, got {key!r}')
1488 if type(key) is tuple and len(key) == 3:
1489 filename, funcname, name = key
1493 raise KeyError(f'invalid filename in key {key!r}')
1495 raise KeyError(f'invalid funcname in key {key!r}')
1497 raise KeyError(f'invalid name in key {key!r}')
1516 def get(self, key, default=None):
1518 return self[key]
1522 #def add_decl(self, decl, key=None):
1524 # self._add_decl(decl, key)
1526 def find(self, *key, **explicit):
1527 if not key:
1532 resolved, extra = self._resolve_key(key)
1539 raise KeyError(f'key must have at most 4 parts, got {key!r}')
1569 def _add_decl(self, decl, key=None):
1570 if key:
1571 if type(key) not in (str, tuple):
1572 raise NotImplementedError((key, decl))
1573 # Any partial key will be turned into a full key, but that
1574 # same partial key will still match a key lookup.
1575 resolved, _ = self._resolve_key(key)
1577 raise ValueError(f'expected name in key, got {key!r}')
1578 key = resolved
1579 # XXX Also add with the decl-derived key if not the same?
1581 key, _ = self._resolve_key(decl)
1582 self._decls[key] = decl
1597 key, decl = decl
1602 self._add_decl(decl, key)
1604 for key, decl in decls:
1605 self._add_decl(decl, key)