Skip to main content

Provides access to Capella MBSE projects in Python

Project description

Python-Capellambse

PyPI - Python Version Code QA License: Apache-2.0 REUSE status Code style: ruff

A Python 3 headless implementation of the Capella modeling tool

Intro

capellambse allows you reading and writing Capella models from Python without Java or the Capella tool on any (reasonable) platform. We wanted to "talk" to Capella models from Python, but without any Java on the way. We thought this project will help individuals and organisations getting through the MBSE adoption journey with Capella faster and so we made it public and open-source.

With capellambse you can access all (or almost all) Capella model elements, and render diagrams as SVG and PNG. We made it for automation of Systems Engineering work, so it integrates nicely into most CI/CD toolchains. We also found it at the core of our artifact generation pipelines (model to documents, model to SW interfaces).

The library works with PVMT and Requirements extensions without any additional efforts.

It started as a basic library somewhere mid 2019. Since then it was re-architected a few times and now has a full read/write capability for most of the present Capella ontology. We are continuously improving the API (introducing shortcuts), increasing the meta-model coverage and have more engineering automations and improvements in the pipeline to share.

Related projects

  • capellambse-context-diagrams — A capellambse extension that visualizes the context of Capella objects, and exposes it on element attributes like .context_diagram, .tree_view, etc.

  • capella-diff-tools — A set of tools to compare Capella models.

  • capella-polarion — Synchronize information from the Capella model into a Polarion project

  • capella-ros-tools — Import and export ROS *.msg files to/from Capella models, or transform *.msg files into a declarative YAML file.

Did you make something cool that is using or extending capellambse? Tell us about it, so we can add it to this list!

Documentation and examples

The library is designed to be easy to use and discover, especially in an interactive environment such as JupyterLab. Additionally, API documentation is automatically generated and published whenever new features and bug fixes are added.

You are encouraged to explore our test models and demo notebooks. Click on the button below to launch a Jupyter notebook server on the public myBinder service, and get started in seconds:

myBinder

Warning: Do not enter confidential information, such as passwords for non-public models, into a notebook hosted on myBinder. If you want to try out capellambse with those models, please install and run it in a local, trusted environment!

The docs/source/examples directory contains several hands-on example notebooks that you can immediately run and start experimenting with. Below is a short summary of each notebook's goal. If you are in the JupyterLab environment, you can click the notebook names to directly open them in a new lab tab. On Github, you will be shown a statically rendered preview of the notebook.

  • 01 Introduction.ipynb provides a high-level overview of the library features. It visualizes examples like a Component - Function allocation table by leveraging Jupyter's and IPython's rich display functionality.

  • 02 Intro to Physical Architecture.ipynb explores some more advanced concepts on the example of the Physical Architecture Layer. It shows how to derive tabular data, like a Bill of Materials or a Software to Hardware allocation table, by using pandas dataframes.

  • 03 Data Values.ipynb shows how the API can be used to explore classes, class instances and other objects related to data modeling.

  • 04 Intro to Jinja templating.ipynb demonstrates how to effectively combine capellambse with the powerful Jinja templating engine. This enables the creation of all sorts of model-derived documents and artifacts, including interactive web pages, PDF documents and any other textual representations of your models.

  • 05 Introduction to Libraries.ipynb shows how to use Capella Library Projects within capellambse. In this example you'll learn how the API can be used to open a project that is based on a library and find objects in both models.

  • 06 Introduction to Requirement access and management.ipynb shows how the API can be used to work with requirements objects, introduced by the Capella Requirements Viewpoint. In this example you'll see how to find requirements in the model, see which objects requirements are linked / traced to and even export requirements to Excel or ReqIF formats.

  • 07 Code Generation.ipynb shows how to generate code from class diagrams. In particular, we focus on Interface Descriptive Languages with concrete examples for Class to ROS2 IDL and Google Protocol Buffers. We also show how simple Python stubs could be generated given a Class object.

  • 08 Property Values.ipynb shows how to access property values and property value groups, as well as the Property Value Management (PVMT) extension.

  • 09 Context Diagrams.ipynb shows the capellambse-context-diagrams extension that visualizes contexts of Capella objects. The extension is external to the capellambse library and needs to be installed separately.

  • 10 Declarative Modeling.ipynb demonstrates a basic application of the declarative approach to modeling on a coffee machine example.

  • 11 Complexity Assessment.ipynb quickly demonstrates how to use and view the model complexity badge for a Capella model.

