37 lines
991 B
Python
37 lines
991 B
Python
import os
|
|
|
|
from loguru import logger
|
|
from pydantic_settings import BaseSettings
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
BASE_DIR: str = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
|
|
VERSION: str | None = None
|
|
|
|
redis_dsn: str = 'redis://:@localhost:6379/0'
|
|
kv_redis_dsn: str = 'redis://:password@localhost:6379/1'
|
|
mysql_dsn: str = 'mysql+pymysql://username:password@localhost:3306/data?charset=utf8mb4'
|
|
|
|
@property
|
|
def version(self):
|
|
if self.VERSION:
|
|
return self.VERSION
|
|
if not os.path.exists(os.path.join(self.BASE_DIR, ".version")):
|
|
self.VERSION = "0.0.0"
|
|
return self.VERSION
|
|
with open(os.path.join(self.BASE_DIR, ".version"), "r") as f:
|
|
self.VERSION = f.read()
|
|
return self.VERSION
|
|
|
|
PROJECT_NAME: str = 'project_name'
|
|
|
|
class Config:
|
|
case_sensitive = True
|
|
|
|
|
|
settings = Settings()
|
|
|
|
if __name__ == '__main__':
|
|
logger.debug(settings.BASE_DIR)
|