Объект не имеет атрибута «__fields_set__». Вы имели в виду: '__fields__'?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Объект не имеет атрибута «__fields_set__». Вы имели в виду: '__fields__'?

Сообщение Anonymous »

Я использую pydantic-settings==2.4.0
и пытаюсь настроить свой класс настроек с помощью файла yaml
Мой код:

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

import os
import yaml

from pydantic.v1 import AnyHttpUrl, BaseSettings, EmailStr, validator, BaseModel, Field
from typing import List, Optional, Union, Any
from pathlib import Path
...

class ServiceSettingsYaml(BaseSettings):
backend_cors_origins: List[AnyHttpUrl] = []
kafka_host: str = None
kafka_port: str = None
kafka_topics: str = None
kafka_instance: str = None
file_encoding: str = "utf-8"

db_user: str = None
db_password: str = None
db_host: str = None
db_port: str = None
db_name: str = None
sqlalchemy_database_url: str = None

def __init__(self, config_file_path: str = "configs/dev-config.yaml"):
config = load_yaml_config(config_file_path)

print("AAA_ ", config.kafka_consumer) # prints {'host': 'kafka', 'port': 9092, 'kafka_topics': 'my_topic'}
self.kafka_host: str = config.kafka_consumer["host"]
У меня ошибка в последнем коде моего объявления:

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

File "/usr/src/app/app/main.py", line 12, in 
51_fetcher_new-consumer-1   |     from app.core.config import settings
51_fetcher_new-consumer-1   |   File "/usr/src/app/app/core/config.py", line 144, in 
51_fetcher_new-consumer-1   |     settings = ServiceSettingsYaml()
51_fetcher_new-consumer-1   |   File "/usr/src/app/app/core/config.py", line 131, in __init__
51_fetcher_new-consumer-1   |     self.kafka_host: str = config.kafka_consumer["host"]
51_fetcher_new-consumer-1   |   File "/usr/local/lib/python3.10/site-packages/pydantic/v1/main.py", line 405, in __setattr__
51_fetcher_new-consumer-1   |     self.__fields_set__.add(name)
51_fetcher_new-consumer-1   | AttributeError: 'ServiceSettingsYaml' object has no attribute '__fields_set__'. Did you mean: '__fields__'?
Как правильно настроить мой класс с помощью файла yaml?

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

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

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

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

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

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

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