Добавление пути по умолчанию в качестве опции в TyperPython

Программы на Python
Anonymous
Добавление пути по умолчанию в качестве опции в Typer

Сообщение Anonymous »

Я хочу, чтобы typer запрашивал имя файла и проверял, действительно ли он существует, но при этом имел файл по умолчанию для использования, если приглашение введено пустым. Вот так это работает:

Код: Выделить всё

from pathlib import Path
import typer

def exists(
file: Path = typer.Option(
default="./README.md",
prompt="Enter the file path",
exists=True,
)
):
print(f'The file "{file}" exists')

typer.run(exists)
Но когда я пытаюсь использовать Annotated, как рекомендуют документы по типированию, я получаю ошибку TypeError:

Код: Выделить всё

from pathlib import Path
from typing_extensions import Annotated
import typer

def exists(
file: Annotated[Path, typer.Option(
default="./README.md",
prompt="Enter the file path",
exists=True,
)]
):
print(f'The file "{file}" exists')

typer.run(exists)

Код: Выделить всё

╭───────────────────────── Traceback (most recent call last) ──────────────────────────╮
│ /.venv/lib/python3.12/site-packages/click/core.py:2852                               │
│ in __init__                                                                          │
╰──────────────────────────────────────────────────────────────────────────────────────╯
TypeError: Secondary flag is not valid for non-boolean flag.
Что вызывает эту ошибку? И есть ли какой-либо недостаток в отказе от использования Annotated в этом случае?


Подробнее здесь: https://stackoverflow.com/questions/798 ... n-in-typer

Вернуться в «Python»