flake8 se plaint booléen comparaison “==” dans le filtre de la clause

J'ai un champ booléen dans la db mysql table.

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

Pour obtenir le nombre de tous les non-obsolète cas de test, qui peut être fait simplement comme ceci:

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

Qui fonctionne très bien, mais la flake8 rapport de l'avertissement suivant:

E712: Comparaison de Faux doit être "si cond est Fausse:" ou la "si ce n'
cond:"

D'accord, je pense que faire du sens. Afin de modifier mon code pour ce:

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

ou

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

Mais aucun des deux ne peut travailler. Le résultat est toujours 0.
Je pense que la clause de filtre ne prend pas en charge l'opérateur "est" ou "n'est pas". Quelqu'un peut me dire comment gérer cette situation. Je ne veux pas désactiver le flocon.

  • PEP 8 conseille spécifiquement contre "si cond est Faux". Je suis surpris que le pep8 outil fait le contraire.
InformationsquelleAutor Jruv | 2013-09-25