Skip to main content

Runtime settings UI — modules plug their own settings panels into a shared admin view

Project description

simple_module_settings

Runtime settings UI for simple_module apps. Other modules plug their own settings panels into a shared admin view — one page per module tab — without the host having to know about them.

Install

pip install simple_module_settings

What it provides

  • /settings admin page (and /settings/modules) aggregating every installed module's settings into one editable view.
  • register_module_settings(app, package, SettingsClass, services_factory) helper — a module calls this from its own register_settings(app) hook to record its BaseSettings class; the UI renders its fields automatically (no panel/page wiring needed).
  • DB-backed runtime settings store (hydrated into each module's BaseSettings at startup, before module on_startup hooks run) for values admins change at runtime.

Usage

Register a module's settings from its register_settings(app) hook:

from fastapi import FastAPI


class OrdersModule(ModuleBase):
    meta = ModuleMeta(name="orders")

    def register_settings(self, app: FastAPI) -> None:
        from settings.registration import register_module_settings
        from orders.settings import OrdersSettings
        from orders.services import OrdersServices

        register_module_settings(
            app, "orders", OrdersSettings, lambda s: OrdersServices(settings=s)
        )

That surfaces the module's settings fields under /settings/modules, hydrated from the DB store at startup. The settings class is a pydantic_settings.BaseSettings with the module's SM_<PREFIX>_* env-var defaults.

Depends on

  • simple_module_core, simple_module_db, simple_module_hosting

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simple_module_settings-0.0.19.tar.gz (36.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simple_module_settings-0.0.19-py3-none-any.whl (41.4 kB view details)

Uploaded Python 3

File details

Details for the file simple_module_settings-0.0.19.tar.gz.

File metadata

  • Download URL: simple_module_settings-0.0.19.tar.gz
  • Upload date:
  • Size: 36.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for simple_module_settings-0.0.19.tar.gz
Algorithm Hash digest
SHA256 cac3e5f70ba46081a44ca75e1ba65e9301bd4784458fe4ef44ed8ef95274717b
MD5 aa114f57315af8676e8d717f380b435b
BLAKE2b-256 96bec1e083f52c6f97b4cf4a762bdfb366703f313e935f1539b7de4196a3cd12

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_module_settings-0.0.19.tar.gz:

Publisher: release.yml on antosubash/simple_module_python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_module_settings-0.0.19-py3-none-any.whl.

File metadata

File hashes

Hashes for simple_module_settings-0.0.19-py3-none-any.whl
Algorithm Hash digest
SHA256 ac4b4c835a59cb1cf9a1c6c497ed0935559419eb2f53e86b34084664b024c131
MD5 4a93b1b7550b6c806e4d1fb671de1265
BLAKE2b-256 4a6b7e5c28d78d92090098f6b70cc0d7cff3809f084bc86c805f970890d33c05

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_module_settings-0.0.19-py3-none-any.whl:

Publisher: release.yml on antosubash/simple_module_python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page