Введите подсказку объекта, созданного путем ввода.Literal[]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Введите подсказку объекта, созданного путем ввода.Literal[]

Сообщение Anonymous »

Я пытаюсь создать функцию, которая проходит через Union и Literal и извлекает их возможные значения. Я пытаюсь сделать это, потому что хочу создать функцию, которая принимает функцию и описывает параметры этой переданной функции в формате json-схемы (см. https://platform.openai.com/docs/guides/function -calling).
Код, который у меня сейчас есть для этой функции, выглядит следующим образом:

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

from typing import get_origin, get_args, Literal, Union

def traverse_union(union_type):
origin = get_origin(union_type)

if origin in {Union, Literal}:
for argument in get_args(union_type):
yield from traverse_union(argument)
return

yield union_type

print(list(traverse_union(int | float | Literal["Hello, world!"])))
# [, , 'Hello, world!']
Однако я не совсем понимаю, как добавлять к нему аннотации типов.
В идеале я хочу, чтобы функция принимала какой-то тип, например Union_type: UnionType | LiteralType и возвращает тип типа -> Iterable[type | ул | интервал | плавать | # и более литеральных типов], но ничего из того, что я делаю, кажется правильным или даже работающим в этом отношении.
Я думаю, что мое самое большое препятствие заключается в том, что LiteralType на самом деле не существует, а type[Literal] имеет неверный синтаксис (Expected type arguments for generic class "Literal"). Думаю, дальше я смогу разобраться сам.
Может ли кто-нибудь мне помочь?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Введите подсказку для исчерпывающего словаря с ключами Enum/Literal.
    Гость » » в форуме Python
    0 Ответы
    33 Просмотры
    Последнее сообщение Гость
  • Введите подсказку для исчерпывающего словаря с ключами Enum/Literal.
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Введите подсказку для экземпляра, созданного экземпляром метакласса.
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Введите подсказку для файла или похожего на файл объекта?
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Введите подсказку для объекта пользовательского словаря как TypedDict.
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

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