dropbox / dropbox/sqlalchemy-stubs
Assigning to a Union of a nullable and non-nullable column fails
- Dominant language
- Python
- Stars
- 583
- Forks
- 96
- PR merge metrics
- No merged PRs in 30d
Description
I'm running the latest (at the time of writing) `mypy` (0.950) and `sqlalchemy-stubs` (0.4) and hitting this issue:
```python
from sqlalchemy import Column, Integer
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Dog(Base):
__tablename__ = 'dogs'
age = Column(Integer)
class Cat(Base):
__tablename__ = 'cats'
age = Column(Integer, nullable=False)
Animal = Dog | Cat
animal: Animal = Cat()
animal.age = 20 # Mypy error, should be fine!
```
The error I get is:
```
error: Incompatible types in assignment (expression has type "int", variable has type "Union[Column[Optional[int]], Column[int]]")
```
but I don't think there should be an error.
My mypy config in my pyproject.toml is just:
```
[tool.mypy]
plugins = "sqlmypy"
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.