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.

Respuestas a la pregunta(3)

Su respuesta a la pregunta