This project has been archived by its maintainers, and is no longer receiving any updates.
velarium
Role in Velarium: core ModelSpec IR — normalized types (TypeSpec, TypeKind, …), ModelSpec, JSON codec, union normalization, and builders that turn dataclasses, TypedDict, Pydantic BaseModel, and attrs classes into IR (see model-sources.md).
| PyPI | pypi.org/project/velarium |
| Repository | github.com/eddiethedean/velarium |
| Python | 3.10+ |
| Import | import velarium / from velarium.ir import ModelSpec, TypeSpec |
| Dependencies | typing_extensions only; optional velarium[pydantic], velarium[attrs], or velarium[sources] |
Downstream packages (e.g. velotype on PyPI) consume this IR to emit .pyi stubs and other artifacts. The IR contract is in docs/modelspec-ir.md; JSON format_version and migration notes are in docs/migration-ir.md; the hand-maintained public symbol list is docs/api-reference.md; pre-1.0 stability expectations are in docs/stability.md. How Python annotations map to the IR is in docs/supported-annotations.md; stub consumer guarantees are summarized in docs/stub-compatibility.md; builders and optional extras are in docs/model-sources.md. Ecosystem context is in docs/valarium.md and docs/design.md.
Public API (high level)
| Area | Modules / entry points |
|---|---|
| IR types | velarium.ir — ModelSpec, TypeSpec, TypeKind, … |
| JSON | velarium.json_codec — dumps_model_spec, loads_model_spec, dict helpers; optional VELARIUM_JSON_MAX_DEPTH / VELARIUM_JSON_MAX_BYTES (see security.md) |
| Normalization | velarium.normalize — normalize_typespec, unions, optional handling; optional VELARIUM_NORMALIZE_BACKEND=native (falls back to Python; see performance.md) |
| Annotations | velarium.annotations — type_to_typespec, annotation_to_typespec |
| Builders | velarium.modelspec_build — modelspec_from_dataclass, modelspec_from_typed_dict, typespec_from_object; velarium.modelspec_pydantic / modelspec_from_pydantic_model (extra); velarium.modelspec_attrs / modelspec_from_attrs_class (extra) |
| Resolution | velarium.typing_resolve — get_resolved_hints, module_globals_for_class, evaluate_forward_ref (used by builders; re-export not required for typical use) |
Install
pip install velarium
# Optional: Pydantic v2 / attrs builders
pip install velarium[pydantic] # or velarium[attrs] / velarium[sources]
From the monorepo root (with uv):
uv sync --group dev
Version
__version__ lives in velarium/__init__.py (Hatch reads it from that package’s pyproject.toml).
See also
- Repository README — full package table and workspace setup
- Documentation index
- API reference — supported public imports
- Security — JSON deserialization limits, trust boundaries for builders
- Roadmap
- Changelog
License
MIT — see LICENSE.
Metadata
Release files for velarium 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| velarium-0.8.0.tar.gz | 12.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| velarium-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.8 kB
Release files / velarium-0.8.0.tar.gz
| Download URL | velarium-0.8.0.tar.gz |
|---|---|
| Size | 12.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
86cf7966c141079f538eb350bf9dd9f12815d6b31f7423df57bcb9b2128f2f79
|
|
BLAKE2b-256 checksum How to use checksums |
c52323a816f43eef070c8b5dd2144f2ad696fcb6f2b5d5ae70482ea1cf0a21b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / velarium-0.8.0-py3-none-any.whl
| Download URL | velarium-0.8.0-py3-none-any.whl |
|---|---|
| Size | 16.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
80bf5b49ed78f11be9c4f59131e8f7f51b78920e725f05284b852f0e62e90e5a
|
|
BLAKE2b-256 checksum How to use checksums |
98b2869b23042bf5afe2d71eb79a83967170f42b74b49c61e7889c90afae2e4e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|