We are constantly working on improving everything shown here, as well as adding even more useful functionality and helpful demos. If you have any new ideas that were not mentioned yet, don't hesitate to contribute!

Installation

In order to use private models that are not publicly available, please install and use capellambse in a local, trusted environment.

You can install the latest released version directly from PyPI.

pip install capellambse

On supported platforms, the downloaded wheel includes an optional native module, which provides faster implementations of some functions. Other platforms will fall back to a pure Python wheel without this speedup. To build the native module, a Rust compiler is required.

Development

For details on how to set up a local development environment, please refer to the CONTRIBUTING guide.

Current limitations

We are continuously improving coverage of Capella onthology with our high-level API (the current coverage map is available here), however it is still incomplete. It covers most of the commonly used paths but when you need to get to an ontology element that isnt covered yet you may do so by using the low-level API.

Also, as we started in mid 2019 and there was no such thing as Python4Capella yet, we are not API compatible with that project.

The generated diagrams are currently not persisted in .aird files, and currently there is no plan to implement this. If there is a genuine usecase for that we may re-consider it - feel free to create an issue or add comments to an existing one.

Contributing

We'd love to see your bug reports and improvement suggestions! Please take a look at our guidelines for contributors for details.

Licenses

This project is compliant with the REUSE Specification Version 3.0.

Copyright DB InfraGO AG, licensed under Apache 2.0 (see full text in LICENSES/Apache-2.0.txt)

Dot-files are licensed under CC0-1.0 (see full text in LICENSES/CC0-1.0.txt)

To provide the same look and feel across platforms, we distribute our library bundled with the OpenSans font (capellambse/OpenSans-Regular.ttf). The OpenSans font is Copyright 2020 The Open Sans Project Authors, licensed under OFL-1.1 (see full text in LICENSES/OFL-1.1.txt).

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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

capellambse-0.6.16-cp310-abi3-win_amd64.whl (516.7 kB view details)

Uploaded CPython 3.10+ Windows x86-64

capellambse-0.6.16-cp310-abi3-win32.whl (511.6 kB view details)

Uploaded CPython 3.10+ Windows x86

capellambse-0.6.16-cp310-abi3-musllinux_1_2_x86_64.whl (719.0 kB view details)

Uploaded CPython 3.10+ musllinux: musl 1.2+ x86-64

capellambse-0.6.16-cp310-abi3-musllinux_1_2_aarch64.whl (705.5 kB view details)

Uploaded CPython 3.10+ musllinux: musl 1.2+ ARM64

capellambse-0.6.16-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (657.7 kB view details)

Uploaded CPython 3.10+ manylinux: glibc 2.17+ x86-64

capellambse-0.6.16-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (657.3 kB view details)

Uploaded CPython 3.10+ manylinux: glibc 2.17+ ARM64

capellambse-0.6.16-cp310-abi3-macosx_11_0_arm64.whl (622.5 kB view details)

Uploaded CPython 3.10+ macOS 11.0+ ARM64

capellambse-0.6.16-cp310-abi3-macosx_10_13_x86_64.whl (629.5 kB view details)

Uploaded CPython 3.10+ macOS 10.13+ x86-64

File details

Details for the file capellambse-0.6.16-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for capellambse-0.6.16-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 801f58c28e67e281ad435fa1d95ce8e2210a22cb2e8a12a48d89ff0d0e800a72
MD5 44469fed8ccc76a7371567cd0fa3faf0
BLAKE2b-256 dfe6e105ef5c95b2f4dd1c8ceeb7596f1d26f60c91387e22ed9f379c520f5600

See more details on using hashes here.

Provenance

The following attestation bundles were made for capellambse-0.6.16-cp310-abi3-win_amd64.whl:

Publisher: code-qa.yml on DSD-DBS/py-capellambse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file capellambse-0.6.16-cp310-abi3-win32.whl.

