flake8 se queja sobre la comparación booleana "==" en la cláusula de filtro
Tengo un campo booleano en la tabla de db mysql.
# table model
class TestCase(Base):
__tablename__ = 'test_cases'
...
obsoleted = Column('obsoleted', Boolean)
Para obtener el recuento de todos los casos de prueba no obsoletos, se puede hacer simplemente así:
caseNum = session.query(TestCase).filter(TestCase.obsoleted == False).count()
print(caseNum)
Eso funciona bien, pero el flake8 informa la siguiente advertencia:
E712: La comparación con Falso debe ser "si cond es Falso:" o "si no es cond:"
Está bien, creo que tiene sentido. Así que cambia mi código a esto:
caseNum = session.query(TestCase).filter(TestCase.obsoleted is False).count()
o
caseNum = session.query(TestCase).filter(not TestCase.obsoleted).count()
Pero ninguno de ellos puede trabajar. El resultado siempre es 0. Creo que la cláusula de filtro no es compatible con el operador "is" o "is not". Alguien me puede decir cómo manejar esta situación. No quiero deshabilitar la escama.