CRML language/spec models, schema validator, and YAML IO
Project description
crml-lang
Language/spec package for CRML.
- Pydantic models for CRML documents
- Bundled JSON Schema + structured validator
- YAML load/dump helpers (
CRScenario,CRPortfolio)
Quickstart
Validate a scenario document:
from crml_lang import validate
report = validate("examples/scenarios/data-breach-simple.yaml", source_kind="path")
print(report.ok)
Load and work with typed models:
from crml_lang import CRScenario
scenario = CRScenario.load_from_yaml("examples/scenarios/data-breach-simple.yaml")
print(scenario.meta.name)
Bundle a portfolio (inline referenced scenarios/packs into a self-contained artifact):
from crml_lang import bundle_portfolio
report = bundle_portfolio("examples/portfolios/portfolio.yaml", source_kind="path")
print(report.ok)
bundle = report.bundle
assert bundle is not None
Bundle from in-memory models (no filesystem access required):
from crml_lang import CRPortfolio, CRScenario, bundle_portfolio
portfolio = CRPortfolio.load_from_yaml("examples/portfolios/portfolio.yaml")
scenario = CRScenario.load_from_yaml("examples/scenarios/data-breach-simple.yaml")
report = bundle_portfolio(
portfolio,
source_kind="model",
scenarios={"s1": scenario},
)
print(report.ok)
Plan a portfolio (deterministic engine pipeline step):
from crml_engine.pipeline import plan_portfolio
plan = plan_portfolio("examples/portfolios/portfolio.yaml", source_kind="path")
print(plan.ok)
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 crml_lang-1.2.1.tar.gz.
File metadata
- Download URL: crml_lang-1.2.1.tar.gz
- Upload date:
- Size: 86.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
467de731ee5e7f35ed62e4bab1d1c179f841611b0cc26c1245b3faea5c6a0515
|
|
| MD5 |
83b4a9a7485e2bd28112a1f25a55992c
|
|
| BLAKE2b-256 |
5b6a161659d0822f7b784b65b9c29d07b052461a721b585119bcf0c5ebc5335b
|
File details
Details for the file crml_lang-1.2.1-py3-none-any.whl.
File metadata
- Download URL: crml_lang-1.2.1-py3-none-any.whl
- Upload date:
- Size: 117.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
212700a4d5ddbe14e5d25ca2f3c700f0e2dd90f14bd8d9dc689e12fc947744ac
|
|
| MD5 |
adbf4bf92544318847b5024214472c3d
|
|
| BLAKE2b-256 |
16509c4e35c80d92f8c084cd54a1dc6a18a4d054cec87b125aad8053da0996f2
|