General library for setting up linux-based environments for developing, running, and evaluating planners.
Project description
planutils
General library for setting up linux-based environments for developing, running, and evaluating planners.
1. Docker
The included Docker file will come with planutils pre-installed. Note that in order to
run a number of the planners (all those that are based on singularity), you will need
to run the docker with the --privileged
option.
Build planutils images
docker build -t planutils:latest .
Run the plautils container
docker run -it --privileged planutils bash
Active the planutils environment
planutils activate
2. Usage
Example of currently working functionality
$ lama domain.pddl problem.pddl
Package not installed!
Download & install? [Y/n] y
About to install the following packages: downward (36M), lama (20K)
Proceed? [Y/n] y
Installing downward...
INFO: Downloading shub image
35.88 MiB / 35.88 MiB [=======================================] 100.00% 3.99 MiB/s 8s
Finished installing downward (size: 36M)
Installing lama...
Finished installing lama (size: 20K)
Successfully installed lama!
Original command: lama
Re-run command? [Y/n] y
Parsing...
$
Example of upcoming functionality
$ planutils install ipc-2018
Installing planners
This will require 3Gb of storage. Proceed? [Y/n]
Fetching all of the planners from IPC-2018 for use on the command line...
$ planutils install server-environment
Setting up a webserver to call the installed planners...
$ planutils install development-environment
Installing common dependencies for building planners...
Installing common planning libraries...
$ planutils install planning-domains
Installing the command-line utilities...
Installing the python library...
Fetching default benchmarks...
$ planutils setup-evaluation configuration.json
Installing Lab...
Configuring Lab...
Ready!
Run eval.py to evaluate
$
3. Add a new package
Package Configuration
- Create a folder for new pacakeg, the package name will be the used to call the planner later
- Set up the
install
,run
,uninstall
, and manifest file. You can find the template files under packages/TEMPLATE folder
Write Manifest file
Please create a manifest file named manifest_compact.json
if you want to use predefined templates in the packages/TEMPLATE/SERVICE_TEMPLATE folder. The full manifest.json
will be generated at the run time. You can overwrite the dafult template by restating the value of json fields.
You can also create a manifest.json
file directly if you don't need the template.
Manifest Example
{
"name": "LAMA-FIRST",
"description": "http://fast-downward.org/",
"install-size": "20K",
"dependencies": [
"downward"
],
"endpoint": {
"services": {
"solve": {
"args": [
{
"name": "domain",
"type": "file",
"description": "domain file"
},
{
"name": "problem",
"type": "file",
"description": "problem file"
}
],
"call": "lama-first {domain} {problem}",
"return": {
"type": "generic",
"files": "*plan*"
}
}
}
}
}
Define Args
There are four types of Args: file
, int
, string
and,categorical
. You can add default value for int
,string
, and categorical
arguments
"args": [
{
"name": "domain",
"type": "file",
"description": "domain file"
},
{
"name": "number_of_plans",
"type": "int",
"description": "Number of Plans",
"default":3
},
{
"name": "custom_search_algorithm",
"type": "string",
"description": "Custom Search Algorithm",
"default":"kstar(blind(),k=1)"
},
{
"name": "search_algorithm",
"type": "categorical",
"description": "Search Algorithm",
"choices":[
{
"display_value":"Kstar Blind k=1",
"value":"kstar(blind(),k=1)"
},
{
"display_value":"Kstar Blind k=2",
"value":"kstar(blind(),k=2)"
}
],
"default":"kstar(blind(),k=1)"
}
]
Define Return Types
There are three types of return data: generic
, json
and log
. The generic
type should be used for all the text based result, the log
type should be used for planner like Optic and Tfd which didn't generate a proper plan, and the type json
should used for plan in JSON format.
For the value of files
, you will have to write a glob pattern. Planning-as-service backend uses glob
libary to find and return all the files that matched.
"return": {
"type": "generic/log/json",
"files": "*plan*"
}
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 planutils-0.7.1.tar.gz
.
File metadata
- Download URL: planutils-0.7.1.tar.gz
- Upload date:
- Size: 24.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b36ebf1a669bfbe22e5f020d87a93e95bdddcd9bb4e8a67d4bdb3e933c28a2c |
|
MD5 | b8dfee12e6ecea9d11857cc59bf881c4 |
|
BLAKE2b-256 | 01242973049bd86444492239881fc097a0c3998a36d765adaad619f182d0ef5b |
Provenance
File details
Details for the file planutils-0.7.1-py3-none-any.whl
.
File metadata
- Download URL: planutils-0.7.1-py3-none-any.whl
- Upload date:
- Size: 52.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a73a8ecc88e6c508b8fbbe6afb82bf8946c7f0f5da1391162bb95cedc511c6f4 |
|
MD5 | 75dc11548ac0b7bcab5d9038bd8f62e2 |
|
BLAKE2b-256 | 3da3b6ab4d57c2c6d96054c636566c3cf0109d4b1c699a92196b56b3a50f637a |