はじめに

Rich は、ターミナルにリッチテキスト(色とスタイル付き)を出力し、テーブル、マークダウン、構文強調表示されたコードなどの高度なコンテンツを表示するための Python ライブラリです。

Rich を使用して、コマンドラインアプリケーションを視覚的に魅力的にし、データをより読みやすい方法で表示します。Rich は、データ構造のプリティプリントと構文強調表示によって、デバッグ支援としても役立ちます。

必要条件

Rich は、macOS、Linux、および Windows で動作します。

Windows では、古い cmd.exe ターミナルと新しいWindows ターミナルの両方がサポートされています。後者では、色とスタイルのサポートが大幅に向上しています。

Rich は Python 3.7.0 以上が必要です。

注意

PyCharm ユーザーは、スタイル付きの出力を表示するには、実行/デバッグ構成の出力コンソールオプションで「ターミナルのエミュレート」を有効にする必要があります。

インストール

Rich は、pip または好みのパッケージマネージャーを使用して PyPI からインストールできます。

pip install rich

Rich が既にインストールされている場合は、現在のバージョンに更新するために -U スイッチを追加します。

Jupyter と Rich を一緒に使用する場合、次のコマンドでインストールできる追加の依存関係がいくつかあります。

pip install "rich[jupyter]"

クイックスタート

Rich をすぐに使い始めるための最速の方法は、組み込みの print と同じ引数を取り、ドロップイン置換として使用できる代替 print 関数をインポートすることです。方法は次のとおりです。

from rich import print

その後、通常どおり文字列またはオブジェクトをターミナルに出力できます。Rich は、基本的な構文ハイライト表示を行い、データ構造をフォーマットして読みやすくします。

文字列には、出力に色とスタイルを挿入するために使用できるコンソールマークアップを含めることができます。

以下は、コンソールマークアップと Python オブジェクトのプリティフォーマットの両方を示しています。

>>> print("[italic red]Hello[/italic red] World!", locals())

これにより、(すべての色とスタイルを含む)次の出力がターミナルに書き込まれます。

Hello World!
{
    '__annotations__': {},
    '__builtins__': <module 'builtins' (built-in)>,
    '__doc__': None,
    '__loader__': <class '_frozen_importlib.BuiltinImporter'>,
    '__name__': '__main__',
    '__package__': None,
    '__spec__': None,
    'print': <function print at 0x1027fd4c0>,
} 

Python の組み込み print をシャドウ化しない方が良い場合は、rich.printrprint (例)としてインポートできます。

from rich import print as rprint

Rich のより高度な機能について学ぶには、読み進めてください。

REPL での Rich

Python のデータ構造が構文強調表示付きで自動的にプリティプリントされるように、REPL に Rich をインストールできます。方法は次のとおりです。

>>> from rich import pretty
>>> pretty.install()
>>> ["Rich and pretty", True]

この機能を使用して、Rich のレンダラブルを試すこともできます。例を以下に示します。

>>> from rich.panel import Panel
>>> Panel.fit("[bold yellow]Hi, I'm a Panel", border_style="red")

Rich のレンダラブルの詳細については、読み進めてください。

IPython 拡張機能

Rich には、同じプリティインストール + プリティトレースバックを行う IPython 拡張機能も含まれています。読み込み方法は次のとおりです。

In [1]: %load_ext rich

IPython 構成c.InteractiveShellApp.extension 変数に “rich” を追加することで、デフォルトで読み込むこともできます。

Rich Inspect

Rich には、任意の Python オブジェクトに関するレポートを生成できるinspect() 関数があります。これは優れたデバッグ支援であり、Rich が生成できる出力の良い例です。簡単な例を以下に示します。

>>> from rich import inspect
>>> from rich.color import Color
>>> color = Color.parse("red")
>>> inspect(color, methods=True)