From 191c14a544bffcae43a516389ec7634afa524103 Mon Sep 17 00:00:00 2001 From: DanCardin Date: Wed, 6 Nov 2024 12:10:12 -0500 Subject: [PATCH] fix: Correct the AutogenContext.metadata typing to include Sequence[MetaData]. ### Description The type annotation for AutogenContext.metadata is currently `Optional[MetaData]`, but `target_metadata` is `Union[MetaData, Sequence[MetaData], None]`. Seems like setting `target_metadata` to `[]` directly translates into the list that `AutogenContext` receives, and that the code is already coercing the potential single/sequence to always be a list. My alembic plugin wasn't aware that this **could** be a list, and as such wasn't handling the possibility properly. ### Checklist This pull request is: - [x] A documentation / typographical error fix - Good to go, no issue or tests are needed - [ ] A short code fix - please include the issue number, and create an issue if none exists, which must include a complete example of the issue. one line code fixes without an issue and demonstration will not be accepted. - Please include: `Fixes: #` in the commit message - please include tests. one line code fixes without tests will not be accepted. - [ ] A new feature implementation - please include the issue number, and create an issue if none exists, which must include a complete example of how the feature would look. - Please include: `Fixes: #` in the commit message - please include tests. **Have a nice day!** Closes: #1547 Pull-request: https://github.com/sqlalchemy/alembic/pull/1547 Pull-request-sha: 1bdfa18739e3d156f267953c71267feeded9543b Change-Id: Ib3114b19c10983114b834676ada69d7475e82fe5 --- alembic/autogenerate/api.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/alembic/autogenerate/api.py b/alembic/autogenerate/api.py index 4c039162..811462e8 100644 --- a/alembic/autogenerate/api.py +++ b/alembic/autogenerate/api.py @@ -277,7 +277,7 @@ class AutogenContext: """Maintains configuration and state that's specific to an autogenerate operation.""" - metadata: Optional[MetaData] = None + metadata: Union[MetaData, Sequence[MetaData], None] = None """The :class:`~sqlalchemy.schema.MetaData` object representing the destination. @@ -332,7 +332,7 @@ class AutogenContext: def __init__( self, migration_context: MigrationContext, - metadata: Optional[MetaData] = None, + metadata: Union[MetaData, Sequence[MetaData], None] = None, opts: Optional[Dict[str, Any]] = None, autogenerate: bool = True, ) -> None: