dropbox / sqlalchemy-stubs

Mypy plugin and stubs for SQLAlchemy
Apache License 2.0
570 stars 101 forks source link

ColumnCollection initializer incorrect #227

Open rectalogic opened 2 years ago

rectalogic commented 2 years ago

The example in the docs shows a list of tuples of name/column pairs:

>>> x1, x2 = Column('x', Integer), Column('x', Integer)
>>> cc = ColumnCollection(columns=[(x1.name, x1), (x2.name, x2)])

https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection

But that fails to validate:

import sqlalchemy as sa

t = sa.Table(
    "foo", sa.MetaData(),
    sa.Column("one", sa.Integer),
    sa.Column("two", sa.Integer),
)
sa.sql.expression.ColumnCollection([
    (t.c.one.name, t.c.one),
    (t.c.two.name, t.c.two),
])
$ mypy cc.py
cc.py:8: error: Argument 1 to "ColumnCollection" has incompatible type "List[Tuple[str, Column[Any]]]"; expected "Column[Any]"
Found 1 error in 1 file (checked 1 source file)