sysml2py (0.5.4a0)
Installation
pip install --index-url sysml2pyAbout this package
SysML v2.0 Parser
sysml2py
Description
sysml2py is an open source pure Python library for constructing python-based classes consistent with the SysML v2.0 standard.
Requirements
sysml2py requires the following Python packages:
Installation
Multiple installation methods are supported by sysml2py, including:
| Logo | Platform | Command |
|---|---|---|
| PyPI | python -m pip install sysml2py |
|
| GitHub | python -m pip install https://github.com/Westfall-io/sysml2py/archive/refs/heads/main.zip |
Documentation
Documentation can be found here.
Basic Usage
The code below will create a part called Stage 1, with a shortname of <'3.1'> referencing a specific requirement or document. It has a mass attribute of 100 kg. It has a thrust attribute of 1000 N. These attributes are created and placed as a child of the part. Next, we recall the part value for thrust and add 199 N. Finally, we can dump the output from this class.
from sysml2py import Attribute, Part
import astropy.units as u
a = Attribute()._set_name('mass')
a.set_value(100*u.kg)
b = Attribute()._set_name('thrust')
b.set_value(1000*u.N)
c = Part()._set_name("Stage_1")._set_name("'3.1'", short=True)
c._set_child(a)
c._set_child(b)
v = "Stage_1.thrust"
c._get_child(v).set_value(c._get_child(v).get_value()+199*u.N)
print(c.dump())
It will output the following, which isn't yet fully correct as we need to import the SI units to be valid SysML.
part <'3.1'> Stage_1 {
attribute mass= 100.0 [kg];
attribute thrust= 1199.0 [N];
}
The package is able to handle Items, Parts, and Attributes.
a = Part()._set_name('camera')
b = Item()._set_name('lens')
d = Attribute()._set_name('mass')
c = Part()._set_name("sensor")
c._set_child(a)
c._set_child(b)
a._set_child(d)
print(c.dump())
will return:
part sensor {
part camera {
attribute mass;
}
item lens;
}
Release Planning
Development can be tracked via Trello.
License
sysml2py is released under the MIT license, hence allowing commercial use of the library.