]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
updates for mypy 1.6.0
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 11 Oct 2023 15:54:26 +0000 (11:54 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 11 Oct 2023 15:54:26 +0000 (11:54 -0400)
Change-Id: I33b8e2f55b9049ed412dbe1d0ccd5c9e83e4d1d5

doc/build/changelog/unreleased_20/mypy160.rst [new file with mode: 0644]
lib/sqlalchemy/engine/base.py
lib/sqlalchemy/orm/session.py
lib/sqlalchemy/orm/util.py
lib/sqlalchemy/sql/schema.py
lib/sqlalchemy/util/_collections.py
tox.ini

diff --git a/doc/build/changelog/unreleased_20/mypy160.rst b/doc/build/changelog/unreleased_20/mypy160.rst
new file mode 100644 (file)
index 0000000..c69e5b4
--- /dev/null
@@ -0,0 +1,4 @@
+.. change::
+    :tags: bug, typing
+
+    Updates to the codebase to support Mypy 1.6.0.
index 72012ff9d91fdd8b8bb59fca5605def44127d7fb..0000e28103d304cea5d104c12526d8c3a73eb1ab 100644 (file)
@@ -205,7 +205,11 @@ class Connection(ConnectionEventsTarget, inspection.Inspectable["Inspector"]):
 
     @property
     def _schema_translate_map(self) -> Optional[SchemaTranslateMapType]:
-        return self._execution_options.get("schema_translate_map", None)
+        schema_translate_map: Optional[
+            SchemaTranslateMapType
+        ] = self._execution_options.get("schema_translate_map", None)
+
+        return schema_translate_map
 
     def schema_for_object(self, obj: HasSchemaAttr) -> Optional[str]:
         """Return the schema name for the given schema item taking into
index 7f77a9bb77a6186712d1c8c3ea7f96176a203b27..e1d2c4947b85fe732954fb9e61123892e94e2083 100644 (file)
@@ -511,7 +511,8 @@ class ORMExecuteState(util.MemoizedSlots):
 
 
         """
-        return self.bind_arguments.get("mapper", None)
+        mp: Optional[Mapper[Any]] = self.bind_arguments.get("mapper", None)
+        return mp
 
     @property
     def all_mappers(self) -> Sequence[Mapper[Any]]:
@@ -719,9 +720,14 @@ class ORMExecuteState(util.MemoizedSlots):
                 "This ORM execution is not against a SELECT statement "
                 "so there are no load options."
             )
-        return self.execution_options.get(
+
+        lo: Union[
+            context.QueryContext.default_load_options,
+            Type[context.QueryContext.default_load_options],
+        ] = self.execution_options.get(
             "_sa_orm_load_options", context.QueryContext.default_load_options
         )
+        return lo
 
     @property
     def update_delete_options(
@@ -738,10 +744,14 @@ class ORMExecuteState(util.MemoizedSlots):
                 "This ORM execution is not against an UPDATE or DELETE "
                 "statement so there are no update options."
             )
-        return self.execution_options.get(
+        uo: Union[
+            bulk_persistence.BulkUDCompileState.default_update_options,
+            Type[bulk_persistence.BulkUDCompileState.default_update_options],
+        ] = self.execution_options.get(
             "_sa_orm_update_options",
             bulk_persistence.BulkUDCompileState.default_update_options,
         )
+        return uo
 
     @property
     def _non_compile_orm_options(self) -> Sequence[ORMOption]:
index 573cc2c436c5d338eaa377305dcc843e9ea0c431..feb82a648ea8d4aff0ff6d7da78c1801cf50c4a4 100644 (file)
@@ -1630,12 +1630,18 @@ class Bundle(
         )
 
     @property
-    def mapper(self) -> Mapper[Any]:
-        return self.exprs[0]._annotations.get("parentmapper", None)
+    def mapper(self) -> Optional[Mapper[Any]]:
+        mp: Optional[Mapper[Any]] = self.exprs[0]._annotations.get(
+            "parentmapper", None
+        )
+        return mp
 
     @property
-    def entity(self) -> _InternalEntityType[Any]:
-        return self.exprs[0]._annotations.get("parententity", None)
+    def entity(self) -> Optional[_InternalEntityType[Any]]:
+        ie: Optional[_InternalEntityType[Any]] = self.exprs[
+            0
+        ]._annotations.get("parententity", None)
+        return ie
 
     @property
     def entity_namespace(
index ca389a9a71a8bd1b7b1217f7cf09743c529dfba7..c464d7eb0ea91d621f226ef131cf812d904ce526 100644 (file)
@@ -5526,7 +5526,7 @@ class MetaData(HasSchemaAttr):
 
     def _remove_table(self, name: str, schema: Optional[str]) -> None:
         key = _get_table_key(name, schema)
-        removed = dict.pop(self.tables, key, None)  # type: ignore
+        removed = dict.pop(self.tables, key, None)
         if removed is not None:
             for fk in removed.foreign_keys:
                 fk._remove_from_metadata(self)
index c3f3c2b9f87a3054b179cb4775d580445fcd99b8..a0b1977ee5096594b55d47b699fe54a18f6c3a1f 100644 (file)
@@ -532,8 +532,8 @@ class LRUCache(typing.MutableMapping[_KT, _VT]):
     def get(
         self, key: _KT, default: Optional[Union[_VT, _T]] = None
     ) -> Optional[Union[_VT, _T]]:
-        item = self._data.get(key, default)
-        if item is not default and item is not None:
+        item = self._data.get(key)
+        if item is not None:
             item[2][0] = self._inc_counter()
             return item[1]
         else:
diff --git a/tox.ini b/tox.ini
index f56ad891c0d5de22eeacda4bf5dab6c571dd2654..ed68dbfcf7e55233a1457179ed1511aa22f7e7e2 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -174,7 +174,7 @@ commands=
 deps=
      greenlet != 0.4.17
      importlib_metadata; python_version < '3.8'
-     mypy >= 1.1.1
+     mypy >= 1.6.0
 commands =
     mypy  {env:MYPY_COLOR} ./lib/sqlalchemy
     # pyright changes too often with not-exactly-correct errors