Glintecoでは、開発者体験を向上させながら、クリーンでプロフェッショナルな状態を維持するツールを愛しています。今日のOne Package Per Dayシリーズでは、ターミナル出力を驚くほど美しく、非常に読みやすくするPythonライブラリであるrichについて探求しましょう。

richとは?

richを、ターミナルの変身アーティストと考えてください。これにより、色、表、プログレスバー、マークダウン、コードの強調表示などを追加できます。

これはWill McGugan(textualライブラリも作成)によって開発され、ターミナルUIで最も人気のあるPythonパッケージの1つに成長しました。

小さなスクリプトで使用したり、それを使ってダッシュボード全体を構築したりできます。

インストール方法

簡単です。実行するだけです。


 
pip install rich

以上です。準備完了です。

試してみる

基本的なことから始めましょう。


 
from rich import print
print("[bold magenta]Hello[/bold magenta] [green]Glinteco![/green]")

ターミナルに「Hello Glinteco!」という単語が色とスタイルで表示されます。

または、よりクリーンなログが必要な場合は:


 
from rich.console import Console
console = Console()
console.log("Starting server...")

これにより、タイムスタンプと美しい出力が得られます。デバッグまたはステータス更新の表示に非常に役立ちます。

私たちが気に入っている理由

richが際立っている理由をいくつか紹介します。

  • テキストのスタイルを設定できます:太字、斜体、下線、色、背景
     

  • デザインシステムから来たかのような外観の表があります
     

  • 構文の強調表示を使用してコードを表示できます(ドキュメントまたはデバッグに最適)
     

  • 実際に見栄えがよく、更新が簡単なプログレスバーがあります
     

  • マークダウンもサポートしているので、READMEをCLIツール内に直接配置できます

rich python package

いつ使用するのか

richは多くの場所に適合します。私たちが使用した場所をいくつか紹介します。

  • CLIツールをよりユーザーフレンドリーにする。
     

  • データ(JSONやPythonオブジェクトなど)を読みやすい方法で印刷する。
     

  • システムログまたはデバッグ情報を視覚化する。
     

  • プログレスバーを使用して長時間実行されるタスクを追跡する。
     

  • 内部ツールでヘルスチェックダッシュボードを表示する。

注意すべき点

richは素晴らしいパッケージですが、覚えておくべきことがいくつかあります。

  • 色が表示されない場合は、ターミナルがANSIコードをサポートしていない可能性があります。別のターミナル(iTerm2、VSCodeなど)を試してください。
     

  • インポートエラーが発生する場合は、正しいPython環境にインストールされていることを確認してください。簡単なpip listで確認できます。

パフォーマンスに関する考察

そのすべての機能にもかかわらず、richは非常に高速です。パフォーマンスを考慮して記述されており、CIパイプラインやDockerコンテナでも正常に動作します。

非常にリソースに敏感なものを構築しているのでない限り、問題ありません。

良い点と悪い点

私たちが気に入っている点:

  • 最小限の労力でさえ、出力は見栄えがします。
     

  • 初心者でも簡単に習得できます。
     

  • 小さなスクリプトと大きな開発ツールの両方で最適です。
     

  • ドキュメントは最高です。

注意すべき点:

  • 古いサーバーや環境によっては、フォーマットをサポートしていない場合があります。
     

  • 色や効果をやりすぎると、ごちゃごちゃになる可能性があります。

そのため、良い料理に調味料を加えるように、賢く使いましょう。

最終的な考え

richは、一度試してみると、なぜもっと早く使わなかったのかと思うツールの1つです。作業をよりクリーンで、読みやすく、そして正直に言うと、より楽しくします。

Glintecoでは、スクリプト、内部ツール、チーム全体で共有するあらゆるものに使用しています。Pythonで作業していてまだチェックしていない場合は、今がその時です。

詳細情報