Open
Description
Describe the bug
Table columns have optional[T] type even when they are defined with nullable=False
Expected behavior
Expected for type to be just "builtins.str" (not optional)
To Reproduce
# Most of this is copy pasted from documentation
from sqlalchemy import Column
from sqlalchemy import Integer
from sqlalchemy import String
from sqlalchemy import select
from sqlalchemy.orm import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False) # <------------ Added nullable=False here
some_user = User(id=5, name='user')
reveal_type(some_user.name) # <-------- Revealed type is "Union[builtins.str, None]"
# Expected for type to be just "builtins.str" (not optional)
Versions.
- OS:
- Python: 3.8.9
- SQLAlchemy: 1.4.27
- mypy: 0.910
- SQLAlchemy2-stubs: 0.0.2a19
Have a nice day!
Thank you, you too. You do not see this a lot on the internet. Really appreciate it.