Describe the bug
The context.pyi does not have stubs for the function overloads specified in environment.py
@overload
def get_x_argument( # type:ignore[misc]
self, as_dictionary: Literal[False] = ...
) -> List[str]:
...
@overload
def get_x_argument( # type:ignore[misc]
self, as_dictionary: Literal[True] = ...
) -> Dict[str, str]:
...
def get_x_argument(
self, as_dictionary: bool = False
) -> Union[List[str], Dict[str, str]]:
This will cause typing errors if trying to use:
cmd_line_path = context.get_x_argument(as_dictionary=True).get("dbpath", None)
migrations/env.py:71:21: error: Item "List[str]" of "Union[List[str], Dict[str, str]]" has no attribute "get" [union-attr]
Since the default typing for the function allows it to return List[str] even though specifying as_dictionary should narrow the return type.
Expected behavior
There should be no typing error once @overload stubs are added
To Reproduce
Please try to provide a Minimal, Complete, and Verifiable example, with the migration script and/or the SQLAlchemy tables or models involved.
See also Reporting Bugs on the website.
Error
# Copy error here. Please include the full stack trace.
Versions.
- OS:
- Python:
- Alembic:
- SQLAlchemy:
- Database:
- DBAPI:
Additional context
Have a nice day!
Describe the bug
The
context.pyidoes not have stubs for the function overloads specified inenvironment.pyThis will cause typing errors if trying to use:
Since the default typing for the function allows it to return
List[str]even though specifyingas_dictionaryshould narrow the return type.Expected behavior
There should be no typing error once
@overloadstubs are addedTo Reproduce
Please try to provide a Minimal, Complete, and Verifiable example, with the migration script and/or the SQLAlchemy tables or models involved.
See also Reporting Bugs on the website.
# Insert code hereError
Versions.
Additional context
Have a nice day!