MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _AssociationSet

Class _AssociationSet

lib/sqlalchemy/ext/associationproxy.py:1851–2073  ·  lib/sqlalchemy/ext/associationproxy.py::_AssociationSet

Generic, converting, set-to-set proxy.

Source from the content-addressed store, hash-verified

1849
1850
1851class _AssociationSet(_AssociationSingleItem[_T], MutableSet[_T]):
1852 class="st">""class="st">"Generic, converting, set-to-set proxy."class="st">""
1853
1854 col: MutableSet[_T]
1855
1856 def __len__(self) -> int:
1857 return len(self.col)
1858
1859 def __bool__(self) -> bool:
1860 if self.col:
1861 return True
1862 else:
1863 return False
1864
1865 def __contains__(self, __o: object) -> bool:
1866 for member in self.col:
1867 if self._get(member) == __o:
1868 return True
1869 return False
1870
1871 def __iter__(self) -> Iterator[_T]:
1872 class="st">"""Iterate over proxied values.
1873
1874 For the actual domain objects, iterate over .col instead or just use
1875 the underlying collection directly from its property on the parent.
1876
1877 class="st">"""
1878 for member in self.col:
1879 yield self._get(member)
1880 return
1881
1882 def add(self, __element: _T, /) -> None:
1883 if __element not in self:
1884 self.col.add(self._create(__element))
1885
1886 class="cm"># for discard and remove, choosing a more expensive check strategy rather
1887 class="cm"># than call self.creator()
1888 def discard(self, __element: _T, /) -> None:
1889 for member in self.col:
1890 if self._get(member) == __element:
1891 self.col.discard(member)
1892 break
1893
1894 def remove(self, __element: _T, /) -> None:
1895 for member in self.col:
1896 if self._get(member) == __element:
1897 self.col.discard(member)
1898 return
1899 raise KeyError(__element)
1900
1901 def pop(self) -> _T:
1902 if not self.col:
1903 raise KeyError(class="st">"pop from an empty set")
1904 member = self.col.pop()
1905 return self._get(member)
1906
1907 def update(self, *s: Iterable[_T]) -> None:
1908 for iterable in s:

Callers 1

_newMethod · 0.85

Calls 2

localsFunction · 0.85
itemsMethod · 0.45

Tested by

no test coverage detected