Skip to main content

Schedule-Abstraction Graph in Python

Schedule-abstraction graph (SAG) is a reachability-based response-time analysis for real-time systems.

This is the unofficial implementation of the SAG in Python. You can visit the official repository here. This is still WIP (Work-in-Progress) - you can run the anaysis but it doesn't scale because path merging is not implemented yet. The implemented SAG follows the following paper:

For Users

  1. Install the package with:
pip install sagpy
  1. Use the sagpy Command-Line Interface (CLI) to run the SAG analysis on a set of jobs from a csv file. You must select what SAG algorithm to use. For now there are only 2: ecrts2019 (the one presented in the paper above) and ros (based on ecrts2019, but adapted to analyze ROS2's executor):
sagpy overlapping_release_intervals.csv --algorithm ecrts2019
  1. Output files are by default generated in the ~/USER/.sagpy folder.

By default the script generates a csv containing the Best Response times (BR) and the Worst Response times (WR) for all given jobs. Moreover, a png with the visual representation of the SAG is generated as well. Optionally, you can add --drawio to generate a drawio file with a job release plot, so you can better visualize the interference between jobs. Also optionally, the SAG can be serialized with pickle and saved for later use, e.g. making ground truths for testing.

For Developers

  1. Clone the repository.
git clone https://github.com/RaduLucianR/sag-py.git
  1. Change directory in the root folder of the repository.
cd sag-py
  1. Install the package locally. This allows you to run the scripts like they'd be run by the OS. Even if you make changes in the scripts, these changes will be taken into account when Python runs the script again after install.
pip install -e . --break-system-package
  1. Run the CLI script sagpy on a csv file that contains a set of jobs:
python3 -m src.sagpy.sagpy examples/input_examples/job_sets/overlapping_release_intervals.csv --algorithm ecrts2019
  1. Output files are by default generated in the ~/USER/.sagpy folder.
  2. Run the tests running pytest from the root directiory:
pytest

Metadata

Release files for sagpy 0.0.13

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

Source distribution (sdist)

Source distribution for sagpy 0.0.13
File Size Uploaded
sagpy-0.0.13.tar.gz 14.0 kB Details

Built distribution (wheel)

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

Total release size: 32.3 kB

Release files / sagpy-0.0.13.tar.gz

Download URL sagpy-0.0.13.tar.gz
Size 14.0 kB
Tags Source
SHA-256 checksum
How to use checksums
64c73df635ca86363829434e9a5da1749e2e4b011a1183f481dcdf99df6246fb
BLAKE2b-256 checksum
How to use checksums
9ab26448e98d3fa0950cad91b0ec63def924b2ceaaf5f51379222191ff0db94f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 10, 2024.

Transparency log

Release files / sagpy-0.0.13-py3-none-any.whl

Download URL sagpy-0.0.13-py3-none-any.whl
Size 18.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1d88248b517523e723700eb3cf8b66c1a442f53a89428ff3fcbc1710e925ad1c
BLAKE2b-256 checksum
How to use checksums
79ec660f5a6793fca2a91b711afd7c3bd2b04b57439bc8b0f5b5fc0b0298dc95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 10, 2024.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.13 This release

2 release files

0.0.12

2 release files

0.0.11

2 release files

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