Переопределить значение в модели pydantic с помощью переменной средыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Переопределить значение в модели pydantic с помощью переменной среды

Сообщение Anonymous »

Я создаю некоторую логику конфигурации для приложения Python 3 и пытаюсь использовать pydantic и pydantic-settings для управления проверкой и т. д. Я могу загрузить необработанные настройки из файла YAML и создайте из них мой объект настроек. Я также могу прочитать значение из переменной среды. Но я не могу понять, как сделать так, чтобы значение переменной среды имело приоритет над необработанными настройками:

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

import os
import yaml as pyyaml
from pydantic_settings import BaseSettings, SettingsConfigDict

class FooSettings(BaseSettings):
foo: int
bar: str
model_config = SettingsConfigDict(env_prefix='FOOCFG__')

raw_yaml = """
foo: 13
bar: baz
"""

os.environ.setdefault("FOOCFG__FOO", "42")

raw_settings = pyyaml.safe_load(raw_yaml)
settings = FooSettings(**raw_settings)

assert settings.foo == 42
Если я закомментирую foo: 13 во входном yaml, утверждение пройдет. Как сделать, чтобы значение env имело приоритет?


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

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

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

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

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

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

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