「好きな色。」
黒は妥協のないPythonコードフォーマッターです。これを使用することにより、ハンドフォーマットの細目に対する制御を譲渡することに同意したことになります。その見返りとして、Black
pycodestyleはスピード、決定論、そしてフォーマットについてのしつこいことからの自由をあなたに与えます。あなたはより重要な問題のために時間と精神的なエネルギーを節約するでしょう。
黒くなったコードは、読んでいるプロジェクトに関係なく同じように見えます。しばらくするとフォーマットが透過的になり、代わりにコンテンツに集中できます。
黒は、可能な限り最小の差分を生成することにより、コードレビューを高速化します。
BlackPlaygroundを使用して今すぐお試しください。詳細については、 PyCon2019のトークをご覧ください。
黒はを実行することでインストールできます
pip install black。実行するにはPython3.6.2+が必要です。Jupyter Notebookをフォーマットする場合は、を使用してインストールし
pip install 'black[jupyter]'ます。
最新の暑さを待つことができず、GitHubからインストールする場合は、次を使用します。
pip install git+https://github.com/psf/black
賢明なデフォルトをすぐに開始するには:
black {source_file_or_directory}
スクリプトとして実行できない場合は、Blackをパッケージとして実行できます。
python -m black {source_file_or_directory}
詳細については、ドキュメントをご覧ください。
黒は、大小を問わず、多くのプロジェクトですでに成功裏に使用されています。Blackには、効率的な並列テストを備えた包括的なテストスイートと、独自の自動フォーマットおよび並列継続的インテグレーションランナーがあります。安定したので、将来、大きなフォーマットが変更されることは期待できません。文体の変更は、主にバグレポートへの応答と新しいPython構文のサポートになります。詳細については、 ブラックコードスタイルを参照してください。
また、処理を遅くする安全対策として、Blackは、再フォーマットされたコードが、元のコードと実質的に同等の有効なASTを生成することを確認します(詳細については、 プラグマティズムの セクションを参照してください)。自信がある場合は、を使用して
--fastください。
黒は、PEP8に準拠した意見のあるフォーマッターです。黒はファイル全体を所定の位置に再フォーマットします。スタイル構成オプションは意図的に制限されており、追加されることはめったにありません。以前のフォーマットは考慮されません( 例外についてはプラグマティズムを参照してください)。
私たちのドキュメントは現在のブラックコードスタイルをカバーしていますが、それに対する計画された変更もドキュメント化されています。どちらも一見の価値があります。
ブラックコードスタイルへの変更は、安定性ポリシーに拘束されます。
問題を送信する前に、このドキュメントを参照してください。バグのように見えるものは、意図された動作である可能性があります。
黒の初期のバージョンは、いくつかの点で絶対主義者でした。彼らは最初の作者を引き継いだ。実装が簡単になり、とにかくユーザーが少なかったので、これは当時は問題ありませんでした。エッジケースはあまり報告されていません。成熟したツールとして、 Blackは他の方法で保持するルールにいくつかの例外を設けています。
上記のドキュメントと同様に、問題を送信する前に、このドキュメントを参照してください。バグのように見えるものは、意図された動作である可能性があります。
Blackは、コマンドラインオプションのプロジェクト固有のデフォルト値をファイルから読み取ることができ
pyproject.tomlます。これは、プロジェクトのカスタム
--includeおよび
--exclude//パターンを指定する場合に特に便利です。
--force-exclude
--extend-exclude
詳細については、ドキュメントをご覧ください。
また、より一般的な構成ドキュメントを探している場合は、次のようになります。
ヒント:「何かを構成する必要がありますか?」と自問する場合。答えはノーだ"。黒は賢明なデフォルトがすべてです。これらのデフォルトを適用すると、コードは他の多くのBlack形式のプロジェクトに準拠するようになります。
次の注目すべきオープンソースプロジェクトは、一貫したコードスタイルを適用してBlackを信頼しています:pytest、tox、Pyramid、Django、Django Channels、Hypothesis、attrs、SQLAlchemy、Poetry、PyPAアプリケーション(Warehouse、Bandersnatch、Pipenv、virtualenv)、pandas、Pillow 、Twisted、LocalStack、すべてのDatadog Agent統合、Home Assistant、Zulip、Kedro、OpenOA、FLORIS、ORBIT、WOMBAT、その他多数。
次の組織がBlackを使用しています:Facebook、Dropbox、KeepTruckin、Mozilla、Quora、Duolingo、QuantumBlack、Tesla。
誰かが行方不明ですか?我々に教えてください。
マイク・ベイヤー、作者SQLAlchemy
:
プログラミングのキャリア全体で、導入によって生産性が大幅に向上したツールは1つも考えられません。これで、コードがそれ自体をフォーマットする方法がなかったときに以前にかかっていたであろうキーストロークの約1%でリファクタリングを行うことができます。
ダスティフィリップス、 作家:
黒は意見が分かれているので、そうする必要はありません。
Hynek Schlawack、作成者attrs
、TwistedおよびCPythonのコア開発者:
クリスマスに欲しいのは、吸わないオートフォーマッターだけです!
Carl Meyer、Djangoコア開発者:
少なくとも名前はいいです。
これにより、コードのフォーマットが大幅に改善されます。トンありがとう!
プロジェクトのREADME.mdでバッジを使用します。
[](https://github.com/psf/black)
README.rstでバッジを使用する:
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black
MIT
いらっしゃいませ!プロジェクトを改善してくれることをうれしく思います。あなたはこれを読むことから始めることができます:
残りの寄稿ドキュメントを確認したり、開発者と話し合ったりすることもできます。
ログはかなり長くなっています。独自のファイルに移動しました。
変更を参照してください。
著者リストは最近かなり長いので、それはそれ自身のファイルにあります。
AUTHORS.mdを参照してください
Blackプロジェクトに参加するすべての人、特に課題追跡システム、プルリクエスト、ソーシャルメディアアクティビティに参加するすべての人は、他の人を尊重し、より一般的には Pythonコミュニティ行動規範に明記されているガイドラインに従うことが期待されます。
同時に、ユーモアが奨励されます。実際、モンティパイソンのフライングサーカスに基本的に精通していることが期待されます。私たちは野蛮人ではありません。
そして、本当に誰かを平手打ちする必要がある場合は、踊りながら魚でそれを行います。