blackのチェックモードを実行し、フォーマットの差異をflake8のBLK違反として報告するプラグイン。
openstack/hacking
OpenStackのスタイルガイドに沿ってPythonコードをチェックするflake8プラグイン集。
- スター
- 243
- フォーク
- 67
- 未解決の Issue
- 0
- 最終コミット
- 2 か月前
これは何?
Hackingは、OpenStackのPythonスタイルガイドを適用するflake8プラグイン集です。コードレビューで手作業で確認するimportの順序やdocstringのルール、組み込み名のシャドーイングなど、OpenStackコミュニティがリスクのあるパターンと見なす記述を自動でチェックします。
チェック項目にはHで始まる名前が付いており、依存するflake8、pep8、mccabe、pyflakesの各プラグインとともにPyPIからインストールされます。依存関係はバージョン固定されているため、上流の新しいリリースによって既存のゲートジョブを壊すルールが予告なく追加されることはありません。バージョンはmajor.minor.maintenance形式で、maintenanceリリースでは新しいチェック項目が追加されないため、プロジェクトはminorバージョンを安全に固定できます。
assertionのスタイルやeventletのimportをチェックする項目など、デフォルトで無効になっているものもあり、tox.iniのflake8セクションで有効化できます。また、プロジェクト独自のチェック項目をtox.iniで定義し、flake8の拡張デコレーターを使って実装することもできます。
主な機能
- 01flake8プラグインを通じてOpenStackのPythonスタイルガイドを適用します。
- 02依存関係を固定してPyPIからインストールでき、CIのゲートを安定させます。
- 03maintenanceリリースでは新しいチェック項目が追加されないため、minorバージョンを安全に固定できます。
- 04デフォルトで無効になっているチェック項目をtox.iniで有効化できます。
- 05tox.iniに登録したプロジェクト固有のチェック項目に対応します。
ユースケース
- OpenStackプロジェクトのコードレビューでスタイル上の細かな指摘を自動検出し、マージ判定のゲートとして使う。
- 多くの開発者が参加する大規模なコードベースで、Pythonのスタイルを統一する。
- 標準のOpenStackチェックに加えて、プロジェクト独自のlintルールを追加する。
クイックスタート
- 1
PyPIからhackingをインストールします
pip install hacking
使う前に知っておきたいこと
- Hackingは依存関係のバージョンを固定するため、環境内の新しいバージョンのflake8やプラグインと競合することがあります。
- 多くのチェック項目はOpenStack固有で、他のプロジェクトではデフォルトで無効になっています。
収録されている特集
トピック
よくある質問
- hacking とは?
- OpenStackのスタイルガイドに沿ってPythonコードをチェックするflake8プラグイン集。 Hackingは、OpenStackのPythonスタイルガイドを適用するflake8プラグイン集です。コードレビューで手作業で確認するimportの順序やdocstringのルール、組み込み名のシャドーイングなど、OpenStackコミュニティがリスクのあるパターンと見なす記述を自動でチェックします。
- hacking は無料で使えますか?ライセンスは?
- hacking は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- hacking は今もメンテナンスされていますか?
- 半年以内に更新あり。hacking の最終コミットは 2026年9月14日 です。
- hacking は何に使えますか?
- OpenStackプロジェクトのコードレビューでスタイル上の細かな指摘を自動検出し、マージ判定のゲートとして使う。 多くの開発者が参加する大規模なコードベースで、Pythonのスタイルを統一する。 標準のOpenStackチェックに加えて、プロジェクト独自のlintルールを追加する。
- hacking のインストール方法は?
- PyPIからhackingをインストールします: pip install hacking
- hacking はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/openstack/hacking
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
PyFlakes、pycodestyle、McCabeを1つのコマンドにまとめ、サードパーティ製プラグインにも対応するPythonリンターです。
複数プロジェクトで共通の設定を適用し、設定ファイルを自動修正できるコマンドラインツール兼flake8プラグイン。
Pythonのimportを選択したスタイルガイドに沿ってグループ分け・整列できているかをチェックする、flake8およびPylama用プラグイン。
PEP 257の規約に沿ってdocstringを自動整形するPython用コマンドラインツール。
JavaScriptとTypeScript向けの300以上のルールに加え、CSS、HTML、JSON、Markdown、YAML向けのルールも提供するESLintプラグインです。