मेरे पास mysql डीबी तालिका में एक बूलियन फ़ील्ड है।फ्लैक 8 बूलियन तुलना पर शिकायत करता है "==" फ़िल्टर क्लॉज में
# table model
class TestCase(Base):
__tablename__ = 'test_cases'
...
obsoleted = Column('obsoleted', Boolean)
सभी गैर obsoleted परीक्षण मामलों की गिनती करने के लिए, कि इस तरह बस किया जा सकता है:
caseNum = session.query(TestCase).filter(TestCase.obsoleted == False).count()
print(caseNum)
कि ठीक काम करता है, लेकिन निम्न चेतावनी रिपोर्ट flake8:
E712: झूठे से तुलना किया जाना चाहिए "अगर cond झूठी है:" या "नहीं करता है, तो शर्तः"
ठीक है, मुझे लगता है कि समझ में आता है। तो यह करने के लिए अपने कोड बदलने के लिए:
caseNum = session.query(TestCase).filter(TestCase.obsoleted is False).count()
या
caseNum = session.query(TestCase).filter(not TestCase.obsoleted).count()
लेकिन उनमें से कोई भी काम कर सकते हैं। नतीजा हमेशा 0. मुझे लगता है कि फ़िल्टर क्लॉज ऑपरेटर "है" या "नहीं है" का समर्थन नहीं करता है। क्या कोई मुझे बता सकता है कि इस स्थिति को कैसे संभाला जाए। मैं फ्लेक को अक्षम नहीं करना चाहता हूं।
[पीईपी 8] (http://www.python.org/dev/peps/pep-0008/#programming-recommendations) विशेष रूप से * * अगर कोड गलत है "के खिलाफ * सलाह देता है। मुझे आश्चर्य है कि [pep8 टूल] (http://pep8.readthedocs.org/en/latest/intro.html) विपरीत है। –