chore: scaffold yunke-server
Create pyproject.toml (FastAPI + SQLAlchemy + Playwright + APScheduler + Redis + cryptography stack), .env.example, app/__init__.py and a pydantic-settings Settings singleton (get_settings), and a root .gitignore covering Python, Node, env, IDE and the local media dir. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
from functools import lru_cache
|
||||
from pathlib import Path
|
||||
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
"""Application settings sourced from environment / .env file."""
|
||||
|
||||
model_config = SettingsConfigDict(
|
||||
env_file=".env",
|
||||
env_file_encoding="utf-8",
|
||||
extra="ignore",
|
||||
)
|
||||
|
||||
yunke_base_url: str = "https://crm2.yunkecn.com"
|
||||
yunke_username: str = ""
|
||||
yunke_password: str = ""
|
||||
db_url: str = "mysql+asyncmy://user:pass@localhost:3306/yunke"
|
||||
redis_url: str = "redis://localhost:6379/0"
|
||||
media_dir: Path = Path("./media")
|
||||
# Fernet key for encrypting stored credentials. Required for real runs;
|
||||
# empty default lets tests construct Settings without a key.
|
||||
encryption_key: str = ""
|
||||
|
||||
|
||||
@lru_cache
|
||||
def get_settings() -> Settings:
|
||||
"""Return the process-wide Settings singleton."""
|
||||
return Settings()
|
||||
Reference in New Issue
Block a user