لوگوی فریم‌ورک Fusion ساخته Cipher UnitFusion

Config

بارگذاری fusion.<env>.json و core/settings.py با fusion_framework.config

نمای کلی

fusion_framework.config نمای Python روی تنظیمات مشترک fusion-core است.

مقادیر زمان اجرا در fusion.<env>.json هستند. overlay اختیاری Python در core/settings.py. محیط فعال از FUSION_ENV می‌آید (پیش‌فرض: dev).

برای قواعد کشف، envelope در برابر JSON تخت، placeholderهای env، و schema کامل حاشیه‌نویسی‌شدهٔ fusion.dev.json / stage / prod، راهنمای مشترک را ببینید:

→ Settings و پیکربندی

from fusion_framework.config import load_settings_module, get_settings

load_settings_module("settings")
s = get_settings()
print(s.host, s.port, s.debug)

آنچه ماژول export می‌کند

نمادنقش
settingsآبجکت settings سراسری (singleton)
Settingsکلاس (معمولاً همان singleton را می‌گیرید)
get_settings()اطمینان از بارگذاری JSON، برگرداندن singleton
load_settings_module(...)بارگذاری JSON + ادغام ATTRهای UPPERCASE از یک ماژول Python
configure(**kwargs)تنظیم مقادیر در کد بدون ویرایش JSON

همچنین به‌صورت زیر در دسترس است:

from fusion_framework import settings

راه‌اندازی معمول در main.py

from fusion_framework.app import FusionApp
from fusion_framework.config import get_settings, load_settings_module

MIDDLEWARE: list = []

def main() -> None:
    load_settings_module("settings")   # 1) JSON + core/settings.py
    app = FusionApp(get_settings())    # 2) host / port / debug
    for mw in MIDDLEWARE:
        app.use(mw)
    app.listen()                       # 3) start server

if __name__ == "__main__":
    main()

load_settings_module

load_settings_module("settings")
# or
load_settings_module("core.settings")

کارهایی که انجام می‌دهد:

  1. fusion.<env>.json را کشف و بارگذاری می‌کند (cwd، والدین، دایرکتوری __main__)
  2. ماژول Python را import می‌کند (settings → همچنین core.settings را امتحان می‌کند)
  3. فقط نام‌های UPPERCASE آن ماژول را روی آبجکت settings ادغام می‌کند
# core/settings.py
from fusion_framework import settings

SECRET_KEY = settings.get("secret_key")
DEBUG = settings.get("debug", default=False)

get_settings و آبجکت settings

s = get_settings()
s.host   # str, default "127.0.0.1"
s.port   # int, default 3000 (scaffold uses 8080 in fusion.dev.json)
s.debug  # bool
s.env    # "dev" | "prod" | "stage" | …
APIهدف
settings.get("key", default=...)خواندن کلید config (مسیر نقطه‌ای پشتیبانی می‌شود)
settings["key"]همان، اگر نباشد KeyError
settings.host / .port / .debug / .envفیلدهای رایج
settings.merge({...}) / configure(**kwargs)overlay
settings.load_json(...) / ensure_loaded()بارگذاری صریح / تنبل

تعویض محیط

FUSION_ENV=prod python main.py
fusion command run:prod

مدل ذهنی

fusion.dev.json  →  config block  →  settings singleton
core/settings.py →  UPPERCASE overlay (optional)
get_settings()   →  FusionApp.listen(host, port)

JSON منبع حقیقت است. برای کلیدها (host، port، fingerprint، swagger، …) و محتوای فایل‌های تولیدشدهٔ CLI، Settings را ببینید.

در این صفحه