summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/util/preloaded.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2022-07-19 13:03:51 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2022-07-19 14:26:05 -0400
commit3e3ea70df4a753e9f774f222d3722d2c9bfdbca7 (patch)
tree95bec62de0720a5891d576e8771cba84f8fa9f36 /lib/sqlalchemy/util/preloaded.py
parenteefc8c985400cd458e561d61299a2b81bdff1189 (diff)
downloadsqlalchemy-3e3ea70df4a753e9f774f222d3722d2c9bfdbca7.tar.gz
fixes for mypy 0.971
things that were passing with 0.961 need adjustment. it seems mypy has become very pedantic about the difference between importing from a module vs. accessing members of that module as instance variables, so adjust the preloaded typing block to be explicitly instance variables, since that's how the accessor works in any case. Change-Id: I746a3c9102530b7cf9b123aec7be6376657c1169
Diffstat (limited to 'lib/sqlalchemy/util/preloaded.py')
-rw-r--r--lib/sqlalchemy/util/preloaded.py91
1 files changed, 69 insertions, 22 deletions
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:
+# ...