How dbinfrago/py-capellambse works
Python-Capellambse is a headless Python library for reading and writing Capella systems-engineering models, with diagram rendering and model-derived automation. A typical workflow opens a project through a file handler, loads its model, and uses the model-object and metamodel APIs to inspect or modify it; users can then render diagrams or apply extensions and declarative changes. The README also documents requirements export, PVMT, validation, metrics, and declarative modeling. These latter capabilities are shown as branches; their internal wiring is not established by the sampled excerpts.
Main entry points: diagram Diagram API · model Model objects · core.py Project loader · __init__.py Python API
Components 18
Model access
- Python API
src/capellambse/__init__.py - File handlers
src/capellambse/filehandler - Project loader
src/capellambse/loader/core.py
Model semantics
- Model objects
src/capellambse/model - Capella ontology
src/capellambse/metamodel
Diagram rendering
- Diagram API
src/capellambse/diagram - AIR diagram parsing
src/capellambse/aird - SVG generation
src/capellambse/svg - Diagram cache
src/capellambse/diagram_cache.py
Model extensions
- PVMT extension
src/capellambse/extensions/pvmt - Requirements access
src/capellambse/extensions/reqif - ReqIF exporter
src/capellambse/extensions/reqif/exporter.py - Model validation
src/capellambse/extensions/validation - Complexity metrics
src/capellambse/extensions/metrics - Model filtering
src/capellambse/extensions/filtering.py
Automation
- Declarative modeling
src/capellambse/decl.py
Other components
- Engineer
- ReqIF consumer
Connections 18
- Engineer → Python API: uses
- Python API → Project loader: opens models
- Project loader → File handlers: reads resources
- Project loader → Model objects: loads model
- Model objects → Capella ontology: uses types
- Engineer → Declarative modeling: applies YAML
- Declarative modeling → Model objects: modifies model
- Engineer → Diagram API: requests diagrams
- Diagram API → Model objects: reads elements
- Diagram API → AIR diagram parsing: parses diagrams
- Diagram API → SVG generation: renders output
- Diagram API → Diagram cache: caches diagrams
- Engineer → PVMT extension: uses properties
- Engineer → Requirements access: manages requirements
- ReqIF exporter → ReqIF consumer: exports ReqIF
- Engineer → Model validation: validates model
- Engineer → Complexity metrics: assesses complexity
- Engineer → Model filtering: filters model