Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

PyNuSMV

PyNuSMV is a Python binding for NuSMV. It is intended to provide a Python interface to NuSMV, allowing to use NuSMV as a library.

Latest release

Latest release on PyPI Documentation Status

Status

Continuous Integration Status Code Health Coverage report

Preliminary warning

PyNuSMV does NOT work with Python 2 !

Installation

If you are used to installing python packages, installing pynusmv should really be dead simple: indeed, on most platforms it should suffice to simply open up a terminal and type in the following command:

pip3 install pynusmv

This will download a pre-compiled binary version of the project from PyPI and install it on your machine. In the unlikely event that no binary version is available for your platform, it will download the sources from PyPI and try to compile and install them on your system. If you prefer to download the sources from this repository, tweak them and compile them (ie if you want to link pynusmv agains ZChaff), simply follow the instructions below.

Note

In case there is no suitable pre-compiled binary available for your platform and you still want to get started instantly to avoid the hassle of compiling pynusmv for yourself: just give a look at our docker images (https://github.com/LouvainVerificationLab/pynusmv-docker)

In particular, you might want to check the louvainverificationlab/pynusmv image which gives you an access to a running python shell having pynusmv installed. To use it, just

docker run -it louvainverificationlab/pynusmv

Build

Building PyNuSMV requires you to have a few standard tools available on your computer. Typically the build process should work nice and smooth on all platform although only OSX and Ubuntu-Linux have actually been tested.

Dependencies

The first thing the build process performs in before even stating to try building PyNuSMV is to check the availability of the following system requirements. Unfortunately, no guarantee regarding the exhaustivity of this list can be given although we have strong confidence that it is sufficient.

  • An ANSI C compiler (gcc will do, as will several versions of cc)

  • A C++ compiler (g++ advised)

  • GNU Flex version 2.5 or greater

  • GNU Bison version 1.22 or greater

  • GNU make utility version 3.74 or greater

  • GNU tar, gzip and unzip (to unpack the sources of the dependencies)

  • GNU patch (to fix some files in the original project distributions)

  • GNU ar and ranlib to create static libraries

  • GNU ln command

  • SWIG version 2.0.6 or higher – http://www.swig.org/

  • Python3 (version 3.4 or higher) – http://python.org/

  • Setuptools 2.1 or higher – https://pypi.python.org/pypi/setuptools

  • pyparsing version 2.0.2 or higher – http://pyparsing.wikispaces.com/

  • Sphinx if you intend to re-build the project documentation.

Platform specific tools

On OS X, you will also need the install_name_tool command. But don’t worry much about this one, it should already be installed on your system. Similarly, on Linux, you will need the patchelf command which is used for the same purpose. This should however not be a big problem since a package for patchelf exists for all major Linux distributions.

Build process

To build and install your distribution of pynusmv from the sources, you should proceed with the following command: python3 setup.py install

This will start by unpacking, patching and building the following dependencies:

  • MiniSat

  • CUDD

  • NuSMV

Once that is done, the actual core of setup.py will be executed. This involves building the dynamic libraries for the lower interface and package the python modules that build above that lower interface. As usual, depending on the command you pass to setuptools, the output will be produced under build or dist.

Note: Using ZChaff

Should you want to have your version of pynusmv be built and linked against the ZChaff SAT solver; then, all you need to do is to add the --with-zchaff flag to your build/installation command. Hence, the command becomes: python3 setup.py install --with-zchaff.

Verifying your build

To check if the compilation was successful and make sure you didn’t break anything in the expected behavior of the lib, you can run the unit tests as such: python3 setup.py test

Docker

If you don’t want to mess with the details of properly provisioning your environment to build pynusmv and simply want to tweak it and build it from the sources; the easiest way is to use one of our preconfigured docker container (https://github.com/LouvainVerificationLab/pynusmv-docker).

In particular, you will probably be interessed by one of the following two containers:

louvainverificationlab/pynusmv-build

if you intend to make a build that works just for you.

louvainverificationlab/pynusmv-manylinux

if you intend to make a build that can possibly run on many different linux flavors.

DOCUMENTATION

The full API of (the upper interface of) PyNuSMV can be generated thanks to Sphinx (http://www.sphinx-doc.org/) by running the following command: python3 setup.py doc or python3 setup.py doc --builder=<builder>

The resulting documentation will be produced in buid/doc/. Where builder is the name of the builder you chose to generate the documentation. By default, this builder is set to html which means the documentation will be generated in html format.

The same documentation is also available on http://pynusmv.readthedocs.org/.

Content

This package contains:

README

This file

dependencies

A directory containing the dependencies project necessary to pynusmv

pynusmv

The package containig the whole upper interface of pynusmv

pynusmv_lower_interface

The package containing the wole lower interface of pynusmv

doc

A directory containing the files that permit the documentation generation.

tests

The project unittests

setup.py

PyNuSMV compilation file;

Note that pre-compiled versions have less content because only the minimal required files (i.e. PyNuSMV files and nusmv shared library) are included.

Credits

PyNuSMV is developed, maintained and distributed by the LVL Group at Université Catholique de Louvain. Please contact for any question regarding this software distribution.

NuSMV is a symbolic model checker developed as a joint project between several partners and distributed under the GNU LGPL license. Please contact for getting in touch with the NuSMV development staff.

Metadata

Release files for pynusmv 1.0rc8

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

Source distribution (sdist)

Source distribution for pynusmv 1.0rc8
File Size Uploaded
pynusmv-1.0rc8.tar.gz 4.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pynusmv 1.0rc8
File
pynusmv-1.0rc8-cp36-cp36m-manylinux1_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64 Details
pynusmv-1.0rc8-cp36-cp36m-macosx_10_12_x86_64.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.12+ x86-64 Details
pynusmv-1.0rc8-cp35-cp35m-manylinux1_x86_64.whl CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.5+ x86-64 Details
pynusmv-1.0rc8-cp35-cp35m-macosx_10_12_x86_64.whl CPython 3.5 CPython 3.5 pymalloc macOS 10.12+ x86-64 Details
pynusmv-1.0rc8-cp34-cp34m-manylinux1_x86_64.whl CPython 3.4 CPython 3.4 pymalloc Linux glibc 2.5+ x86-64 Details
pynusmv-1.0rc8-cp34-cp34m-macosx_10_12_x86_64.whl CPython 3.4 CPython 3.4 pymalloc macOS 10.12+ x86-64 Details

Total release size: 38.7 MB

Release files / pynusmv-1.0rc8.tar.gz

Download URL pynusmv-1.0rc8.tar.gz
Size 4.2 MB
Tags Source
SHA-256 checksum
How to use checksums
35af7cdd25dfc8dc357770f0764b2cb726aed219200bba2e58c25318b2425aa1
BLAKE2b-256 checksum
How to use checksums
e0b54c0f4970fefe927280e65f3951b5075da3f9ded2570478734b0e9d3b0f6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pynusmv-1.0rc8-cp36-cp36m-manylinux1_x86_64.whl

Download URL pynusmv-1.0rc8-cp36-cp36m-manylinux1_x86_64.whl
Size 8.6 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
779ac2054ab9d86a3e6d062ff6cad841ba73ec499437481f3276978edb68fdb3
BLAKE2b-256 checksum
How to use checksums
c1a13b4aae2cc01e1cde98a0361188ae0c84833b3a97a79eb4f6da28ca78747f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pynusmv-1.0rc8-cp36-cp36m-macosx_10_12_x86_64.whl

Download URL pynusmv-1.0rc8-cp36-cp36m-macosx_10_12_x86_64.whl
Size 2.9 MB
Tags CPython 3.6 CPython 3.6 pymalloc macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
dcc1a488bd82af763eff0916098aed323fe9760b34705a7332fdf2bc1ecff526
BLAKE2b-256 checksum
How to use checksums
d1c2e1acf464b87ad3c428b46efa190c3777bcc6d5097c262b7b3ab3690eba9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pynusmv-1.0rc8-cp35-cp35m-manylinux1_x86_64.whl

Download URL pynusmv-1.0rc8-cp35-cp35m-manylinux1_x86_64.whl
Size 8.6 MB
Tags CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
d64ab48c70508dc4b502e417bd621af22a3557be3fbd8efe6979ddeea9dafa96
BLAKE2b-256 checksum
How to use checksums
b39758421f5be04bd01c6417f01798529f78ea3f5e3c94419e723cd5d5a63c71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pynusmv-1.0rc8-cp35-cp35m-macosx_10_12_x86_64.whl

Download URL pynusmv-1.0rc8-cp35-cp35m-macosx_10_12_x86_64.whl
Size 2.9 MB
Tags CPython 3.5 CPython 3.5 pymalloc macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
00f325754bcfb117c6b7656868e083afc648ec4b954c39c08c774d2666667796
BLAKE2b-256 checksum
How to use checksums
7296711e962893ac7b98f0e31675032542e9141436ba9b91e4efd77f270fb054
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pynusmv-1.0rc8-cp34-cp34m-manylinux1_x86_64.whl

Download URL pynusmv-1.0rc8-cp34-cp34m-manylinux1_x86_64.whl
Size 8.6 MB
Tags CPython 3.4 CPython 3.4 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
88af857ba4bdb92767c299ec82d666cd5373e512930f4e8912dd1d2eb37bee4a
BLAKE2b-256 checksum
How to use checksums
108124d04a95f8298cd3c12535872b39e13e3875070b8f1a6d4b23ce70dd4514
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pynusmv-1.0rc8-cp34-cp34m-macosx_10_12_x86_64.whl

Download URL pynusmv-1.0rc8-cp34-cp34m-macosx_10_12_x86_64.whl
Size 2.9 MB
Tags CPython 3.4 CPython 3.4 pymalloc macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5f15825267461f91db6de8f55b055aaf9c17b20e6fd4f2bb64a0302dacbaa91b
BLAKE2b-256 checksum
How to use checksums
a1a6781fc25482a6302ef0de352918f1bddad9e7ba5a1095ceedabbacf1b88d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
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