# Welcome to the PyWPS 4.2.4 documentation!

PyWPS is a server side implementation of the OGC Web Processing Service (OGC WPS) standard, using the Python programming language. PyWPS is currently supporting WPS 1.0.0. Support for the version 2.0.0. of OGC WPS standard is presently being planned.

Like the bicycle in the logo, PyWPS is:

- simple to maintain
- fast to drive
- able to carry a lot
- easy to hack

Mount your bike and setup your PyWPS instance!

Todo

- request queue management (probably linked from documentation)
- inputs and outputs IOhandler class description (file, stream, …)

## Contents:

- OGC Web Processing Service (OGC WPS)
  - Process
  - Data inputs and outputs
    - LiteralData
    - ComplexData
    - BoundingBoxData
  - Passing data to process instance
  - Synchronous versus asynchronous process request
  - Process status
  - Request encoding, HTTP GET and POST
- PyWPS
  - PyWPS philosophy
  - Why is PyWPS there
  - PyWPS History
- Installation
  - Dependencies and requirements
  - Download and install
  - The Flask service and its sample processes
- Configuration
  - [metadata:main]
  - [server]
  - [processing]
  - [logging]
  - [grass]
  - [s3]
    - Sample file
- Processes
  - Writing a Process
  - Example vector buffer process
  - Declaring inputs and outputs
    - LiteralData
    - ComplexData
    - ComplexData `Format` and input validation
    - BoundingBoxData
  - Accessing the inputs and outputs in the handler method
  - Progress and status report
  - Returning large data
  - Returning multiple files
    - Example process
  - Process Exceptions
    - Example process
  - Process deployment
  - Running the dev server
  - Supporting multiple languages
  - Automated process documentation
- Deployment to a production server
  - Deploying an individual PyWPS instance
  - Creating a PyWPS WSGI instance
  - Deployment on Apache2 httpd server
  - Deployment on Nginx-Gunicorn
  - Testing the deployment of a PyWPS instance
- Migrating from PyWPS 3.x to 4.x
  - Configuration file
  - Single process definition
  - Inputs and outputs data manipulation
- Deployment
- Sample processes
- Needed steps summarization
- PyWPS and external tools
  - GRASS GIS
  - OpenLayers WPS client
  - ZOO-Project
  - QGIS WPS Client
- Extensions
  - Job Scheduler Extension
    - Interactions of PyWPS with a scheduler system
  - Docker Container Extension
- PyWPS API Doc
  - Process
  - Inputs and outputs
    - LiteralData
    - ComplexData
    - BoundingBoxData
    - Request and response objects
    - Processing
- Contributing to PyWPS
  - Code of Conduct
  - Contributions and Licensing
    - GitHub Commit Access
    - GitHub Pull Requests
    - Contributions and Licensing Agreement Template
  - GitHub
  - Code Overview
  - Documentation
  - Bugs
  - Forking PyWPS
  - Development
    - GitHub Commit Guidelines
    - Coding Guidelines
    - Submitting a Pull Request
  - Release Packaging
- Exceptions

### Indices and tables

- Index
- Module Index
- Search Page