MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _AssociationDict

Class _AssociationDict

lib/sqlalchemy/ext/associationproxy.py:1695–1848  ·  view source on GitHub ↗

Generic, converting, dict-to-dict proxy.

Source from the content-addressed store, hash-verified

1693
1694
1695class _AssociationDict(_AssociationCollection[_VT], MutableMapping[_KT, _VT]):
1696 """Generic, converting, dict-to-dict proxy."""
1697
1698 setter: _DictSetterProtocol[_VT]
1699 creator: _KeyCreatorProtocol[_VT]
1700 col: MutableMapping[_KT, Optional[_VT]]
1701
1702 def _create(self, key: _KT, value: Optional[_VT]) -> Any:
1703 return self.creator(key, value)
1704
1705 def _get(self, object_: Any) -> _VT:
1706 return self.getter(object_)
1707
1708 def _set(self, object_: Any, key: _KT, value: _VT) -> None:
1709 return self.setter(object_, key, value)
1710
1711 def __getitem__(self, key: _KT) -> _VT:
1712 return self._get(self.col[key])
1713
1714 def __setitem__(self, key: _KT, value: _VT) -> None:
1715 if key in self.col:
1716 self._set(self.col[key], key, value)
1717 else:
1718 self.col[key] = self._create(key, value)
1719
1720 def __delitem__(self, key: _KT) -> None:
1721 del self.col[key]
1722
1723 def __contains__(self, key: object) -> bool:
1724 return key in self.col
1725
1726 def __iter__(self) -> Iterator[_KT]:
1727 return iter(self.col.keys())
1728
1729 def clear(self) -> None:
1730 self.col.clear()
1731
1732 def __eq__(self, other: object) -> bool:
1733 return dict(self) == other
1734
1735 def __ne__(self, other: object) -> bool:
1736 return dict(self) != other
1737
1738 def __repr__(self) -> str:
1739 return repr(dict(self))
1740
1741 @overload
1742 def get(self, __key: _KT, /) -> Optional[_VT]: ...
1743
1744 @overload
1745 def get(
1746 self, __key: _KT, /, default: Union[_VT, _T]
1747 ) -> Union[_VT, _T]: ...
1748
1749 def get(
1750 self, __key: _KT, /, default: Optional[Union[_VT, _T]] = None
1751 ) -> Union[_VT, _T, None]:
1752 try:

Callers 1

_newMethod · 0.85

Calls 2

localsFunction · 0.85
itemsMethod · 0.45

Tested by

no test coverage detected