File metadata

  • Download URL: capellambse-0.6.16-cp310-abi3-win32.whl
  • Upload date:
  • Size: 511.6 kB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for capellambse-0.6.16-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 742f7a56b015f2e794bf823900e4989760f39d2e5d8f73d4443836ad514fc1fd
MD5 8afb91d8fdf23eca49eb4553fcb2423a
BLAKE2b-256 bb353bf359ca7d58c2e503f9951febb7dcdac67f42c2e411c482b5928c0def21

See more details on using hashes here.

Provenance

The following attestation bundles were made for capellambse-0.6.16-cp310-abi3-win32.whl:

Publisher: code-qa.yml on DSD-DBS/py-capellambse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file capellambse-0.6.16-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for capellambse-0.6.16-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 515ab9a1b9649636f2037a1f79ef418d1091f462b04fd2a3679734afa851acc5
MD5 4c5d95002b05960e54a3d7dafc5cf93e
BLAKE2b-256 e292de07f38312d6da333a1d6c2b7a994ea50ccef9c81b76721ad392bcc0984d

See more details on using hashes here.

Provenance

The following attestation bundles were made for capellambse-0.6.16-cp310-abi3-musllinux_1_2_x86_64.whl:

Publisher: code-qa.yml on DSD-DBS/py-capellambse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file capellambse-0.6.16-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for capellambse-0.6.16-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cf59abfa4a8f383fdba5cb3afd4d2c8bdf773a3d29144e0772a4087dcc23d127
MD5 73caee9d503712b22279599b8cb5f320
BLAKE2b-256 f19ecd357356f097dcc9ae3f4d4395f81bd55eb8019924e83992bd2eea0cd08a

See more details on using hashes here.

Provenance

The following attestation bundles were made for capellambse-0.6.16-cp310-abi3-musllinux_1_2_aarch64.whl:

Publisher: code-qa.yml on DSD-DBS/py-capellambse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file capellambse-0.6.16-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for capellambse-0.6.16-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2af3615905b3ec857e46195f2d11b3ca64f8a230457b8c2d83ce449b32d5e40
MD5 d76c0184a6ccd561728c9968898318cc
BLAKE2b-256 66cb84e5f1d1e83bdc8bcb14076ccae9903e684bc84d33202e9ec4ea615ef22a

See more details on using hashes here.

Provenance

The following attestation bundles were made for capellambse-0.6.16-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: code-qa.yml on DSD-DBS/py-capellambse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file capellambse-0.6.16-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for capellambse-0.6.16-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 20477fe84bfad8669c31e592dccdd9347410b2994cd984bff9f2474b936c5586
MD5 422030d8c8649ac584e9dde3c05dbd08
BLAKE2b-256 e935cb2099de65d92487fa525d46fea13685c5016bee34f1fce17419cfd3e7be

See more details on using hashes here.

Provenance

The following attestation bundles were made for capellambse-0.6.16-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: code-qa.yml on DSD-DBS/py-capellambse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file capellambse-0.6.16-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for capellambse-0.6.16-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f7860fa6aa79bf8a092f77c9069fbb471f4e6774fab4c68a315283acde52a576
MD5 7c60e48bbafa19d2be4c276882806a11
BLAKE2b-256 f56379f9e572da2cfb7dc0958ab871bec6b0f4e792d8e29be1d1dd560a78a761

See more details on using hashes here.

Provenance

The following attestation bundles were made for capellambse-0.6.16-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: code-qa.yml on DSD-DBS/py-capellambse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file capellambse-0.6.16-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for capellambse-0.6.16-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 17263fc0e14de2cc20a169b6761ff4190fa2944b565e6d529eb3ac379909e7d2
MD5 ab3f971323d5970eb4e9c84e13a822bc
BLAKE2b-256 ca2f7c27533aa9237812c0500c1c6dc9399d7c4d6923eb6fda2f1bef3df64190

See more details on using hashes here.

Provenance

The following attestation bundles were made for capellambse-0.6.16-cp310-abi3-macosx_10_13_x86_64.whl:

Publisher: code-qa.yml on DSD-DBS/py-capellambse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page