Skip to content

Commit f0d6577

Browse files
nomis6432sqla-tester
authored andcommitted
allow tuple type in down_revision in migration templates
<!-- Provide a general summary of your proposed changes in the Title field above --> FIXES #1665 Currently the type of `down_revision` in migration templates is `Union[str, None]`. However, when you generate a migration using `alembic merge heads` it will generate a migration with a tuple of strings in `down_revision` which causes a type error. ### Description f.e. when you have 2 heads and run `alembic merge heads` you will get a migration that looks like this: ```py revision: str = "6cee9e23ed4b" down_revision: Union[str, None] = ("aba1172f1a9f", "cdd5e67db84f") branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None ``` which will give a type error with type checkers like mypy and pyright. This change fixes this. From the code it seems like just like `branch_labels` and `depends_on` the `down_revision` is first casted to a tuple if needed so typing it as `Sequence[str]` and not `Tuple[str, ...]` should be safe. ### Checklist <!-- go over following points. check them with an `x` if they do apply, (they turn into clickable checkboxes once the PR is submitted, so no need to do everything at once) --> This pull request is: - [ ] A documentation / typographical error fix - Good to go, no issue or tests are needed - [x] 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: #<issue number>` 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: #<issue number>` in the commit message - please include tests. **Have a nice day!** Closes: #1666 Pull-request: #1666 Pull-request-sha: 186df96 Change-Id: I7b203b85bf69f215871995e4c4f5b96c20528c7d
1 parent dc2cb05 commit f0d6577

File tree

4 files changed

+4
-4
lines changed

4 files changed

+4
-4
lines changed

alembic/templates/async/script.py.mako

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ${imports if imports else ""}
1313

1414
# revision identifiers, used by Alembic.
1515
revision: str = ${repr(up_revision)}
16-
down_revision: Union[str, None] = ${repr(down_revision)}
16+
down_revision: Union[str, Sequence[str], None] = ${repr(down_revision)}
1717
branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)}
1818
depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)}
1919

alembic/templates/generic/script.py.mako

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ${imports if imports else ""}
1313

1414
# revision identifiers, used by Alembic.
1515
revision: str = ${repr(up_revision)}
16-
down_revision: Union[str, None] = ${repr(down_revision)}
16+
down_revision: Union[str, Sequence[str], None] = ${repr(down_revision)}
1717
branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)}
1818
depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)}
1919

alembic/templates/multidb/script.py.mako

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ ${imports if imports else ""}
1616

1717
# revision identifiers, used by Alembic.
1818
revision: str = ${repr(up_revision)}
19-
down_revision: Union[str, None] = ${repr(down_revision)}
19+
down_revision: Union[str, Sequence[str], None] = ${repr(down_revision)}
2020
branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)}
2121
depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)}
2222

alembic/templates/pyproject/script.py.mako

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ${imports if imports else ""}
1313

1414
# revision identifiers, used by Alembic.
1515
revision: str = ${repr(up_revision)}
16-
down_revision: Union[str, None] = ${repr(down_revision)}
16+
down_revision: Union[str, Sequence[str], None] = ${repr(down_revision)}
1717
branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)}
1818
depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)}
1919

0 commit comments

Comments
 (0)