Skip to main content

pyparaspace: a Python wrapper for the ParaSpace timelines planner -- a simple, flexible and extensible solver for timeline-based planning problems using the Z3 Theorem Prover.

Installing

Install using Pip.

pip install pyparaspace

See the file testPyParaspace.py for example usage.

Building locally

Requirements: Rust, Cargo, Clang/LLVM/LibClang, CMake.

  • Create a virtual environment
python3 -m venv env
source env/bin/activate
  • Install maturin
pip install maturin
  • Build package
maturin develop

Building and releasing

This section is intended for package maintainers. The pyparaspace package is released on PyPi with Python wheel packages that make it convenient to use paraspace without needing to set up Rust and C++ compilers and tools. Through the z3-sys package's static link option, we get the whole planner, including the Z3 solver, statically linked. This greatly increases the convenience for users of the library.

Windows and Manylinux platforms are currently supported.

Windows

If building and installing the local package works, then using maturin build --release should also correctly build a wheel package, which can be uploaded to PyPi using maturin publish.

Because the z3-rs feature "static-link-z3" is used, the Z3 library is built during the building of paraspace. To make sure that C++ compiler paths are correctly set up, use the "x64 Native Tools Command Prompt" that is installed by Visual Studio. If you get compilation errors after trying to build in a different environment, the z3-rs package doesn't always correctly rebuild the right parts, so it might be necessary to explicitly clean the build cache (cargo clean or git clean).

Note that building paraspace with the statically linked Z3 can take some time, typically 10-20 minutes.

When in the correct environment, publishing a new release should be possible with:

maturin publish --skip-existing

Manylinux

paraspace requires an Rust version 1.60 and Clang version 3.5 (to compile the Z3 solver), which makes it requires a bit of setup to correcly build the manylinux wheel. There is a Dockerfile available that can be used to build a Docker image with an up-to-date Rust version and version 7 of the LLVM/Clang toolchain.

The builds should work using the following commands.

docker build -t mybuild .
docker run --rm -v $(pwd):/io mybuild publish --skip-existing --compatibility manylinux2014 -i python3.10

Metadata

Release files for pyparaspace 0.1.8

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

Source distribution (sdist)

Source distribution for pyparaspace 0.1.8
File Size Uploaded
pyparaspace-0.1.8.tar.gz 61.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyparaspace 0.1.8
File Interpreter ABI Platform
pyparaspace-0.1.8-cp310-none-win_amd64.whl CPython 3.10 none Windows x86-64 Details
pyparaspace-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details

Total release size: 15.7 MB

Release files / pyparaspace-0.1.8.tar.gz

Download URL pyparaspace-0.1.8.tar.gz
Size 61.5 kB
Tags Source
SHA-256 checksum
How to use checksums
8d31db7679f3c92c1a0dab3c11278b812fa54101d8d27b48d23a508d7fd67d6c
BLAKE2b-256 checksum
How to use checksums
2b42b86df6a26379263647e93403061bc839e754921625143d6f37ff98c79aac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.1.0

Release files / pyparaspace-0.1.8-cp310-none-win_amd64.whl

Download URL pyparaspace-0.1.8-cp310-none-win_amd64.whl
Size 6.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b43491321bebd45ce122c9bda34b9ed6023c95c47ec4c6d527ee7274409d397f
BLAKE2b-256 checksum
How to use checksums
6a6ac6314be31e1b93380cf6d4ba9fd929ff18dfafff933cad1e9ff65a6a332c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.2.3

Release files / pyparaspace-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyparaspace-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
480165a0b38b2056822d731447872017ab7b47c0ee79f0ffdd4f0df0c89ca9cf
BLAKE2b-256 checksum
How to use checksums
0874ff4e806d190b3df10014f9155e967391e041e2124114b676624242aa4d5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.1.0

Release history Release notifications | RSS feed

This release

0.1.8 This release

3 release files

0.1.7

3 release files

0.1.6

3 release files

0.1.5

3 release files

0.1.4

3 release files

0.1.3

3 release files

0.1.1

3 release files

0.1.0

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