Metadata-Version: 2.4
Name: mgf-vm
Version: 0.2.1
Summary: KVM/QEMU virtual-machine domain library for the Magogi Foundation
Project-URL: Homepage, https://codeberg.org/magogi-admin/mgf-vm
Project-URL: Source, https://codeberg.org/magogi-admin/mgf-vm
Project-URL: Issues, https://codeberg.org/magogi-admin/mgf-vm/issues
Author: Magogi Foundation
License: MIT
Keywords: kvm,libvirt,qemu,virtualization,vm
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Emulators
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.11
Requires-Dist: croniter<3,>=2.0
Requires-Dist: cryptography<46,>=42.0
Requires-Dist: defusedxml<0.8,>=0.7
Requires-Dist: dpkt<2,>=1.9
Requires-Dist: httpx<1,>=0.27
Requires-Dist: mgf-common<0.42,>=0.41
Requires-Dist: paramiko<4,>=3.4
Requires-Dist: psutil<7,>=5.9
Requires-Dist: pyyaml<8,>=6.0
Requires-Dist: secretstorage<4,>=3.3
Provides-Extra: dev
Requires-Dist: hypothesis<7,>=6.100; extra == 'dev'
Requires-Dist: import-linter<3,>=2.0; extra == 'dev'
Requires-Dist: mgf-test-supervisor<0.2,>=0.1.5; extra == 'dev'
Requires-Dist: mypy<2,>=1.10; extra == 'dev'
Requires-Dist: pytest-cov<7,>=5.0; extra == 'dev'
Requires-Dist: pytest-timeout<3,>=2.3; extra == 'dev'
Requires-Dist: pytest<9,>=8.0; extra == 'dev'
Requires-Dist: ruff<1,>=0.4; extra == 'dev'
Requires-Dist: types-paramiko<4,>=3.4; extra == 'dev'
Requires-Dist: types-psutil<7,>=5.9; extra == 'dev'
Requires-Dist: types-pyyaml<7,>=6.0; extra == 'dev'
Provides-Extra: observability
Requires-Dist: opentelemetry-api<2,>=1.27; extra == 'observability'
Requires-Dist: opentelemetry-exporter-otlp-proto-http<2,>=1.27; extra == 'observability'
Requires-Dist: opentelemetry-instrumentation-httpx<1,>=0.48b0; extra == 'observability'
Requires-Dist: opentelemetry-sdk<2,>=1.27; extra == 'observability'
Requires-Dist: sentry-sdk<3,>=2.0; extra == 'observability'
Description-Content-Type: text/markdown

# mgf-vm

KVM/QEMU virtual-machine domain library for the Magogi Foundation.

`mgf-vm` is the reusable VM-management core — VM lifecycle, creation,
configuration, monitoring, networking, storage, host-environment setup,
security isolation, and forensics — carved out so any consumer (a CLI, a
GUI, a service) can build on it without re-implementing the domain.

- **Import:** `import mgf.vm` — `mgf` is a PEP 420 namespace package.
- **Install:** `pip install mgf-vm` (from the foundation's private index).
- **Provider seam:** no module imports `libvirt` directly — every
  hypervisor call goes through the `VMProvider` ABC, with a
  `MockProvider` for tests.

> **Conformance: L2** per [`mgf-common/docs/standards/`](https://codeberg.org/magogi-admin/mgf-common/src/branch/main/docs/standards/). Tracker: [`docs/inprogress/MGF_STANDARDS_CONFORMANCE.md`](docs/inprogress/MGF_STANDARDS_CONFORMANCE.md). Four declined groups (DEP / GUI_CONSUMERS / PRESENTATION_LAYER / WORKFLOWS) all per SP-02 layering — mgf-vm is a domain library; presentation + deployment belong in consumers.

## Place in the federation

`mgf-vm` is a **federation library** (sibling): it depends only on
`mgf-common` and never on another `mgf-*` sibling or on a consumer
application. The reference consumer is the **VManager** CLI/GUI app.

See `docs/CLAUDE.md` for the project reference, [`SCOPE.md`](SCOPE.md)
for what does and does not belong here, and [`USERS.md`](USERS.md) for
the consumers.

## libvirt-python

`libvirt-python` is **not** a pip dependency — it ships as the system
package `python3-libvirt`, ABI-matched to `libvirt-daemon-system`.
Create dev environments with `uv venv --system-site-packages`. The unit
suite runs entirely against `MockProvider` and needs no real libvirt.

## Development

```sh
uv venv --system-site-packages
uv pip install -e ".[dev]"
ruff check src tests
mypy
lint-imports
pytest
```
