diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-01-24 17:04:27 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-02-13 14:23:04 -0500 |
| commit | e545298e35ea9f126054b337e4b5ba01988b29f7 (patch) | |
| tree | e64aea159111d5921ff01f08b1c4efb667249dfe /lib/sqlalchemy/schema.py | |
| parent | f1da1623b800cd4de3b71fd1b2ad5ccfde286780 (diff) | |
| download | sqlalchemy-e545298e35ea9f126054b337e4b5ba01988b29f7.tar.gz | |
establish mypy / typing approach for v2.0
large patch to get ORM / typing efforts started.
this is to support adding new test cases to mypy,
support dropping sqlalchemy2-stubs entirely from the
test suite, validate major ORM typing reorganization
to eliminate the need for the mypy plugin.
* New declarative approach which uses annotation
introspection, fixes: #7535
* Mapped[] is now at the base of all ORM constructs
that find themselves in classes, to support direct
typing without plugins
* Mypy plugin updated for new typing structures
* Mypy test suite broken out into "plugin" tests vs.
"plain" tests, and enhanced to better support test
structures where we assert that various objects are
introspected by the type checker as we expect.
as we go forward with typing, we will
add new use cases to "plain" where we can assert that
types are introspected as we expect.
* For typing support, users will be much more exposed to the
class names of things. Add these all to "sqlalchemy" import
space.
* Column(ForeignKey()) no longer needs to be `@declared_attr`
if the FK refers to a remote table
* composite() attributes mapped to a dataclass no longer
need to implement a `__composite_values__()` method
* with_variant() accepts multiple dialect names
Change-Id: I22797c0be73a8fbbd2d6f5e0c0b7258b17fe145d
Fixes: #7535
Fixes: #7551
References: #6810
Diffstat (limited to 'lib/sqlalchemy/schema.py')
| -rw-r--r-- | lib/sqlalchemy/schema.py | 98 |
1 files changed, 51 insertions, 47 deletions
diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index c596dee5a..b2ca1cfef 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -9,50 +9,54 @@ """ -from .sql.base import SchemaVisitor # noqa -from .sql.ddl import _CreateDropBase # noqa -from .sql.ddl import _DDLCompiles # noqa -from .sql.ddl import _DropView # noqa -from .sql.ddl import AddConstraint # noqa -from .sql.ddl import CreateColumn # noqa -from .sql.ddl import CreateIndex # noqa -from .sql.ddl import CreateSchema # noqa -from .sql.ddl import CreateSequence # noqa -from .sql.ddl import CreateTable # noqa -from .sql.ddl import DDL # noqa -from .sql.ddl import DDLBase # noqa -from .sql.ddl import DDLElement # noqa -from .sql.ddl import DropColumnComment # noqa -from .sql.ddl import DropConstraint # noqa -from .sql.ddl import DropIndex # noqa -from .sql.ddl import DropSchema # noqa -from .sql.ddl import DropSequence # noqa -from .sql.ddl import DropTable # noqa -from .sql.ddl import DropTableComment # noqa -from .sql.ddl import SetColumnComment # noqa -from .sql.ddl import SetTableComment # noqa -from .sql.ddl import sort_tables # noqa -from .sql.ddl import sort_tables_and_constraints # noqa -from .sql.naming import conv # noqa -from .sql.schema import _get_table_key # noqa -from .sql.schema import BLANK_SCHEMA # noqa -from .sql.schema import CheckConstraint # noqa -from .sql.schema import Column # noqa -from .sql.schema import ColumnCollectionConstraint # noqa -from .sql.schema import ColumnCollectionMixin # noqa -from .sql.schema import ColumnDefault # noqa -from .sql.schema import Computed # noqa -from .sql.schema import Constraint # noqa -from .sql.schema import DefaultClause # noqa -from .sql.schema import DefaultGenerator # noqa -from .sql.schema import FetchedValue # noqa -from .sql.schema import ForeignKey # noqa -from .sql.schema import ForeignKeyConstraint # noqa -from .sql.schema import Identity # noqa -from .sql.schema import Index # noqa -from .sql.schema import MetaData # noqa -from .sql.schema import PrimaryKeyConstraint # noqa -from .sql.schema import SchemaItem # noqa -from .sql.schema import Sequence # noqa -from .sql.schema import Table # noqa -from .sql.schema import UniqueConstraint # noqa +from .sql.base import SchemaVisitor as SchemaVisitor +from .sql.ddl import _CreateDropBase as _CreateDropBase +from .sql.ddl import _DDLCompiles as _DDLCompiles +from .sql.ddl import _DropView as _DropView +from .sql.ddl import AddConstraint as AddConstraint +from .sql.ddl import CreateColumn as CreateColumn +from .sql.ddl import CreateIndex as CreateIndex +from .sql.ddl import CreateSchema as CreateSchema +from .sql.ddl import CreateSequence as CreateSequence +from .sql.ddl import CreateTable as CreateTable +from .sql.ddl import DDL as DDL +from .sql.ddl import DDLBase as DDLBase +from .sql.ddl import DDLElement as DDLElement +from .sql.ddl import DropColumnComment as DropColumnComment +from .sql.ddl import DropConstraint as DropConstraint +from .sql.ddl import DropIndex as DropIndex +from .sql.ddl import DropSchema as DropSchema +from .sql.ddl import DropSequence as DropSequence +from .sql.ddl import DropTable as DropTable +from .sql.ddl import DropTableComment as DropTableComment +from .sql.ddl import SetColumnComment as SetColumnComment +from .sql.ddl import SetTableComment as SetTableComment +from .sql.ddl import sort_tables as sort_tables +from .sql.ddl import ( + sort_tables_and_constraints as sort_tables_and_constraints, +) +from .sql.naming import conv as conv +from .sql.schema import _get_table_key as _get_table_key +from .sql.schema import BLANK_SCHEMA as BLANK_SCHEMA +from .sql.schema import CheckConstraint as CheckConstraint +from .sql.schema import Column as Column +from .sql.schema import ( + ColumnCollectionConstraint as ColumnCollectionConstraint, +) +from .sql.schema import ColumnCollectionMixin as ColumnCollectionMixin +from .sql.schema import ColumnDefault as ColumnDefault +from .sql.schema import Computed as Computed +from .sql.schema import Constraint as Constraint +from .sql.schema import DefaultClause as DefaultClause +from .sql.schema import DefaultGenerator as DefaultGenerator +from .sql.schema import FetchedValue as FetchedValue +from .sql.schema import ForeignKey as ForeignKey +from .sql.schema import ForeignKeyConstraint as ForeignKeyConstraint +from .sql.schema import Identity as Identity +from .sql.schema import Index as Index +from .sql.schema import MetaData as MetaData +from .sql.schema import PrimaryKeyConstraint as PrimaryKeyConstraint +from .sql.schema import SchemaItem as SchemaItem +from .sql.schema import Sequence as Sequence +from .sql.schema import Table as Table +from .sql.schema import UniqueConstraint as UniqueConstraint |
