Добавление пути по умолчанию в качестве опции в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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