Skip to main content

SpotOnDocker

SpotOnDocker is a utility which exposes some of spot's functions as a dockerized service. The functions can be called using client API provided in C++, Python, VB.NET and C#.

Note: In v0.1.0, only Python client API is available.

Supported spot Functions:

  • mp_class: Returns class of LTL formula in Manna-Pnueli hierarchy.
  • translate: Translates LTL formula to Buchi automaton.
  • contains: Checks if the language of an LTL formula is contained within another's.
  • equiv: Checks of the language of two LTL formulas is equivalent.
  • rand_ltl: Generates a random LTL formula.
  • get_ap: Gets the atomic propositions from given LTL formula.
  • to_string_latex: LaTeX-friendly writing of LTL formula.

Installation Instructions

Server Setup

  1. Install Docker. Skip if already installed.

  2. Get the latest version of spotondocker image.

    docker pull abhibp1993/spotondocker
    

Python Client Setup

The following packages are required.

  • networkx
  • docker
  • thrift (Apache)
pip3 install docker networkx thrift
pip3 install spotondocker

Example (Python Client API)

It is advisable to check if spot is available on system, if not use spotondocker.

try:
    import spot
except ImportError:
    import spotondocker.client as client
    spot = client.SpotOnDockerClient()

SpotOnDockerClient() creates a docker container and sets up the server to send requests to

Call the spot functions (only the supported ones!) as usual. For example, to get the class of formula G(a -> Fb) in Manna Pnueli hierarchy, we can call

spot.mp_class('G(a -> Fb)')

which will return a verbose like safety, guarantee, ...

In case of translation, the SpotClient.translate(..) function returns a networkx.MultiDiGraph.

nx_graph = spot.translate("(p1 W 0) | Gp2")

The returned graph has several graph properties. See spotondocker.thrift to see a list of properties associated with graph. The node and edge attributes of nx_graph contains information like id and label.

Download files

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

Source Distribution

spotondocker-0.1.2.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spotondocker-0.1.2-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file spotondocker-0.1.2.tar.gz.

File metadata

  • Download URL: spotondocker-0.1.2.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for spotondocker-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4b7bea831fa8f8d4015a2ea9e4754b93e43872d944e31b4e5e39324a8162724e
MD5 179fd191caad01d7fba0952886faa8b6
BLAKE2b-256 4504ca4b7fb8b897a1ae0cb3b7cf6319e6a4a0b4bdcc29127902e955170eb917

See more details on using hashes here.

File details

Details for the file spotondocker-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: spotondocker-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for spotondocker-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c0f0c30af8dcd56bbf735318cef32705d5e108d8c59866844bdf3b3ac9f713b2
MD5 69639697039bae019f659d83e8faf320
BLAKE2b-256 ca1c3972b2f70d1c6d5f62e3e348a8b13ec42d7d9553ba34bec2d5ce6796e8b6

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 files

Supported by

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