diff options
author | Federico Caselli <cfederico87@gmail.com> | 2022-10-21 21:11:23 +0200 |
---|---|---|
committer | Federico Caselli <cfederico87@gmail.com> | 2022-10-22 09:55:49 +0200 |
commit | 25619f27836e80351e078c8badc47b3e0acccf5d (patch) | |
tree | f9001942299288f1c6dfbd7d2179b15514330a5b /lib/sqlalchemy/util/_py_collections.py | |
parent | bbf68345f4993245689b96cc6c6a50013afa3caa (diff) | |
download | sqlalchemy-25619f27836e80351e078c8badc47b3e0acccf5d.tar.gz |
Add pep 584 to python immutabledict fallback
Fixes: #8695
Change-Id: Ie0412c3a7b2b1ba5bd5112f204318ff763cbb8f4
Diffstat (limited to 'lib/sqlalchemy/util/_py_collections.py')
-rw-r--r-- | lib/sqlalchemy/util/_py_collections.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/sqlalchemy/util/_py_collections.py b/lib/sqlalchemy/util/_py_collections.py index 488229abb..cd46893a4 100644 --- a/lib/sqlalchemy/util/_py_collections.py +++ b/lib/sqlalchemy/util/_py_collections.py @@ -27,6 +27,7 @@ from typing import TypeVar from typing import Union _T = TypeVar("_T", bound=Any) +_S = TypeVar("_S", bound=Any) _KT = TypeVar("_KT", bound=Any) _VT = TypeVar("_VT", bound=Any) @@ -129,8 +130,19 @@ class immutabledict(ImmutableDictBase[_KT, _VT]): def __repr__(self) -> str: return "immutabledict(%s)" % dict.__repr__(self) + # PEP 584 + def __ior__(self, __value: Any) -> NoReturn: # type: ignore + self._readonly() -_S = TypeVar("_S", bound=Any) + def __or__( # type: ignore[override] + self, __value: Mapping[_KT, _VT] + ) -> immutabledict[_KT, _VT]: + return immutabledict(super().__or__(__value)) + + def __ror__( # type: ignore[override] + self, __value: Mapping[_KT, _VT] + ) -> immutabledict[_KT, _VT]: + return immutabledict(super().__ror__(__value)) class OrderedSet(Set[_T]): |