Skip to main content

No project description provided

Project description

sysml2py

PyPI versionPyPI statusCoverage StatusDocstring CoverageMIT license

Trello

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 logo PyPI python -m pip install sysml2py
GitHub logo 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 as grammar output and load it into the classtree function which takes the initial grammar and converts it into classes which correctly format the output.

  from sysml2py.formatting import classtree
  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(classtree(c.dump()).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(classtree(c.dump()).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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sysml2py-0.4.2.tar.gz (53.0 kB view hashes)

Uploaded Source

Built Distribution

sysml2py-0.4.2-py3-none-any.whl (58.2 kB view hashes)

Uploaded Python 3

Supported by

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