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)
| File | Size | Uploaded | |
|---|---|---|---|
| pyparaspace-0.1.8.tar.gz | 61.5 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|