PyWPS is an implementation of the Web Processing Service standard from the Open Geospatial Consortium. PyWPS is written in Python.
Python
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 Fix syntax errors causing sphinx-build to fail. (#213) Dec 3, 2016
pywps Creating new release of PYWPS 4.0.0 Dec 7, 2016
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 minor editorial updates [ci skip] Mar 5, 2016
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 Adding RELEASE-howto.md file, should fixes #185 (#210) Dec 2, 2016
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.