Подсказки типов mypy и python: как указать тип A из A|B во время выполнения? [дубликат]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Подсказки типов mypy и python: как указать тип A из A|B во время выполнения? [дубликат]

Сообщение Anonymous »

Мне нужна помощь с проверкой типов mypy для Python. У меня есть предоставленная функция, тип вывода которой зависит от аргумента времени выполнения. Я устанавливаю этот аргумент, чтобы знать тип вывода. Как мне убедить mypy в том, что при выборе типа A|B это будет тип A?
В частности, я использую API-интерфейс ollama, который имеет следующий клиентский метод. (Я цитирую встроенную справочную документацию.)

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

def generate(
model: str = '',
prompt: str = '',
stream: bool = False
) -> Union[Mapping[str, Any], collections.abc.Iterator[Mapping[str, Any]]]
"""
Create a response using the requested model.

Raises `RequestError` if a model is not provided.
Raises `ResponseError` if the request could not be fulfilled.

Returns `GenerateResponse` if `stream` is `False`,
otherwise returns a `GenerateResponse` generator.
"""
Я устанавливаю для аргумента потока значение False (как литерал в коде, а не как результат логики) и хочу сообщить об этом mypy что я уверен, что получаю GenerateResponse, а не генератор GenerateResponse.
Я могу использовать # type: ignore, чтобы отключить всю проверку типов, но мне хотелось бы знать, в своем коде я могу сделать кое-что менее драматичное. (Я не могу изменить код модуля ollama.)
В настоящий момент я использую type: ignore, чтобы отключить всю проверку типов. Это работает, но похоже на кувалду, раскалывающую грецкий орех.

Подробнее здесь: https://stackoverflow.com/questions/787 ... t-run-time
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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