A Web Processing Service for climdex.pcic
quail
PyWPS servicequail
as Docker containerquail
on your SystemPoethepoet is a task runner that integrates smoothly with Poetry, serving as a modern alternative to Makefiles.
$ python3 -m pip install --user pipx
$ python3 -m pipx ensurepath # Ensure directory where pipx stores apps is in your PATH environment variable
$ pipx install poethepoet # Install globally
Once installed, you can list all available tasks using:
poe --help
This will output a list of predefined tasks from your pyproject.toml. Example:
# View all tasks
poe --help
install-apt Install required system libraries for R packages
install-r-pkgs Install required R packages
install Install Python project dependencies using Poetry
develop Install development dependencies using Poetry
start Start the Quail service in detached mode
stop Stop the quail service
restart Restart the Quail service
status Show the status of the Quail service
dist Build a distribution package for the project
test Run fast, offline unit tests
test-all Run all tests, including online ones
lint Check code formatting using Black
prepare-notebooks Download the output sanitizer config for notebook tests
test-notebooks Run all local notebook tests with sanitized output
test-notebooks-local Run notebook tests locally using nbval with sanitization
docs Convert notebooks to HTML for documentation
You can run any task with:
poe <task-name>
# Example:
poe test
Check out code from the quail GitHub repo and start the installation:
$ git clone https://github.com/pacificclimate/quail.git
$ cd quail
Install requirements:
poe install-apt
poe install-r-pkgs
poe install
For development you can use this command:
poe develop
quail
PyWPS serviceAfter successful installation you can start the service using the quail
command-line.
poetry run quail --help # show help
poe start # start service with default configuration
# OR
poetry run quail start --daemon # start service as daemon
loading configuration
forked process id: 42
The deployed WPS service is by default available on:
http://localhost:5000/wps?service=WPS&version=1.0.0&request=GetCapabilities.
NOTE:: Remember the process ID (PID) so you can stop the service with kill PID
.
You can find which process uses a given port using the following command (here for port 5000
):
$ netstat -nlp | grep :5000
Check the log files for errors:
$ tail -f pywps.log
… or do it the lazy way
You can also use Poe
to start and stop the service:
$ poe start
$ poe status
$ tail -f pywps.log
$ poe stop
quail
as Docker containerYou can also run quail
as a Docker container.
$ docker-compose build
$ docker-compose up
quail
will be available on port 8103
.
quail
on your SystemUse the Ansible playbook for PyWPS to deploy quail
on your system.