[解決済み] flake8 が filter 節のブール値比較 "==" で文句を言う
2023-03-12 16:49:31
質問
mysqlのdbテーブルにbooleanフィールドがあります。
# table model
class TestCase(Base):
__tablename__ = 'test_cases'
...
obsoleted = Column('obsoleted', Boolean)
削除されていないテストケースの数を取得するには、次のように簡単に行うことができます。
caseNum = session.query(TestCase).filter(TestCase.obsoleted == False).count()
print(caseNum)
これで問題なく動作するのですが、flake8では以下のような警告が報告されます。
E712: Falseとの比較は、"if cond is False:"または "ifでなければなりません。 cond:"でなければなりません。
なるほど、それなら納得です。では、私のコードを次のように変更してください。
caseNum = session.query(TestCase).filter(TestCase.obsoleted is False).count()
または
caseNum = session.query(TestCase).filter(not TestCase.obsoleted).count()
しかし、どちらもうまくいきません。 結果は常に0です。 filter節が演算子"is"または"is not"をサポートしていないのだと思います。誰かこの状況を処理する方法を教えてください。私はflakeを無効にしたくありません。
どのように解決するのですか?
それは、SQLAlchemy のフィルタが、数少ない
== False
が実際に意味を持つ数少ない場所だからです。
他のすべての場所
にする必要があります。
ではなく
を使用する必要があります。
を追加します。
# noqa
のコメントを追加して終了です。
あるいは
sqlalchemy.sql.expression.false
:
from sqlalchemy.sql.expression import false
TestCase.obsoleted == false()
ここで
false()
はセッションSQLの方言に合った値を返します。一致する
sqlalchemy.expression.true
.
関連
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
[解決済み] argparseによるブーリアン値のパース
-
[解決済み] ブーリアン値を格納するために使用するMySQLデータ型
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] リスト内包とラムダ+フィルタの比較
-
[解決済み] Pythonで文字列からbooleanに変換する?
-
[解決済み] 大文字と小文字を区別しない文字列比較を行うにはどうすればよいですか?
-
[解決済み】SQLAlchemyのfilterとfilter_byの違いについて
-
[解決済み】SQLAlchemyのIN句
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SQLAlchemy の式から、コンパイルされた生の SQL クエリを得るにはどうしたらいいですか?
-
[解決済み] sqlalchemy IS NOT NULL select
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
-
[解決済み] Cythonのコードを含むPythonパッケージはどのように構成すればよいのでしょうか?
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] virtualenvsはどこに作成するのですか?
-
[解決済み] 新しいpip backtrackingの実行時問題の解決