Skip to main content

Official UMF Python support

umf-core provides the umf import namespace for the current UMF language. The authored spec/metamodel/umf.yaml generates the packaged JSON Schemas, portable constraint programs and Python shape data. Pydantic provides access models; it does not define a competing format. Consumer extensions and execution policies remain in consumer repositories.

Historical Core 0.10.0 pure-Python wheel:

pip install https://github.com/DocumentDrivenDX/umf/releases/download/umf-v0.5.1/umf_core-0.10.0-py3-none-any.whl

The URL above is a historical artifact and does not identify the current native runtime. Core 0.10.2 is published through the GitHub release and PyPI. Its publication path is configured and verified; its evidence does not qualify CPython 3.14. The development source builds a platform-specific native Rust extension instead:

rustup toolchain install 1.90.0
pip install ./python

Building from a checkout or source distribution requires Cargo/Rust 1.90.0 and the locked Cargo dependencies. An installed native wheel does not require Cargo, Node, Bun or V8. Native import failures are explicit; there is no semantic fallback. Pydantic remains the Python access-model dependency. This development change does not publish or replace the release linked above.

The separately distributed experimental umf_access host adapter is not required to read or validate UMF documents.

Development candidate distribution version 0.10.3 is distinct from the UMF document/core version 0.10.0. The existing 0.10.0 pure-Python wheel linked above is metadata-only for native execution and does not provide the single-SET action runtime. The source package now exposes create_action_engine, prepare_single_set_action, admit_generated_action_invocation, and admit_generated_record_values; their bounded admission profile is specified by CONTRACT-906. No installation URL for the 0.10.3 candidate native wheel is listed until its platform-specific release assets are published and qualified. The 0.10.3 package metadata admits Python >=3.11,<3.15, matching the versioned Python 3.11–3.14 profiles; the native engine continues to refuse unsupported future minors explicitly.

from umf import read_document, validate_document, write_document

document = read_document('''
umf: "0.10.0"
id: orders
vocabularies: {}
modules: []
''', format="yaml")
result = validate_document(document)
assert result.valid and result.complete
# Unknown or unregistered extension meaning can instead make complete false.
text = write_document(document, format="yaml")
assert read_document(text, format="yaml").to_dict() == document.to_dict()

Use canonical camelCase property names when constructing models. to_dict() preserves unknown content and field presence; checked_copy() revalidates mutable model state. Current APIs accept core 0.10.0; retired core dispatch and upgrade/rollback paths are removed. Structural checks and ordered core semantic constraints use generated data through bounded generic interpreters. Installed Python and TypeScript share 139 frozen conformance vectors; this is not a claim of parity for every TypeScript adapter or native execution API.

Unknown vocabulary versions, labels and qualifiers remain serializable and make interpretation incomplete. Consumers must refuse execution when their binding cannot interpret required semantics. Exact numeric token carriers, UUID/128-bit carriers, explicit null and omission retain their separate meanings.

Extensions register explicitly through Registry and Extension with exact versions, permitted scopes, a JSON Schema and optional semantic callback. Callbacks receive copies; schema references must be local. Documents never authorize loading code or fetching schemas. schema_validator() is reusable for consumer-owned schemas and honors their declared dialect.

The R2 Rust-backed production hosts and their resource controls are described in bindings/core/README.md. Ordinary UMF values retain the portable safe-number/UTF-16 profile. Standalone Python consumer-schema validation uses a separate native Python value profile; exact tested runtime versions and compatibility limits belong to the R2 qualification evidence.

The additive R3 compiler is available as from umf.rust_codegen import CodegenEngine. Construct it with the nine explicit trusted resources described in the binding README. Its snake_case convenience methods cover both generators, access diffing, table deployment/migration compilation and verification, change discovery and row-scope normalization. call() retains the complete semantic result envelope; convenience methods raise UmfCodegenError for semantic failures. Cooperative controls use the same operation context through admission, Rust and result copies. The existing umf_codegen default CLI and its MiniRacer dependency remain until R4.

Run python -m pytest python/tests from the repository root. Build with uv build --project python. The source distribution includes the current generated resources and supports building a wheel without the repository. Release checks install the actual wheel in an isolated environment, compare its packaged resource bytes and replay the shared core conformance corpus.

Metadata

Release files for umf-core 0.10.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for umf-core 0.10.4
File Size Uploaded Provenance Actions
umf_core-0.10.4.tar.gz 3.3 MB With provenance Details for umf_core-0.10.4.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for umf-core 0.10.4
File Interpreter ABI Platform Actions
umf_core-0.10.4-cp311-abi3-manylinux_2_34_x86_64.whl CPython 3.11 abi3 Linux glibc 2.34+ x86-64 Details for umf_core-0.10.4-cp311-abi3-manylinux_2_34_x86_64.whl
umf_core-0.10.4-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details for umf_core-0.10.4-cp311-abi3-macosx_11_0_arm64.whl

Total release size: 10.5 MB

Release files / umf_core-0.10.4.tar.gz

Download URL umf_core-0.10.4.tar.gz
Size 3.3 MB
Tags Source
SHA-256 checksum
How to use checksums
725c4ea02cccf54f6071773ea9916688ec80d862a35f6169c41fc4cfc4ae462b
BLAKE2b-256 checksum
How to use checksums
09fef11aded6a3c23d13347c24299076384c893344bcea622f6f9761245ef1de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

Release files / umf_core-0.10.4-cp311-abi3-manylinux_2_34_x86_64.whl

Download URL umf_core-0.10.4-cp311-abi3-manylinux_2_34_x86_64.whl
Size 3.7 MB
Tags CPython 3.11 Linux glibc 2.34+ x86-64 abi3
SHA-256 checksum
How to use checksums
5f73e20aa2f5d5002bf33706eda7fba4dd37789c55ca912c7de0c1557b40209c
BLAKE2b-256 checksum
How to use checksums
1a9a4524d51b7febe58817cda402a5c57f989ef68bcb7307ccdc6b6fe18a00c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

Release files / umf_core-0.10.4-cp311-abi3-macosx_11_0_arm64.whl

Download URL umf_core-0.10.4-cp311-abi3-macosx_11_0_arm64.whl
Size 3.5 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a3a4a68fcc4dfb637d7e9229ac7f6cbf029e464442304e6e49f8fc0c2467845e
BLAKE2b-256 checksum
How to use checksums
02203017ad13dc4fd0a7a4d613be6a527a6618f97ef6071aed18ca1dd9fe36a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

Security for umf-core 0.10.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 3 files in this release have been uploaded with provenance metadata.

Select from 3 files

Attestation for umf_core-0.10.4.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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