跳转到主要内容

使用rich美化click的帮助输出

项目描述

rich-click logo

在click中使用rich进行丰富的命令行界面渲染。

PyPI Test Coverage badge Lint code badge


文档  ·  源代码  ·  变更日志


rich-click是围绕Click的一个包装,使用Rich渲染漂亮的帮助输出。

  • Click是一个"用于创建美观命令行界面的Python包"
  • Rich是一个"用于终端中丰富文本和美观格式化的Python库"

rich-click的目的是提供从Click中获得的吸引人的帮助输出,使用Rich进行格式化,而无需进行大量自定义。

功能

  • 🌈 丰富命令行格式化的click帮助和错误消息
  • 😌 与Click相同的API:使用简单 import rich_click as click
  • 💫 默认漂亮的样式
  • 💻 CLI工具,可以在他人的工具上运行(命令前缀为rich-click
  • 📦 将帮助文本导出为HTML或SVG
  • 🎁 将命令和选项分组到命名面板中
  • ❌ 格式良好的错误信息
  • 🔢 简单设置自定义排序顺序
  • 🎨 风格和行为可高度自定义

安装

pip install rich-click

查看文档了解所有支持的安装方法。

示例

简单示例

要在代码中使用rich-click,请将现有click CLI中的import click替换为import rich_click as click

import rich_click as click

@click.command()
@click.option("--count", default=1, help="Number of greetings.")
@click.option("--name", prompt="Your name", help="The person to greet.")
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    for _ in range(count):
        click.echo(f"Hello, {name}!")

if __name__ == '__main__':
    hello()

python examples/11_hello.py --help

来自examples/11_hello.py的截图

更复杂的示例

python examples/03_groups_sorting.py

来自examples/03_groups_sorting.py的截图

用法

这是使用rich-click的快速概述。查看文档获取更多信息。

开始使用rich-click有几种方法

rich_click作为click导入

使用与正常click导入相同的命名空间替换您的正常click导入为rich_click

import rich_click as click

就这样!✨ 然后像平时一样继续使用Click。

请参阅examples/01_simple.py的示例。

声明式

如果您愿意,可以在使用click时使用带有cls参数的RichGroupRichCommand。这意味着您可以并行继续使用未修改的click包。

import click
from rich_click import RichCommand

@click.command(cls=RichCommand)
def main():
    """My amazing tool does all the things."""

请参阅examples/02_declarative.py的示例。

rich-click CLI工具

rich-click附带一个CLI工具,允许您格式化任何使用Click的包的Click帮助输出。

使用时,在您的正常命令前加上rich-click。例如,要从名为awesometool的包中获取丰富的Click帮助文本,您可以运行

$ rich-click awesometool --help

Usage: awesometool [OPTIONS]
..more richified output below..

许可

本项目采用MIT许可协议。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

rich_click-1.8.3.tar.gz (38.2 kB 查看散列值)

上传时间 源代码

构建发行版

rich_click-1.8.3-py3-none-any.whl (35.0 kB 查看散列值)

上传时间 Python 3

支持者