Open
Description
Describe the bug
Using hybrid_property leads to several errors
- redefinition of methods
- incompatible assignment types
Expected behavior
No errors are returned
To Reproduce
from sqlalchemy import Column, Date, Time
from sqlalchemy.ext.hybrid import hybrid_property
from datetime import datetime
class DummyTable:
create_date = Column("create_date", Date)
create_time = Column("create_time", Time)
@hybrid_property
def create_timestamp(self) -> datetime:
"""create time property"""
return datetime.combine(self.create_date, self.create_time)
@create_timestamp.setter
def create_timestamp(self, value:datetime) -> None:
"""create time setter"""
self.create_date = value.date()
self.create_time = value.time()
DummyTable().create_timestamp = datetime.now()
Error
src/x.py:14:6: error: Name "create_timestamp" already defined on line 9 [no-redef]
@create_timestamp.setter
^
src/x.py:21:1: error: Cannot assign to a method [assignment]
DummyTable().create_timestamp = datetime.now()
^
src/x.py:21:33: error: Incompatible types in assignment (expression has type "datetime", variable has type "Callable[..., Any]") [assignment]
DummyTable().create_timestamp = datetime.now()
Versions.
- OS: Linux
- Python: 3.7.1
- SQLAlchemy: 1.4.22
- mypy: 0.910
- SQLAlchemy2-stubs: 0.0.2a6