summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2023-03-08 12:14:01 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2023-03-08 13:52:41 -0500
commitbcbb4007bbfa5102d7e53fea8aac50e528d4d1f2 (patch)
tree20ca47143fd2a26abd22c6419a18971a4eed6e93 /lib
parent8d5986fafd8360ddfe3992bd56602d5a52a23392 (diff)
downloadsqlalchemy-bcbb4007bbfa5102d7e53fea8aac50e528d4d1f2.tar.gz
update for mypy 1.1.1
looks like mypy 1.1.1 slipped in after the last jenkins pep484 build for SQLAlchemy. update for its new issues. Change-Id: Ifca967a75d5e592c04b0138aeda9b646067fe59b
Diffstat (limited to 'lib')
-rw-r--r--lib/sqlalchemy/ext/mutable.py8
-rw-r--r--lib/sqlalchemy/orm/decl_api.py20
-rw-r--r--lib/sqlalchemy/util/_collections.py2
-rw-r--r--lib/sqlalchemy/util/_py_collections.py19
4 files changed, 32 insertions, 17 deletions
diff --git a/lib/sqlalchemy/ext/mutable.py b/lib/sqlalchemy/ext/mutable.py
index 940d62b0a..0dd321559 100644
--- a/lib/sqlalchemy/ext/mutable.py
+++ b/lib/sqlalchemy/ext/mutable.py
@@ -784,15 +784,19 @@ class MutableDict(Mutable, Dict[_KT, _VT]):
if TYPE_CHECKING:
+ # from https://github.com/python/mypy/issues/14858
+
@overload
- def setdefault(self, key: _KT) -> _VT | None:
+ def setdefault(
+ self: MutableDict[_KT, Optional[_T]], key: _KT, value: None = None
+ ) -> Optional[_T]:
...
@overload
def setdefault(self, key: _KT, value: _VT) -> _VT:
...
- def setdefault(self, key: _KT, value: _VT | None = None) -> _VT | None:
+ def setdefault(self, key: _KT, value: object = None) -> object:
...
else:
diff --git a/lib/sqlalchemy/orm/decl_api.py b/lib/sqlalchemy/orm/decl_api.py
index f332d2964..60d2fbc2b 100644
--- a/lib/sqlalchemy/orm/decl_api.py
+++ b/lib/sqlalchemy/orm/decl_api.py
@@ -150,11 +150,11 @@ class DeclarativeAttributeIntercept(
@compat_typing.dataclass_transform(
field_specifiers=(
- MappedColumn[Any],
- RelationshipProperty[Any],
- Composite[Any],
- ColumnProperty[Any],
- Synonym[Any],
+ MappedColumn,
+ RelationshipProperty,
+ Composite,
+ ColumnProperty,
+ Synonym,
mapped_column,
relationship,
composite,
@@ -1546,11 +1546,11 @@ class registry:
@compat_typing.dataclass_transform(
field_specifiers=(
- MappedColumn[Any],
- RelationshipProperty[Any],
- Composite[Any],
- ColumnProperty[Any],
- Synonym[Any],
+ MappedColumn,
+ RelationshipProperty,
+ Composite,
+ ColumnProperty,
+ Synonym,
mapped_column,
relationship,
composite,
diff --git a/lib/sqlalchemy/util/_collections.py b/lib/sqlalchemy/util/_collections.py
index b1e3fd23f..af117dc92 100644
--- a/lib/sqlalchemy/util/_collections.py
+++ b/lib/sqlalchemy/util/_collections.py
@@ -143,7 +143,7 @@ class FacadeDict(ImmutableDictBase[_KT, _VT]):
"""A dictionary that is not publicly mutable."""
def __new__(cls, *args: Any) -> FacadeDict[Any, Any]:
- new = dict.__new__(cls)
+ new = ImmutableDictBase.__new__(cls)
return new
def copy(self) -> NoReturn:
diff --git a/lib/sqlalchemy/util/_py_collections.py b/lib/sqlalchemy/util/_py_collections.py
index 048825f60..8810800c4 100644
--- a/lib/sqlalchemy/util/_py_collections.py
+++ b/lib/sqlalchemy/util/_py_collections.py
@@ -23,9 +23,12 @@ from typing import NoReturn
from typing import Optional
from typing import Set
from typing import Tuple
+from typing import TYPE_CHECKING
from typing import TypeVar
from typing import Union
+from ..util.typing import Self
+
_T = TypeVar("_T", bound=Any)
_S = TypeVar("_S", bound=Any)
_KT = TypeVar("_KT", bound=Any)
@@ -54,6 +57,14 @@ class ReadOnlyContainer:
class ImmutableDictBase(ReadOnlyContainer, Dict[_KT, _VT]):
+ if TYPE_CHECKING:
+
+ def __new__(cls, *args: Any) -> Self:
+ ...
+
+ def __init__(cls, *args: Any):
+ ...
+
def _readonly(self, *arg: Any, **kw: Any) -> NoReturn:
self._immutable()
@@ -75,7 +86,7 @@ class ImmutableDictBase(ReadOnlyContainer, Dict[_KT, _VT]):
class immutabledict(ImmutableDictBase[_KT, _VT]):
def __new__(cls, *args):
- new = dict.__new__(cls)
+ new = ImmutableDictBase.__new__(cls)
dict.__init__(new, *args)
return new
@@ -93,7 +104,7 @@ class immutabledict(ImmutableDictBase[_KT, _VT]):
if not __d:
return self
- new = dict.__new__(self.__class__)
+ new = ImmutableDictBase.__new__(self.__class__)
dict.__init__(new, self)
dict.update(new, __d) # type: ignore
return new
@@ -105,7 +116,7 @@ class immutabledict(ImmutableDictBase[_KT, _VT]):
if not __d and not kw:
return self
- new = dict.__new__(self.__class__)
+ new = ImmutableDictBase.__new__(self.__class__)
dict.__init__(new, self)
if __d:
dict.update(new, __d) # type: ignore
@@ -119,7 +130,7 @@ class immutabledict(ImmutableDictBase[_KT, _VT]):
for d in dicts:
if d:
if new is None:
- new = dict.__new__(self.__class__)
+ new = ImmutableDictBase.__new__(self.__class__)
dict.__init__(new, self)
dict.update(new, d) # type: ignore
if new is None: