banner
andrewji8

Being towards death

Heed not to the tree-rustling and leaf-lashing rain, Why not stroll along, whistle and sing under its rein. Lighter and better suited than horses are straw sandals and a bamboo staff, Who's afraid? A palm-leaf plaited cape provides enough to misty weather in life sustain. A thorny spring breeze sobers up the spirit, I feel a slight chill, The setting sun over the mountain offers greetings still. Looking back over the bleak passage survived, The return in time Shall not be affected by windswept rain or shine.
telegram
twitter
github

忘れ去ってくださいprint、今日からこの専用のPython開発者の完璧なターミナルツールを使い始めましょう、実際に効果を確認しました!

今日は皆さんに非常に美しいターミナルツール - Rich をおすすめします。

Rich は Python ライブラリで、ターミナルでリッチテキストと美しいフォーマットを提供します。

Rich API を使用すると、ターミナルにさまざまな色や異なるスタイルを簡単に出力できます。美しいテーブル、プログレスバー、Markdown、構文を強調表示したソースコードやトレースバックなど、優れた機能が数多くあります。

image
1.Rich の互換性

Rich は Linux、OSX、Windows に対応しています。新しい Windows ターミナルと一緒に使用でき、Windows のクラシックターミナルは 8 色に制限されています。

Rich は Jupyter Notebook とも一緒に使用でき、追加の設定は不要です。

2.Rich のインストール手順

以下のいずれかの方法でコマンドを入力して依存関係をインストールしてください:

1.Windows 環境 Cmd を開く(スタート - 実行 - CMD)。

2.MacOS 環境 Terminal を開く(command + スペースで Terminal を入力)。

3.VSCode エディタまたは Pycharm を使用している場合は、画面下部の Terminal を直接使用できます。

1 pip install rich

3.Rich の Print 機能

Rich の出力機能を Python スクリプトプログラムに簡単に追加したい場合は、Rich Print メソッドをインポートするだけです。このメソッドは他の Python の組み込み機能の引数と似ています。試してみてください:

from rich import print

print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())

image
ご覧の通り、Rich の Print メソッドで出力された内容はすべて色付きで強調表示されており、Python の組み込み Print よりも明らかに優れています。

4. カスタム Console コンソール出力
Rich ターミナルの内容をさらにカスタマイズしたい場合は、コンソールオブジェクトをインポートして構築する必要があります:

from rich.console import Console

console = Console()

Console オブジェクトには Print メソッドが含まれており、そのインターフェースは Python の組み込み Print 機能に似ています。試してみてください:

console.print("Hello", "World!")

おそらく、ターミナルには「Hello World!」と表示されることに気づくでしょう。組み込みの「print」機能とは異なり、Rich はテキストを自動的に改行してターミナルの幅に合わせます。

出力にカスタムカラーやスタイルを追加する方法はいくつかあります。スタイルを全体の出力に設定するには、Style キーワード引数を追加できます。例は以下の通りです:

console.print("Hello", "World!", style="bold red")

出力は以下の図のようになります:

image
この例では、一度に一行のテキストスタイルのみを設定しました。より繊細で複雑なスタイルを得たい場合、Rich は特別なマークアップをレンダリングでき、その構文は Bbcode に似ています。例は以下の通りです:

console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")

image

5.Console コンソールログ
Console オブジェクトには Log () メソッドがあり、このメソッドは Print () と似たインターフェースを持ち、現在の時間や呼び出されたファイルと行を表示できます。

デフォルトでは、Rich は Python 構造と Repr 文字列に対して構文強調表示を行います。コレクション(辞書やリストなど)を記録すると、Rich はそれを美しく印刷し、利用可能なスペースに合わせます。以下はその機能のいくつかの例です:


from rich.console import Console
console = Console()

