Skip to main content

simple_module_core

Module-system primitives for the simple_module framework — a modular-monolith for Python/FastAPI where each feature is a plugin package discovered at boot.

This package defines ModuleBase, the ModuleMeta descriptor, the discover_modules() entry-point loader, topological dependency sorting, event bus primitives, and the diagnostic codes (SM001SM021) used by make doctor.

Install

pip install simple_module_core

You usually don't install this directly — it's pulled in by simple_module_hosting and every simple_module_* module.

What it provides

  • ModuleBase — the subclass every module extends to opt into lifecycle hooks.
  • ModuleMeta — required meta = ModuleMeta(name=..., depends_on=...) attribute on each module.
  • discover_modules() — loads all [project.entry-points.simple_module] modules, topologically sorts by depends_on.
  • Diagnostic registry — SM001 missing meta, SM003 orphan page, SM008 duplicate name, SM009 framework→plugin coupling violation, and the rest of the SM0xx set through SM021.
  • Tiny event-bus (pyee) for decoupled module-to-module communication.

Usage

# modules/orders/orders/module.py
from simple_module_core import ModuleBase, ModuleMeta


class OrdersModule(ModuleBase):
    meta = ModuleMeta(name="orders", depends_on=["users"])

    def register_routes(self, api_router, view_router):
        from .endpoints import api, views

        api_router.include_router(api.router)
        view_router.include_router(views.router)

And in pyproject.toml:

[project.entry-points.simple_module]
orders = "orders.module:OrdersModule"

The host's discover_modules() call picks this up automatically at boot.

Depends on

  • fastapi, pydantic, pydantic-settings, pyee, babel, packaging

License

MIT — see LICENSE.

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_core-0.0.30.tar.gz (58.6 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_core-0.0.30-py3-none-any.whl (49.3 kB view details)

Uploaded Python 3

File details

Details for the file simple_module_core-0.0.30.tar.gz.

File metadata

  • Download URL: simple_module_core-0.0.30.tar.gz
  • Upload date:
  • Size: 58.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for simple_module_core-0.0.30.tar.gz
Algorithm Hash digest
SHA256 a5224a1e8dd33367492e0b2e8962351d35e41f80ef143786ee01cfd9a4860f14
MD5 745fbfe53d41cc827161ff786356c27f
BLAKE2b-256 48c043220b81b65152d772e9373d6c47affb766302761f9e022d8e33c4eb8583

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_module_core-0.0.30.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_core-0.0.30-py3-none-any.whl.

File metadata

File hashes

Hashes for simple_module_core-0.0.30-py3-none-any.whl
Algorithm Hash digest
SHA256 2befa5142d1b3fbf730ee12425368779cbc560b8f8558f09bc6e9b5d7c6b9d46
MD5 cd74e9c8fb191996e1557f98638ce82c
BLAKE2b-256 7ef9de3eaa8958380a1ba83fad58e0f0e05d95c1050a9c50145e7d8c17136c92

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_module_core-0.0.30-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.

Release history Release notifications | RSS feed

0.0.33

2 files

0.0.32

2 files

0.0.31

2 files

This release

0.0.30 This release

2 files

0.0.29

2 files

0.0.28

2 files

0.0.27

2 files

0.0.26

2 files

0.0.25

2 files

0.0.24

2 files

0.0.23

2 files

0.0.22

2 files

0.0.21

2 files

0.0.20

2 files

0.0.19

2 files

0.0.18

2 files

0.0.17

2 files

0.0.16

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page