dropbox / sqlalchemy-stubs

Mypy plugin and stubs for SQLAlchemy
Apache License 2.0
571 stars 102 forks source link

sql-alchemy 1.4 - using is_not on column leads to mypy warning, while using isnot does not lead to the warning #244

Open serhiy-yevtushenko opened 2 years ago

serhiy-yevtushenko commented 2 years ago

In the sqlalchemy version 1.4, the method isnot was renamed to is_not, and the old method was left for backward compatibility.

(see https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.is_not)

However, if one try to use is_not on the column expression

(something like:

...
.where(and_(pch_alias.c.New_Id.is_not(None))))

) then one gets following warning in mypy:

error: "Column[Any]" has no attribute "is_not" However, if one is using older isnot construct, then mypy produces no warning.

As is_not now is a recommended method, I think stubs should function with it without warnings.

philbudne commented 2 years ago

Ihttps://github.com/dropbox/sqlalchemy-stubs/issues/237 covers this, and more cases.