Pydantic_settings неправильно вызывает валидаторы «до»Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pydantic_settings неправильно вызывает валидаторы «до»

Сообщение Anonymous »

Я пишу класс pydantic_settings для чтения данных из файла .env/переменных среды. Соответствующие части выглядят следующим образом:

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

from pydantic_settings import BaseSettings
from pydantic import Field, field_validator
from typing import Tuple

class JobSettings(BaseSettings):
wp_generate_funnel_box: bool = Field(True)
wp_funnel_box_dims_mm: Tuple[int, int, int] = Field((380, 90, 380))

@field_validator('wp_funnel_box_dims_mm', mode='before')
@classmethod
def parse_int_tuple(cls, v) -> tuple[int, int, int]:
output = tuple(int(x.strip()) for x in v.split(','))
assert len(output) == 3
return output

model_config = {
"env_file": ".env",
"env_file_encoding": "utf-8",
"extra": "ignore",
}

Мне нужно создать кортеж из трех целых чисел из строки в переменной среды:

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

wp_generate_funnel_box="True"
wp_funnel_box_dims_mm="380, 90, 380"
Похоже, что у Pydantic нет собственного синтаксического анализатора для этого типа данных, поэтому я внедрил этот валидатор полей для правильного анализа и проверки данных. Однако Pydantic, похоже, не запускает код метода; Операторы печати не производят никакого вывода, и простой возврат кортежа(1, 2, 3) тоже ничего не делает. Кажется, я неправильно понимаю, как Pydantic обрабатывает поля, валидаторы и порядок. Конкретная ошибка:

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

SettingsError: error parsing value for field "wp_funnel_box_dims_mm" from source "DotEnvSettingsSource"
Я пробовал различные конфигурации декораторов, режимов и логических структур. До сих пор ничто не изменило тип возникающей ошибки. Pydantic не запускает валидатор перед своей внутренней логикой.

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Валидаторы пользовательского типа Pydantic v2 с информацией
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Различия между app.config и settings.settings
    Anonymous » » в форуме C#
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • Pydantic-settings custom_resources не работает, как ожидалось
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Используйте Pydantic Settings CLI, чтобы проанализировать частичный json из файла
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Валидаторы Java Spring работают на локальном этапе, но не на этапе развертывания, 500 вместо 400
    Гость » » в форуме JAVA
    0 Ответы
    63 Просмотры
    Последнее сообщение Гость

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