| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import os
- import yaml
- from pathlib import Path
- from pydantic import BaseModel, Field
- from typing import List, Dict, Union,Optional,Any
- from utils.pydantic_auto_field import AutoLoadModel
- from config.settings import CONFIG_DIR
- from dotenv import load_dotenv
- load_dotenv()
- CONFIG_PATH = CONFIG_DIR / "config.yaml"
- class Config(BaseModel):
- storage: str = "local"
- s3_access_key: Optional[str] = os.environ.get("S3_ACCESS_KEY", 'bh9LbfsPHRJgQ44wXIlv')
- s3_secret_key: Optional[str] = os.environ.get("S3_SECRET_KEY", 'N744RZ60T1b4zlcWG2MROCzjEE2mPTdNQCc7Pk3M')
- s3_endpoint: Optional[str] = os.environ.get("S3_ENDPOINT", 'http://vs1.lan:9002')
- def save(self):
- config_path = get_config_path()
- with open(config_path, "w", encoding="utf-8") as file:
- yaml.dump(self.model_dump(), file)
- return self
-
- def get_config_path():
- return CONFIG_PATH
- def read_config(config_path: Path):
- if not config_path.exists():
- config = Config()
- config.save()
- return config
- with open(config_path, "r", encoding="utf-8") as file:
- config_dict = yaml.safe_load(file)
- return Config(**config_dict)
- CFG = read_config(get_config_path())
- def main():
- print(CFG)
- CFG.save()
- if __name__ == "__main__":
- main()
|