Prototype for SAT-based dependency handling. This is a work in progress, do not expect any API not to change at this point.
Installation
To install the python package, simple do as follows:
git clone --recursive https://github.com/enthought/sat-solver cd sat-solver pip install -e .
Example usage
TODO
Usage from the CLI
To try things out from the CLI, you need to write a scenario file (yaml format), see simplesat/tests/simple_numpy.yaml for a simple example.
To print the rules:
python scripts/print_rules.py simplesat/tests/simple_numpy.yaml
To print the operations:
python scripts/solve.py simplesat/tests/simple_numpy.yaml
Comparing with php’s composer
First, clone composer’s somewhere on your machine:
git clone https://github.com/composer/composer
Then, use the scripts/scenario_to_php.py script to write a php file that will print the composer’s solution for a given scenario:
python scripts/scenario_to_php.py \
--composer-root <path to composer github checkout> \
simplesat/tests/simple_numpy.yaml \
scripts/print_operations.php.in
This will create a scripts/print_operations.php script you can simply execute w/ php:
php scripts/print_operations.php
Bibliography
Niklas Eén, Niklas Sörensson: An Extensible SAT-solver. SAT 2003
Lintao Zhang, Conor F. Madigan, Matthew H. Moskewicz, Sharad Malik: Efficient Conflict Driven Learning in a Boolean Satisfiability Solver. Proc. ICCAD 2001, pp. 279-285.
Donald Knuth: The art of computer programming. Vol. 4, Pre-fascicle 6A, Par. 7.2.2.2. (Satisfiability).
On the use of SAT solvers for managing packages:
Fosdem 2008 presentation: Using SAT for solving package dependencies. More details on the SUSE wiki.
The 0install project.
Chris Tucker, David Shuffelton, Ranjit Jhala, Sorin Lerner: OPIUM: Optimal Package Install/Uninstall Manager. Proc. ICSE 2007, pp. 178-188
Metadata
Release files for simplesat 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| simplesat-0.3.0.tar.gz | 172.8 kB | Without provenance | Details for simplesat-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| simplesat-0.3.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details for simplesat-0.3.0-py2.py3-none-any.whl |
Total release size: 383.4 kB
Release files / simplesat-0.3.0.tar.gz
| Download URL | simplesat-0.3.0.tar.gz |
|---|---|
| Size | 172.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
78a83f533af89a976f16dcfae4a2e40cf89895569f4f98e358fd8fcdba29c1ab
|
|
BLAKE2b-256 checksum How to use checksums |
c3d574b8161ddd8f3bfa6911cfb19dbf7ff332ec0f5bc22b8f6da4eba895c70d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / simplesat-0.3.0-py2.py3-none-any.whl
| Download URL | simplesat-0.3.0-py2.py3-none-any.whl |
|---|---|
| Size | 210.6 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
9fa3fa2f690d85f2e64dfa1aa84e95aa08cb7611ba10c7ee14d9a1ea3c46abdd
|
|
BLAKE2b-256 checksum How to use checksums |
87e505705c2aeb30842abf1b993557defad48a9bcdd75e5f742b3f0404efd958
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for simplesat 0.3.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.