flake8 beschwert sich über den booleschen Vergleich "==" in der Filterklausel

Ich habe ein boolesches Feld in der MySQL-DB-Tabelle.

# table model
class TestCase(Base):
    __tablename__ = 'test_cases'
    ...
    obsoleted = Column('obsoleted',  Boolean)

So können Sie die Anzahl aller nicht veralteten Testfälle ermitteln:

caseNum = session.query(TestCase).filter(TestCase.obsoleted == False).count()
print(caseNum)

Das funktioniert gut, aber der Flake8 meldet die folgende Warnung:

E712: Der Vergleich mit False sollte "if cond is False:" oder "if not cond:" lauten.

Okay, ich denke das macht Sinn. Also ändere meinen Code wie folgt:

caseNum = session.query(TestCase).filter(TestCase.obsoleted is False).count()

oder

caseNum = session.query(TestCase).filter(not TestCase.obsoleted).count()

Aber keiner von ihnen kann funktionieren. Das Ergebnis ist immer 0. Ich glaube, die Filterklausel unterstützt den Operator "is" nicht oder "is not" nicht. Kann mir jemand sagen, wie ich mit dieser Situation umgehen soll. Ich möchte die Flocke nicht deaktivieren.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage