Skip to content

Wire Settings and Extensions

This tutorial demonstrates controlled settings resolution and extension application.

Step 1: Configure Monkay with settings hooks

package/__init__.py
from monkay import Monkay

monkay = Monkay(
    globals(),
    with_instance=True,
    with_extensions=True,
    settings_path="myproject.settings:Settings",
    settings_preloads_name="preloads",
    settings_extensions_name="extensions",
)

Step 2: Evaluate settings at startup

monkay.evaluate_settings(on_conflict="error")

on_conflict accepts only:

  • "error"
  • "keep"
  • "replace"

Step 3: Attach runtime instance

app = object()
monkay.set_instance(app)

Step 4: Test overrides safely

with monkay.with_settings(False):
    ...

with monkay.with_extensions({}):
    ...

with monkay.with_instance(None):
    ...