summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2022-07-19 19:38:59 +0000
committerGerrit Code Review <gerrit@ci3.zzzcomputing.com>2022-07-19 19:38:59 +0000
commitd5e31d130808c94f09e51e9afb222c4efa63875c (patch)
treeadada8eb5fcb2683b4955336f7ac4b141df57cd2 /lib/sqlalchemy
parentaf4ee658d5ba5129066381d7870bc73a9ede523a (diff)
parent3e3ea70df4a753e9f774f222d3722d2c9bfdbca7 (diff)
downloadsqlalchemy-d5e31d130808c94f09e51e9afb222c4efa63875c.tar.gz
Merge "fixes for mypy 0.971" into main
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/orm/exc.py2
-rw-r--r--lib/sqlalchemy/orm/relationships.py2
-rw-r--r--lib/sqlalchemy/orm/strategies.py2
-rw-r--r--lib/sqlalchemy/sql/__init__.py16
-rw-r--r--lib/sqlalchemy/sql/cache_key.py2
-rw-r--r--lib/sqlalchemy/util/preloaded.py91
6 files changed, 82 insertions, 33 deletions
diff --git a/lib/sqlalchemy/orm/exc.py b/lib/sqlalchemy/orm/exc.py
index 57e5fe8c6..9b32e3a31 100644
--- a/lib/sqlalchemy/orm/exc.py
+++ b/lib/sqlalchemy/orm/exc.py
@@ -213,7 +213,7 @@ def _default_unmapped(cls: Type[Any]) -> Optional[str]:
base = util.preloaded.orm_base
try:
- mappers = base.manager_of_class(cls).mappers
+ mappers = base.manager_of_class(cls).mappers # type: ignore
except (
UnmappedClassError,
TypeError,
diff --git a/lib/sqlalchemy/orm/relationships.py b/lib/sqlalchemy/orm/relationships.py
index 77a95a195..669a2047c 100644
--- a/lib/sqlalchemy/orm/relationships.py
+++ b/lib/sqlalchemy/orm/relationships.py
@@ -2055,7 +2055,7 @@ class Relationship(
if self.uselist is None:
self.uselist = self.direction is not MANYTOONE
if not self.viewonly:
- self._dependency_processor = (
+ self._dependency_processor = ( # type: ignore
dependency.DependencyProcessor.from_relationship
)(self)
diff --git a/lib/sqlalchemy/orm/strategies.py b/lib/sqlalchemy/orm/strategies.py
index db9dcffdc..2c707439a 100644
--- a/lib/sqlalchemy/orm/strategies.py
+++ b/lib/sqlalchemy/orm/strategies.py
@@ -543,7 +543,7 @@ class DeferredColumnLoader(LoaderStrategy):
class LoadDeferredColumns:
"""serializable loader object used by DeferredColumnLoader"""
- def __init__(self, key, raiseload=False):
+ def __init__(self, key: str, raiseload: bool = False):
self.key = key
self.raiseload = raiseload
diff --git a/lib/sqlalchemy/sql/__init__.py b/lib/sqlalchemy/sql/__init__.py
index c3ebb4596..5702d6c25 100644
--- a/lib/sqlalchemy/sql/__init__.py
+++ b/lib/sqlalchemy/sql/__init__.py
@@ -5,6 +5,7 @@
# This module is part of SQLAlchemy and is released under
# the MIT License: https://www.opensource.org/licenses/mit-license.php
from typing import Any
+from typing import TYPE_CHECKING
from .base import Executable as Executable
from .compiler import COLLECT_CARTESIAN_PRODUCTS as COLLECT_CARTESIAN_PRODUCTS
@@ -114,13 +115,14 @@ def __go(lcls: Any) -> None:
from . import traversals
from . import type_api
- base.coercions = elements.coercions = coercions
- base.elements = elements
- base.type_api = type_api
- coercions.elements = elements
- coercions.lambdas = lambdas
- coercions.schema = schema
- coercions.selectable = selectable
+ if not TYPE_CHECKING:
+ base.coercions = elements.coercions = coercions
+ base.elements = elements
+ base.type_api = type_api
+ coercions.elements = elements
+ coercions.lambdas = lambdas
+ coercions.schema = schema
+ coercions.selectable = selectable
from .annotation import _prepare_annotations
from .annotation import Annotated
diff --git a/lib/sqlalchemy/sql/cache_key.py b/lib/sqlalchemy/sql/cache_key.py
index 5922c2db0..88148285c 100644
--- a/lib/sqlalchemy/sql/cache_key.py
+++ b/lib/sqlalchemy/sql/cache_key.py
@@ -272,7 +272,7 @@ class HasCacheKey:
elif meth is ANON_NAME:
elements = util.preloaded.sql_elements
if isinstance(obj, elements._anonymous_label):
- obj = obj.apply_map(anon_map)
+ obj = obj.apply_map(anon_map) # type: ignore
result += (attrname, obj)
elif meth is CALL_GEN_CACHE_KEY:
result += (
diff --git a/lib/sqlalchemy/util/preloaded.py b/lib/sqlalchemy/util/preloaded.py
index 67394c9a3..6332b3c94 100644
--- a/lib/sqlalchemy/util/preloaded.py
+++ b/lib/sqlalchemy/util/preloaded.py
@@ -13,8 +13,6 @@ runtime.
from __future__ import annotations
import sys
-from types import ModuleType
-import typing
from typing import Any
from typing import Callable
from typing import TYPE_CHECKING
@@ -24,17 +22,71 @@ _FN = TypeVar("_FN", bound=Callable[..., Any])
if TYPE_CHECKING:
- from sqlalchemy.engine import default as engine_default # noqa
- from sqlalchemy.orm import clsregistry as orm_clsregistry # noqa
- from sqlalchemy.orm import decl_api as orm_decl_api # noqa
- from sqlalchemy.orm import properties as orm_properties # noqa
- from sqlalchemy.orm import relationships as orm_relationships # noqa
- from sqlalchemy.orm import session as orm_session # noqa
- from sqlalchemy.orm import state as orm_state # noqa
- from sqlalchemy.orm import util as orm_util # noqa
- from sqlalchemy.sql import dml as sql_dml # noqa
- from sqlalchemy.sql import functions as sql_functions # noqa
- from sqlalchemy.sql import util as sql_util # noqa
+ from sqlalchemy import dialects as _dialects
+ from sqlalchemy import orm as _orm
+ from sqlalchemy.engine import cursor as _engine_cursor
+ from sqlalchemy.engine import default as _engine_default
+ from sqlalchemy.engine import reflection as _engine_reflection
+ from sqlalchemy.engine import result as _engine_result
+ from sqlalchemy.engine import url as _engine_url
+ from sqlalchemy.orm import base as _orm_base
+ from sqlalchemy.orm import clsregistry as _orm_clsregistry
+ from sqlalchemy.orm import decl_api as _orm_decl_api
+ from sqlalchemy.orm import decl_base as _orm_decl_base
+ from sqlalchemy.orm import dependency as _orm_dependency
+ from sqlalchemy.orm import descriptor_props as _orm_descriptor_props
+ from sqlalchemy.orm import mapper as _orm_mapper
+ from sqlalchemy.orm import properties as _orm_properties
+ from sqlalchemy.orm import relationships as _orm_relationships
+ from sqlalchemy.orm import session as _orm_session
+ from sqlalchemy.orm import state as _orm_state
+ from sqlalchemy.orm import strategies as _orm_strategies
+ from sqlalchemy.orm import strategy_options as _orm_strategy_options
+ from sqlalchemy.orm import util as _orm_util
+ from sqlalchemy.sql import default_comparator as _sql_default_comparator
+ from sqlalchemy.sql import dml as _sql_dml
+ from sqlalchemy.sql import elements as _sql_elements
+ from sqlalchemy.sql import functions as _sql_functions
+ from sqlalchemy.sql import naming as _sql_naming
+ from sqlalchemy.sql import schema as _sql_schema
+ from sqlalchemy.sql import selectable as _sql_selectable
+ from sqlalchemy.sql import sqltypes as _sql_sqltypes
+ from sqlalchemy.sql import traversals as _sql_traversals
+ from sqlalchemy.sql import util as _sql_util
+
+ # sigh, appease mypy 0.971 which does not accept imports as instance
+ # variables of a module
+ dialects = _dialects
+ engine_cursor = _engine_cursor
+ engine_default = _engine_default
+ engine_reflection = _engine_reflection
+ engine_result = _engine_result
+ engine_url = _engine_url
+ orm_clsregistry = _orm_clsregistry
+ orm_base = _orm_base
+ orm = _orm
+ orm_decl_api = _orm_decl_api
+ orm_decl_base = _orm_decl_base
+ orm_descriptor_props = _orm_descriptor_props
+ orm_dependency = _orm_dependency
+ orm_mapper = _orm_mapper
+ orm_properties = _orm_properties
+ orm_relationships = _orm_relationships
+ orm_session = _orm_session
+ orm_strategies = _orm_strategies
+ orm_strategy_options = _orm_strategy_options
+ orm_state = _orm_state
+ orm_util = _orm_util
+ sql_default_comparator = _sql_default_comparator
+ sql_dml = _sql_dml
+ sql_elements = _sql_elements
+ sql_functions = _sql_functions
+ sql_naming = _sql_naming
+ sql_selectable = _sql_selectable
+ sql_traversals = _sql_traversals
+ sql_schema = _sql_schema
+ sql_sqltypes = _sql_sqltypes
+ sql_util = _sql_util
class _ModuleRegistry:
@@ -85,17 +137,12 @@ class _ModuleRegistry:
__import__(module, globals(), locals())
self.__dict__[key] = globals()[key] = sys.modules[module]
- if typing.TYPE_CHECKING:
-
- def __getattr__(self, key: str) -> ModuleType:
- ...
-
_reg = _ModuleRegistry()
preload_module = _reg.preload_module
import_prefix = _reg.import_prefix
-if TYPE_CHECKING:
-
- def __getattr__(key: str) -> ModuleType:
- ...
+# this appears to do absolutely nothing for any version of mypy
+# if TYPE_CHECKING:
+# def __getattr__(key: str) -> ModuleType:
+# ...