PythonでターミナルをRichにする
PythonでターミナルをRichにする
ターミナルは暗い。Pythonでバックエンド開発をしていると日々真っ暗な画面を凝視することになり、性格も人生も暗くなります。
そこに光明を差すライブラリを見つけました。Richです。Richを使うことによって、真っ暗なターミナルを色とりどりのフォントと絵文字で明るい人生を送ることができるようになります。
What is Rich?
Richはターミナルにリッチなテキストを美しく整形して出力するPythonライブラリです。
Pythonの標準出力、ログの両方をきれいに表示することができるようになります。しかも絵文字も使えます。
Richは以下で公開されています。
Richになりましょう!
Rich入門
インストールは簡単です。すぐRichになれます。
pip install rich
これでRichになれました。続いてRichな生き方を学びましょう。
以下でRichな生き方が示されます。
python -m rich
すごいRichです。
Rich生活
もう少しRichになってみましょう。標準出力をRichにします。
import rich
from rich import pretty, print
from rich.console import Console
console = Console()
pretty.install()
print(1, 0.4, "I am Rich!", "私はRich!", ":smiley:")
console.print(1, 0.4, "I am Rich!", "私はRich!", ":smiley:")
print([1, 2, 3])
print({"a": 0, "b": 1, "c": "a1<aa>", "rich": rich})
とてもRichです! 絵文字が輝いています!
Richは更に、クラスや関数をフォーマットして表示してくれます。intをinspectして表示してみましょう。
from rich import pretty, print, inspect
from rich.console import Console
console = Console()
pretty.install()
print(inspect(int, methods=True))
コンソールログを使えば更にRichなフォーマットで表示することができます。
from rich import pretty, print
from rich.console import Console
console = Console()
pretty.install()
test_data = [
{"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True]},
{"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
{"jsonrpc": "2.0", "method": "subtract", "params": [42, 23]},
]
console.log("Hello from", console, "!")
console.log(test_data, log_locals=True)
本番で使うRich
本番でもRichになるために、例外やloggingフォーマットもRichにしたいと思います。
例外もRichに表示することができます。
from rich import pretty, print
from rich.console import Console
console = Console()
pretty.install()
try:
print(1 / 0)
except Exception as e:
console.print_exception(extra_lines=5, show_locals=True)
エラー内容がすーぱーRichになっています。絶対に見落とすことは有りません。
そしてRichはLoggingHandlerもRichに提供しています。
import rich
from rich import pretty, print
from rich.console import Console
import time
import logging
from rich.logging import RichHandler
logging.basicConfig(
level=logging.DEBUG,
format="%(message)s",
datefmt="[%X]",
handlers=[RichHandler(rich_tracebacks=True)],
)
log = logging.getLogger("rich")
log.info("Hello, World!")
def div(divisor: int, divident: int) -> float:
return divisor / divident
def main():
try:
a = div(2, 1)
log.info(f"2 / 1 = {a}")
b = div(1, 0)
log.info(f"1 / 0 = {b}")
except Exception as e:
log.exception("Rich error!")
if __name__ == "__main__":
main()
ログがRichになりました!
エラーもRichログ仕様になり、可読性の高いエラーになっています。
終わRich
というわけでRichでした。みなさまもRichを使って年末年始をRichに過ごしてください。良いお年を!
Author And Source
この問題について(PythonでターミナルをRichにする), 我々は、より多くの情報をここで見つけました https://qiita.com/cvusk/items/0c9fdf1fd12097f4a1b4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .