美文网首页
Typer 构建命令行应用

Typer 构建命令行应用

作者: 数据科学工厂 | 来源:发表于2022-09-19 21:01 被阅读0次

Typer 构建命令行应用

Typer

1. 摘要

Typer 是一个构建命令行程序的python包,它具有一下几个优点:

  1. 设计简单,学习成本低,花费更少的时间debug

  2. 用户使用便捷,自动构建帮助文档并适配所有shell

  3. 代码量低,减少大量重复

  4. 起步简单,只需两行代码即可构建一个app

2. 安装

pip install "typer[all]"

3. 实例

  • 创建一个test_app命令,打印Hello + 参数
import typer

app = typer.Typer()


@app.command()
def test_app(name: str):
    print(f"Hello {name}")


if __name__ == "__main__":
    app()

  • 打印帮助文档
  • 测试

4. 用法简介

4.1. 命令

typer中,只要给每一个函数加上@app.command()装饰器,那么这个函数就成为了一个命令。

import typer

app = typer.Typer()


@app.command()
def test_1(name: str):
    print(f"Hello {name}")

@app.command()
def test_2(age: int):
    print(f"{age} years old")    

if __name__ == "__main__":
    app()

  • help
  • 测试

需要多少个命令,写多少个函数即可。

4.2. 参数

typer中,命令函数中的参数,就自动变成了命令的参数,因此用户很容易设置参数。

  • 将上面两个命令合并为一个
import typer

app = typer.Typer()


@app.command()
def test_cli(name: str, age: int):
    print(f"Hello {name} \n age: {age}")


if __name__ == "__main__":
    app()
  • help文档
  • 测试

需要多少个命令参数,设置多少个函数参数即可

4.3. 子命令

例如git命令还存在git addgit commit 等,因此typer也支持给命令设置子命令。

  • 两个子命令
import typer

app = typer.Typer()

sub1 = typer.Typer()

app.add_typer(sub1, name="sub1")

sub2 = typer.Typer()
app.add_typer(sub2, name="sub2")


@sub1.command("sub1")
def sub1_item(space1: str):
    print(f"Creating sub1: {sub1}")


@sub2.command("sub2")
def sub2_item(space1: str):
    print(f"Creating sub1: {sub2}")


if __name__ == "__main__":
    app()
  • help文档
  • 子命令 sub1

以上只是对typer的基础介绍,typer还支持:

  1. 参数类型检查,默认设置,区间设置,交互式命令
3
  1. 彩色打印等
  1. 进度条
  1. 错误提醒

5. 小结

Typer的优点和功能远不于此,本文主要对typer, 一个python中构建命令行程序的包,做了一个简要介绍,主要起抛砖引玉的作用,如果有这方面需求的小伙伴可以自行研究。

往期推荐

本文由mdnice多平台发布

相关文章

  • Typer 构建命令行应用

    Typer 构建命令行应用 1. 摘要 Typer[https://typer.tiangolo.com] 是一...

  • Dockerfile构建应用2021-02-20

    Dockerfile内容 构建应用命令行 查看本地镜像docker images 删除镜像docker rmi ...

  • jenkins 启动应用失败

    jenkins 构建应用success 后,控制台看到应用信息也打印出来了。到linux 命令行 jps -l 确...

  • 如何简单优雅的写命令行程序

    使用python自带的sys.argv来获取命令行参数可谓是又臭又长,那么今天介绍一个库:typer,教你如何简单...

  • Laravel-artisan命令

    Artisan 是 Laravel 自带的命令行接口,它提供了许多实用的命令来帮助你构建 Laravel 应用。

  • Laravel-artisan命令介绍与使用

    Artisan 是 Laravel 自带的命令行接口,他提供了许多使用的命令来帮助你构建 Laravel应用。 常...

  • 开发命令行工具的 12 个最佳实践

    简评:设计良好的命令行应用是极富生产力的工具,本文介绍了开发命令行工具的 12 个最佳实践 CLI 是构建产品的绝...

  • React 学习笔记(一)

    一、准备工作:环境配置;快速构建应用 首先安装npm及nodejs; npm模块的安装、删除和更新 ---命令行 ...

  • ionic3 项目搭建看这里

    前言 Ionic应用程序主要通过Ionic命令行实用程序(“CLI”)创建和开发,并使用Cordova构建/部署为...

  • Vue 安装

    命令行模式安装 Vue.js 提供一个官方命令行工具,可用于快速搭建大型单页应用。该工具提供开箱即用的构建工具配置...

网友评论

      本文标题:Typer 构建命令行应用

      本文链接:https://www.haomeiwen.com/subject/yfbvortx.html