Инициализировать pydantic Literal из массива строкPython

Программы на Python
Ответить
Anonymous
 Инициализировать pydantic Literal из массива строк

Сообщение Anonymous »

Я хотел бы инициализировать пидантический литерал из массива строк

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

from typing import Literal
from pydantic import BaseModel

CLASS_NAME_VALUES = ["primary", "secondary", "success", "danger", "warning", "info", "dark"]
ICON_NAME_VALUES = ["electricity.svg", "water.svg",
"internet.svg", "naturalGas.svg", "noCategory.svg"]

class CategoryRequest(BaseModel):
class_name: Literal[CLASS_NAME_VALUES]
icon_name: Literal[ICON_NAME_VALUES]

Но я получаю следующую ошибку

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

  File "pydantic/main.py", line 252, in pydantic.main.ModelMetaclass.__new__
File "pydantic/fields.py", line 309, in pydantic.fields.ModelField.infer
File "pydantic/fields.py", line 271, in pydantic.fields.ModelField.__init__
File "pydantic/fields.py", line 351, in pydantic.fields.ModelField.prepare
File "pydantic/fields.py", line 529, in pydantic.fields.ModelField.populate_validators
File "pydantic/validators.py", line 566, in find_validators
File "pydantic/validators.py", line 410, in pydantic.validators.make_literal_validator
TypeError: unhashable type: 'list'
Есть предложения?

Подробнее здесь: https://stackoverflow.com/questions/656 ... of-strings
Ответить

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

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

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

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

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