######################### PyWPS Processes structure ######################### This repository is aimed to collect all user-addons processes for PyWPS. They are organised to directories according to minor versions of PyWPS. Each process file has to have following form: #. The first line of each file shoud be #!/usr/bin/env python. This makes it possible to run the file as a script invoking the interpreter implicitly, e.g. in a CGI context. #. Next should be the docstring with a description. If the description is long, the first line should be a short summary that makes sense on its own, separated from the rest by a newline. #. All code, including import statements, should follow the docstring. Otherwise, the docstring will not be recognized by the interpreter, and you will not have access to it in interactive sessions (i.e. through obj.__doc__) or when generating documentation with automated tools. #. Import built-in modules first, followed by third-party modules, followed by any changes to the path and your own modules. Especially, additions to the path and names of your modules are likely to change rapidly: keeping them in one place makes them easier to find. #. Next should be authorship information. This information should follow this format:: __author__ = "Foo Bar [, Foo Bar [,...]]" __copyright__ = "Copyright 2009, PyWPS Development Team" __credits__ = ["Foo Bar", "Foo Bar"] __license__ = "GPL" __version__ = "1.0.0" __maintainer__ = "Foo Bar" __email__ = "foo bar org" __status__ = "Production" Status should typically be one of "Prototype", "Development", or "Production". __maintainer__ should be the person who will fix bugs and make improvements if imported. __credits__ differs from __author__ in that __credits__ includes people who reported bug fixes, made suggestions, etc. but did not actually write the code. ************************ Example of PyWPS Process ************************ :: #!/usr/bin/env python """Calculates buffer for vector maps For this purpose, GRASS GIS is used. """ from pywps.Process.Process import WPSProcess __author__ = "Jachym Cepicky" __copyright__ = "Copyright 2009, PyWPS Development Team" __credits__ = ["Jachym Cepicky"] __license__ = "GPL" __version__ = "1.0.0" __maintainer__ = "Jachym Cepicky" __email__ = "jachym les-ejk cz" __status__ = "Production" class Process(WPSProcess): def __init__(self): WPSProcess.__init__(self, identifier = "buffer", title="Buffer" ... def execute(self): ... if __name__ == '__main__': #code to execute if called from command-line pass #do nothing - code deleted #use this either for a simple example of how to use the module, #or when the module can meaningfully be called as a script.