Repolode
openstack

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. 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 の数値は毎日更新されます。

関連プロジェクト