и пытаюсь настроить свой класс настроек с помощью файла 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__'?
Подробнее здесь: https://stackoverflow.com/questions/792 ... ean-fields