dropbox / dropbox/sqlalchemy-stubs
Declared attributes aren't supported
- Dominant language
- Python
- Stars
- 583
- Forks
- 96
- PR merge metrics
- No merged PRs in 30d
Description
I'm using SQLAlchemy's `declared_attr` decorator to add columns and relationships.
However, the decorated columns and relationships are completely ignored.
Here is a very simplified reproducer:
```python
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.ext.declarative.api import declared_attr
from sqlalchemy.orm import relationship
from sqlalchemy.schema import Column, ForeignKey
from sqlalchemy.types import Integer
Base = declarative_base()
class Person(Base):
__tablename__ = 'people'
id = Column(Integer, primary_key=True)
class EmailAddress(Base):
__tablename__ = 'emails'
@declared_attr
def owner_id(self) -> Column:
return Column(Integer, ForeignKey('people.id'), nullable=False)
@declared_attr
def owner(self) -> relationship:
return relationship(Person)
me = Person()
email_address = EmailAddress(owner=me)
```
This is what mypy says:
```
$ pipenv run mypy decl_attr.py
decl_attr.py:30: error: Unexpected column "owner" for model "EmailAddress"
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.