Shared infrastructure (typed exceptions, central config, structured logging + tracing) for MGF projects
Project description
mgf-common
The cornerstone library for the Magogi ecosystem. Typed
exceptions + layered configuration + structured logging + OTel +
crash reporting + vault + process management — the pure-Python
infrastructure every Magogi project needs, in one PEP 561 typed
package. Framework adapters (FastAPI, Django, SQLAlchemy, Alembic,
HTTP) ship as separate mgf-* sibling packages that depend on
this cornerstone — see FEDERATION.md and
docs/design/federation.md.
Status: pre-1.0 (current
0.38.0). API stable enough that four real consumers (VManager Qt desktop, inthewords Django, PlasmaMapper FastAPI, iosRecovery CLI) ship with it. Public names areexperimentalper AP-11; promoted tostableafter one full MINOR cycle without a 🔴 Blocker filed against them.
If you depend on mgf-common, read
FEDERATION.mdfirst. It is the canonical contract — required docs layout, standards-conformance levels, federation-first principle, catch-up cadence, and feedback discipline. One page; you'll be aligned with the federation by the end of it.
Pick your starting point
The docs are organised by audience. Pick one:
| If you are… | Read |
|---|---|
| Evaluating mgf-common (right library for me?) | docs/audience/shoppers.md |
| Building with it (already adopted) | docs/audience/users.md |
| Contributing or designing alongside | docs/audience/developers.md |
| A test/QA engineer | docs/audience/qa.md |
| Cutting releases / running CI | docs/audience/release.md |
| Doing a security review | docs/audience/security.md |
| An AI agent (Claude or other) | Run mgf-common agents — the canonical briefing (also in STARTHERE.md §"For the AI agent") — then docs/audience/ai-agents.md for the feedback-relay protocol |
If you don't fit any of these neatly: docs/audience/README.md
is the meta-routing index.
If you just want to try it: see
docs/tutorial.md (zero → working app in
~30 minutes).
At a glance
import mgf.common as mc
with mc.bootstrap(app_name="myapp", app_version="1.0") as ctx:
# identity + logging + OTel + excepthooks all wired transactionally
do_work()
# Clean shutdown on context-exit; LIFO rollback on any startup failure.
from mgf.common.process import Service, AllOf, PortReady, LogLineReady
with Service(
["postgres", "-D", str(db_dir), "-p", str(port)],
ready=AllOf([
PortReady("127.0.0.1", port),
LogLineReady(r"database system is ready"),
]),
timeout_s=20.0,
) as svc:
run_my_integration_tests(port=port)
# Service stopped + process group cascaded on context-exit.
More: docs/recipes/ (cookbook patterns)
and PUBLIC_API.md (full surface).
Top-level files
| File | Purpose |
|---|---|
STARTHERE.md |
Two-flow navigation hub (new project vs catching up an existing one) |
FEEDBACK.md |
Living queue of consumer-filed feedback (the relay process driver) |
CHANGELOG.md |
Per-release short-form (Keep-a-Changelog format) |
PUBLIC_API.md |
Full public surface, table-form |
PUBLIC_API.json |
Auto-generated machine-readable surface |
SECURITY.md |
Vulnerability reporting policy (per SC-12) |
CONTRIBUTING.md |
Dev setup + the four green gates + PR process |
Consumers using it today
- VManager — Qt desktop, libvirt VM toolkit (reference consumer; co-designed)
- inthewords — Django web app (canonical web consumer)
- PlasmaMapper — FastAPI multi-tenant platform (heaviest sibling adopter)
- iosRecovery — CLI recovery tool (greenfield canary consumer)
See USERS.md §2 for the full federation roster, and
FEDERATION.md for the cornerstone / sibling /
consumer model.
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mgf_common-0.39.0.tar.gz.
File metadata
- Download URL: mgf_common-0.39.0.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01e3511cee772b8afd5cb43ec562f44fb5038e4d2b22d246d35489a398cf8d32
|
|
| MD5 |
336d84d8acded6702381086f9d731a39
|
|
| BLAKE2b-256 |
1d8974be769e69d6bc2c5c199bc12fe064a98e787dfc12da70c82da9adde8c57
|
File details
Details for the file mgf_common-0.39.0-py3-none-any.whl.
File metadata
- Download URL: mgf_common-0.39.0-py3-none-any.whl
- Upload date:
- Size: 595.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b16d06a08738f2884b366d0a3030175195927bdee5e80f142d0e0a02f019f2af
|
|
| MD5 |
4efa6e90704edf0dc70828a9198c1682
|
|
| BLAKE2b-256 |
c6b8e1f5b32f4d3e48b9f1a3ae771fde1dd8b9985ca508e8aea8f59679b8b257
|