Skip to main content

Sismic for Python

https://github.com/AlexandreDecan/sismic/actions/workflows/test.yaml/badge.svg?branch=master https://coveralls.io/repos/AlexandreDecan/sismic/badge.svg?branch=master&service=github https://badge.fury.io/py/sismic.svg https://readthedocs.org/projects/sismic/badge/?version=latest

Sismic Interactive Statechart Model Interpreter and Checker

Sismic is a recursive acronym that stands for Sismic Interactive Statechart Model Interpreter and Checker.

Statecharts are a well-known visual modeling language for representing the executable behavior of complex reactive event-based systems. Sismic library for Python (version 3.10 or higher) provides a set of tools to define, validate, simulate, execute and test statecharts. More specifically, Sismic provides:

  • An easy way to define and to import statecharts, based on the human-friendly YAML markup language

  • A statechart interpreter offering a discrete, step-by-step, and fully observable simulation engine

  • Fully controllable simulation clock, with support for real and simulated time

  • Built-in support for expressing actions and guards using regular Python code, can be easily extended to other programming languages

  • Support for Design by Contract (DbC) for statecharts: contracts can be specified to express invariants, pre- and postconditions on states and transitions

  • Runtime monitoring of behavioral properties expressed as statecharts

  • Built-in support for behavior-driven development (BDD)

  • Support for communication between statecharts

  • Synchronous and asynchronous executions

  • Statechart visualization using PlantUML

Installation

Sismic requires Python >=3.10. Sismic can be installed using pip as usual: pip install sismic. This will install the latest stable version.

You can also install Sismic from this repository by cloning it.

Starting from release 1.0.0, Sismic adheres to a semantic versioning scheme.

Documentation

The documentation for the latest distributed version is available on sismic.readthedocs.io.

Many examples are available in docs/examples.

The documentation can also be directly built from the docs directory using Sphinx.

The scientific article A method for testing and validating executable statechart models presenting the method and techniques supported by Sismic for validating and testing statecharts, is published in Springer’s Software and Systems modeling journal in 2018.

Changelog

See documentation’s changelog.

Credits

The Sismic library for Python is mainly developed by Alexandre Decan at the Software Engineering Lab of the University of Mons with the help of many contributors.

Sismic is released as open source software under the GNU Lesser General Public Licence version 3.0 (LGPLv3).

You can cite the Sismic library using:

@article{sismic-article,
    title = "Sismic—A Python library for statechart execution and testing",
    journal = "SoftwareX",
    volume = "12",
    pages = "100590",
    year = "2020",
    issn = "2352-7110",
    doi = "10.1016/j.softx.2020.100590",
    url = "https://doi.org/10.1016/j.softx.2020.100590",
    author = "Alexandre Decan and Tom Mens",
}

or

@software{sismic,
  author = {Decan, Alexandre},
  title = {Sismic Interactive Statechart Model Interpreter and Checker},
  url = {https://github.com/AlexandreDecan/sismic},
}

You can cite the associated research article (PDF) using:

@article{sismic2018-sosym,
   author = {Mens, Tom and Decan, Alexandre and Spanoudakis, Nikolaos},
   journal = {Software and Systems Modeling},
   publisher = {Springer},
   year = 2018,
   title = {A method for testing and validating executable statechart models},
   doi = {10.1007/s10270-018-0676-3},
   url = {https://doi.org/10.1007/s10270-018-0676-3},
 }

External Resources

The following resources provide additional information about statecharts that may be of use, even if it is not immediately related to Sismic.

  • Yakindu Statechart tools: commercial software for visual simulation, debugging, testing and code generation from statecharts. A free academic licence can be obtained for universities.

  • A YouTube playlist providing a set of introductory tutorials about statechart modeling and simulation (based on the aforementioned Yakindu tool).

(If some of the links provided above turn out to be dead, or if you know other relevant resources that should be added here, please contact us.)

Metadata

Release files for sismic 1.6.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sismic 1.6.12
File Size Uploaded
sismic-1.6.12.tar.gz 54.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sismic 1.6.12
File Interpreter ABI Platform
sismic-1.6.12-py3-none-any.whl Python 3 none any Details

Total release size: 120.7 kB

Release files / sismic-1.6.12.tar.gz

Download URL sismic-1.6.12.tar.gz
Size 54.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a3919c51347faad6ace972c72a007e4e104555b6861a5f119b685631aef27220
BLAKE2b-256 checksum
How to use checksums
5e3b3cabb6f7f2b8f8d060fc38dea29cec1062d41b643a891abb011c27f23b1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / sismic-1.6.12-py3-none-any.whl

Download URL sismic-1.6.12-py3-none-any.whl
Size 65.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c6a225a00a41318e7e0535ae3a950f80c2ae46a8547bc2f38eae51d52b42d1fb
BLAKE2b-256 checksum
How to use checksums
138cbc552466b1af9f2a948ebdccb1e6c598ebee27323f5fd72c4df53d179030
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

1.6.13

2 release files

This release

1.6.12 This release

2 release files

1.6.11

2 release files

1.6.9

2 release files

1.6.8

2 release files

1.6.7

2 release files

1.6.6

2 release files

1.6.5

2 release files

1.6.4

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.26.8

2 release files

0.26.7

2 release files

0.26.6

2 release files

0.26.5

2 release files

0.26.4

2 release files

0.26.3

2 release files

0.26.2

2 release files

0.26.1

2 release files

0.26.0

2 release files

0.25.3

2 release files

0.25.2

2 release files

0.23.1

2 release files

0.23.0

2 release files

0.22.9

2 release files

0.22.8

2 release files

0.22.7

2 release files

0.22.1

2 release files

0.22.0

1 release file

0.21.0

1 release file

0.20.5

2 release files

0.20.4

2 release files

0.20.3

2 release files

0.20.2

2 release files

0.20.1

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.1

1 release file

0.17.3

2 release files

0.17.2

1 release file

0.17.1

2 release files

0.16.0

1 release file

0.15.0

2 release files

0.14.3

2 release files

0.14.2

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.11.5

2 release files

0.11.4

2 release files

0.11.3

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.6.3

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page