リッチPythonライブラリと美しいクリス
16593 ワード
AWS、Kubernetes、Python、JavaScriptなどのコンテンツを書く.すべての最新のコンテンツを表示するには、必ずvisit my blog そして、私のニュースレターを購読してください..
このポストはrich PythonのCLI出力にいくつかの色と書式を追加する方法を示すライブラリ.
必要条件 親しみPipenv . 参照here Pipenvの上の私のポストのために. 読めるPretty errors in Python Pythonでかなりのエラー出力を作る方法に関する私のポストのために. 読めるCLI Prompts in Python CLIをPythonでプロンプトする方法に関する私のポストのために. 読めるBuilding CLIs with python-fire クリスを構築する私のイントロのために どのようにPython Fire 作品 これは前の投稿の内容からPretty errors in Python .
ポストを理解する必要がない間、同じコードを使用することを望んでいるならば、それを読むことはお勧めです.
始める
シリーズのこの段階で
我々は、追加することができます
出力への色の追加
私たちは、どのようにリッチは、消化権のクラスのメソッドのステータスに色を追加する簡単な例で動作するデモを行います.
現在のところ、このメソッドは以下のようになります:
以下のようにします.
概要
今日のポストは、使用する方法を示しました
資源と更なる読書 The ABCs of Pipenv Pipenv Pretty errors in Python CLI Prompts in Python Building CLIs with python-fire Python Fire rich フォトクレジット
もともと私の投稿blog . 遅滞なく新しいポストを見るために、そこのポストを読んで、私の会報を購読してください.
This is Day 13 of the #100DaysOfPython challenge.
このポストはrich PythonのCLI出力にいくつかの色と書式を追加する方法を示すライブラリ.
必要条件
python-fire
それは今日使用されます.ポストを理解する必要がない間、同じコードを使用することを望んでいるならば、それを読むことはお勧めです.
始める
シリーズのこの段階で
cli.py
プロジェクトフォルダの場合は次のようになります.#!/usr/bin/env python
import fire
from PyInquirer import prompt
import pretty_errors
class IngestionStage(object):
def run(self):
return 'Ingesting! Nom nom nom...'
class DigestionStage(object):
def __init__(self):
self.satiated = False
def run(self, volume: int) -> str:
questions = [
{
'type': 'input',
'name': 'volume',
'message': 'How many burps?',
}
]
if volume == 0:
volume = int(prompt(questions)['volume'])
self.satiated = True
return ' '.join(['Burp!'] * volume)
def breakfast(self):
questions = [
{
'type': 'list',
'name': 'breakfast',
'message': 'What did you want for breakfast?',
'choices': ['eggs', 'bacon', 'toast']
}
]
switcher = {
'eggs': 1,
'bacon': 2,
'toast': 3,
}
volume = switcher.get(prompt(questions)['breakfast'], 0)
self.satiated = True
return ' '.join(['Burp!'] * volume)
def status(self):
return 'Satiated.' if self.satiated else 'Not satiated.'
class Pipeline(object):
def __init__(self):
self.ingestion = IngestionStage()
self.digestion = DigestionStage()
def run(self, volume: int = 1):
print(self.ingestion.run())
print(self.digestion.run(volume=volume))
print(self.digestion.status())
return 'Pipeline complete'
if __name__ == '__main__':
fire.Fire(Pipeline)
今日のポストでは、我々はそれを使用する方法を簡単にデモを表示することを望んでいるrich
出力に色を追加します.我々は、追加することができます
rich
以下のコマンドを実行して、現在のPipenv環境へのライブラリ# Add rich to dependencies
$ pipenv install rich
我々は今、我々の入力を更新する準備が整いました.出力への色の追加
私たちは、どのようにリッチは、消化権のクラスのメソッドのステータスに色を追加する簡単な例で動作するデモを行います.
現在のところ、このメソッドは以下のようになります:
def status(self):
return 'Satiated.' if self.satiated else 'Not satiated.'
現在、端末に以下のコマンドを実行した場合、色のない出力が得られます.$ python cli.py run --volume 2
Ingesting! Nom nom nom...
Burp! Burp!
Satiated.
Pipeline complete
$ python cli.py digestion status
Not satiated.
私たちがしたいことは、出力にいくつかの色を追加することですが、関数を更新するにはprint
関数からrich
図書館と我々が最後に返すものを更新します.以下のようにします.
# Top of the file
from rich import print
# ... code omitted for brevity
# Back at the `status` definition.
def status(self):
print('[bold green]Satiated.[/bold green]') if self.satiated else print(
'[bold red]Not satiated.[/bold red]')
return 'Status complete'
上記のコマンドを再実行すると出力はわずかに調整されますがself.satiated
本当のとき、太字の緑で印刷された出力self.satiated
出力は偽で赤で印刷されます.$ python cli.py run
Ingesting! Nom nom nom...
Burp!
Satiated.
Status complete
Pipeline complete
$ python cli.py digestion status
Not satiated.
Status complete
概要
今日のポストは、使用する方法を示しました
rich
パッケージを出力に色を追加します.資源と更なる読書
pawel_czerwinski
もともと私の投稿blog . 遅滞なく新しいポストを見るために、そこのポストを読んで、私の会報を購読してください.
Reference
この問題について(リッチPythonライブラリと美しいクリス), 我々は、より多くの情報をここで見つけました https://dev.to/okeeffed/beautiful-clis-with-the-rich-python-library-2575テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol