Simple SAT solvers for use in Enstaller
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file simplesat-0.3.1.tar.gz
.
File metadata
- Download URL: simplesat-0.3.1.tar.gz
- Upload date:
- Size: 171.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fca5bd9e70e00c9314c2ad2e352db846e59b9c459a92235a526781650db7773 |
|
MD5 | 5ca49f1a02e8a6069e41f15bc85ac019 |
|
BLAKE2b-256 | 4c3cfbd07598893554a28736418251d1e843aa92632033415a029c3b1b5fd1e9 |
File details
Details for the file simplesat-0.3.1-py2.py3-none-any.whl
.
File metadata
- Download URL: simplesat-0.3.1-py2.py3-none-any.whl
- Upload date:
- Size: 210.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7091eac43af2807c888e9bda65c454d134547fa9ac4883cb8992ec40781a83a |
|
MD5 | 6bbc243f34176c71bc825f8682a78948 |
|
BLAKE2b-256 | 5dff980d2a8c5d6eed64146a5df32e67c54c94f4fdd42546d312824166d04740 |