test_data = [
    {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
    {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
    {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
]

def test_log():
    enabled = False
    context = {
        "foo": "bar",
    }
    movies = ["Deadpool", "Rise of the Skywalker"]
    console.log("Hello from", console, "!")
    console.log(test_data, log_locals=True)

test_log()

上記の例の出力は以下の通りです:

image

Log_locals パラメータは、log メソッドを呼び出したローカル変数を含むテーブルを出力します。
Log メソッドは、長時間実行されるアプリケーション(サーバーなど)のログをターミナルに記録するためにも、デバッグを補助するためにも使用できます。

Logging 処理クラス

組み込みの処理クラスを使用して、Python ロギングモジュールの出力をフォーマットおよび着色することもできます。以下は出力の例です:

image
6. 絵文字
名前を二つのコロンの間に置くことで、コンソール出力に絵文字を挿入できます。例は以下の通りです:


>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
😃 🧛 💩 👍 🦝

この機能は慎重に使用してください。
7. テーブル
Rich には、さまざまなボーダー、スタイル、セルの整列などのフォーマットオプションが含まれています。以下は簡単な例です:

from rich.console import Console
from rich.table import Column, Table

console = Console()

table = Table(show_header=True, header_style="bold magenta")
table.add_column("Date", style="dim", width=12)
table.add_column("Title")
table.add_column("Production Budget", justify="right")
table.add_column("Box Office", justify="right")
table.add_row(
    "Dev 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
)
table.add_row(
    "May 25, 2018",
    "[red]Solo[/red]: A Star Wars Story",
    "$275,000,000",
    "$393,151,347",
)
table.add_row(
    "Dec 15, 2017",
    "Star Wars Ep. VIII: The Last Jedi",
    "$262,000,000",
    "[bold]$1,332,539,889[/bold]",
)

console.print(table)

この例の出力は以下の通りです:

image

注意してください。コンソールのマークアップの表示方法は print() と log() と同じです。実際、Rich によってレンダリングされた内容は、タイトル/行(さらには他のテーブル)に追加できます。Table クラスは賢く、列のサイズをターミナルの利用可能な幅に合わせて調整し、必要に応じてテキストの折り返しを処理します。以下は同じ例で、出力は上の表よりも小さいターミナルでのものです:

image

8. プログレスバー
Rich は、長時間実行されるタスクを追跡するために、ちらつかない複数のプログレスバーをレンダリングできます。
基本的な使い方:Track 関数を呼び出して結果を反復処理します。以下は例です:


from rich.progress import track

for step in track(range(100)):
    do_step(step)

複数のプログレスバーを追加するのは難しくありません。以下はその効果の例です:

image

これらの列は、必要な詳細を表示するように構成できます。
組み込みの列には、完了のパーセンテージ、ファイルサイズ、ファイル速度、残り時間が含まれます。以下は進行中のダウンロードを表示する例です:

image
複数の URL をダウンロードしながら進行状況を表示できます。
9. 列によるデータ出力
Rich は、整然とした、等しいまたは最適な幅の列を通じてコンテンツを表示できます。以下は(macOS / Linux)ls コマンドの非常に基本的なクローンで、列を使用してディレクトリリストを表示します:


import os
import sys

from rich import print
from rich.columns import Columns

directory = os.listdir(sys.argv[1])
print(Columns(directory))

以下のスクリーンショットは、API から取得したデータを表示する列の出力例です:

image

10.Markdown
Rich は Markdown をレンダリングでき、かなり良い形式でターミナルに表示します。
Markdown をレンダリングするには、Markdown クラスをインポートし、それをコンソールに印刷します。例は以下の通りです:

from rich.console import Console
from rich.markdown import Markdown

console = Console()
with open("README.md") as readme:
    markdown = Markdown(readme.read())
console.print(markdown)

この例の出力は以下の図のようになります:

image

11. 構文強調表示
Rich は Pygments ライブラリを使用して構文強調表示を実現します。使い方は Markdown のレンダリングに似ています。Syntax オブジェクトを構築し、それをコンソールに印刷します。以下は例です:


from rich.console import Console
from rich.syntax import Syntax

my_code = '''
def iter_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
    """Iterate and generate a tuple with a flag for first and last value."""
    iter_values = iter(values)
    try:
        previous_value = next(iter_values)
    except StopIteration:
        return
    first = True
    for value in iter_values:
        yield first, False, previous_value
        first = False
        previous_value = value
    yield first, True, previous_value
'''
syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)
console = Console()
console.print(syntax)

出力は以下の通りです:

image
12. エラートレースバック
Rich は美しいエラートレースバックログをレンダリングでき、標準の Python トレースバックよりも読みやすく、より多くのコードを表示できます。
Rich をデフォルトのトレースバックハンドラとして設定すると、すべての例外が Rich によって表示されます。
以下は OSX(Linux と似ています)での外観です:

image

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。