CLI 选项提示
除了只显示错误之外,还可以使用 prompt=True
询问缺少的值
import typer
from typing_extensions import Annotated
def main(name: str, lastname: Annotated[str, typer.Option(prompt=True)]):
print(f"Hello {name} {lastname}")
if __name__ == "__main__":
typer.run(main)
提示
如果可能,最好使用 Annotated
版本。
import typer
def main(name: str, lastname: str = typer.Option(..., prompt=True)):
print(f"Hello {name} {lastname}")
if __name__ == "__main__":
typer.run(main)
然后,你的程序将在终端中向用户询问它
自定义提示¶
你还可以设置自定义提示,传递要使用的字符串,而不仅仅是 True
import typer
from typing_extensions import Annotated
def main(
name: str,
lastname: Annotated[str, typer.Option(prompt="Please tell me your last name")],
):
print(f"Hello {name} {lastname}")
if __name__ == "__main__":
typer.run(main)
提示
如果可能,最好使用 Annotated
版本。
import typer
def main(
name: str, lastname: str = typer.Option(..., prompt="Please tell me your last name")
):
print(f"Hello {name} {lastname}")
if __name__ == "__main__":
typer.run(main)
然后,你的程序将使用你的自定义提示进行询问
确认提示¶
在某些情况下,您可能需要提示输入一些内容,然后要求用户通过两次输入来确认。
您可以通过传递参数 confirmation_prompt=True
来做到这一点。
假设这是一个用于删除项目的 CLI 应用程序
import typer
from typing_extensions import Annotated
def main(
project_name: Annotated[str, typer.Option(prompt=True, confirmation_prompt=True)],
):
print(f"Deleting project {project_name}")
if __name__ == "__main__":
typer.run(main)
提示
如果可能,最好使用 Annotated
版本。
import typer
def main(project_name: str = typer.Option(..., prompt=True, confirmation_prompt=True)):
print(f"Deleting project {project_name}")
if __name__ == "__main__":
typer.run(main)
它将提示用户输入一个值,然后进行确认