PyWPS is an implementation of the Web Processing Service standard from the Open Geospatial Consortium. PyWPS is written in Python.
Python
Latest commit 2009761 Feb 18, 2017 @cehbrecht cehbrecht committed with jachym New feature: set HOME to pywps process tempdir (#220)
* added sethomedir flag

Conflicts:
	pywps/configuration.py

* fixed debug message
Permalink
Failed to load latest commit information.
.github updating pull request template as per #102 Mar 4, 2016
debian Creating new release of PYWPS 4.0.0 Dec 7, 2016
docs NGINX + Gunicorn server installation docs Feb 4, 2017
pywps New feature: set HOME to pywps process tempdir (#220) Feb 18, 2017
tests Fix syntax errors causing sphinx-build to fail. (#213) Dec 3, 2016
.gitignore bug 177 - we already moved to readthedocs, closes 177 Sep 5, 2016
.travis.yml implement flake8 setup (#196) Oct 16, 2016
CONTRIBUTING.rst Closes #221 Jan 4, 2017
CONTRIBUTORS.md Better formating Oct 18, 2016
INSTALL.md install demo with https://github.com:ldesousa/pywps-4-demo.git pywps-… Jun 20, 2016
LICENSE.txt update README, normalize text, abstract version Feb 15, 2016
MANIFEST.in update README, normalize text, abstract version Feb 15, 2016
README.md clean up Gitter badges Sep 7, 2016
RELEASE-howto.md Closes #221 Jan 4, 2017
VERSION.txt Creating new release of PYWPS 4.0.0 Dec 7, 2016
default-sample.cfg fixes #205 - up-to-date config sample Nov 5, 2016
requirements-dev.txt add code coverage workflows Feb 22, 2016
requirements-gdal.txt refactor build and centralize dependencies Feb 17, 2016
requirements-py2.txt refactor build and centralize dependencies Feb 17, 2016
requirements.txt added converters for datetime, date and time (#191) Nov 6, 2016
setup.cfg implement flake8 setup (#196) Oct 16, 2016
setup.py Update of copyright header issue #187 Oct 9, 2016
tox.ini Implementing SQLalchemy for logging mechanism Aug 27, 2016

README.md

PyWPS

PyWPS is an implementation of the Web Processing Service standard from the Open Geospatial Consortium. PyWPS is written in Python.

Documentation Status Build Status Coverage Status PyPI GitHub license

Join the chat at https://gitter.im/geopython/pywps

License

As of PyWPS 4.0.0, PyWPS is released under an MIT license (see LICENSE.txt).

Dependencies

See requirements.txt file

Run tests

pip install -r requirements-dev.txt
# run unit tests
python -m unittest tests
# run code coverage
python -m coverage run --source=pywps -m unittest tests
python -m coverage report -m

Run web application

Demo application

Clone demo app after having installed PyWPS:

git clone git://github.com/PyWPS/pywps-4-demo.git
cd demo/
python demo.py

Apache configuration

  1. Enable WSGI extension

  2. Add configuration:

    WSGIDaemonProcess pywps user=user group=group processes=2 threads=5
    WSGIScriptAlias /pywps /path/to/www/htdocs/wps/pywps.wsgi
    
    <Directory /path/to/www/htdocs/wps/>
        WSGIProcessGroup group
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>
  3. Create wsgi file:

    #!/usr/bin/env python3
    import sys
    sys.path.append('/path/to/src/pywps/')
    
    import pywps
    from pywps.app import Service, WPS, Process
    
    def pr1():
        """This is the execute method of the process
        """
        pass
    
    
    application = Service(processes=[Process(pr1)])
  4. Run via web browser

    http://localhost/pywps/?service=WPS&request=GetCapabilities&version=1.0.0

  5. Run in command line:

    curl 'http://localhost/pywps/?service=WPS&request=GetCapabilities&version=1.0.0'

Issues

On Windows PyWPS does not support multiprocessing which is used when making requests storing the response document and updating the status to displaying to the user the progression of a process.