PYWPS API文档¶
过程¶
- class pywps.Process(handler, identifier, title, abstract='', keywords=[], profile=[], metadata=[], inputs=[], outputs=[], version='None', store_supported=False, status_supported=False, grass_location=None, translations=None)[源代码]¶
- 参数
handler -- 为每个传入请求调用的可调用的。它应该接受一个
pywps.app.WPSRequest
参数并返回pywps.app.WPSResponse
对象。identifier (string) -- 此进程的名称。
title (string) -- 过程的可读标题。
abstract (string) -- 简要叙述过程。
keywords (list) -- 描述过程的关键字。
inputs -- 此过程接受的输入列表。他们应该是
LiteralInput
和ComplexInput
和BoundingBoxInput
物体。outputs -- 此进程返回的输出列表。他们应该是
LiteralOutput
和ComplexOutput
和BoundingBoxOutput
物体。metadata -- 此进程播发的元数据列表。他们应该是
pywps.app.Common.Metadata
物体。translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}
可以在流程实现中引发异常以显示用户友好的错误消息。
- class pywps.app.exceptions.ProcessError(msg=None, min_length=3, max_length=300, allowed_chars=None)[源代码]¶
pywps.app.exceptions.ProcessError
是一个Exception
您可以故意在进程中引发以提供用户友好的错误消息。错误消息被格式化(3<=消息长度<=300),并且只允许字母数字字符和一些特殊字符。
输入和输出¶
大多数输入和输出都来自 IOHandler 类
- class pywps.inout.basic.IOHandler(workdir=None, mode=0)[源代码]¶
处理多种IO类型的基本IO处理类
此类是使用内部没有数据的NoneIOHandler创建的。若要初始化数据,可以将 file , url , data 或 stream 属性。如果重置此属性中的一个,则旧数据将丢失,并由新数据替换。
- 参数
workdir -- 工作目录,用于保存临时文件对象。
mode --
MODE
验证模式。
- fileSTR
本地磁盘上的文件名。
- urlSTR
链接到联机资源。
- stream菲利奥
可读的对象。
- data对象
本机python对象(integer、string、float等)
- base64STR
数据的基64编码。
>>> # setting up >>> import os >>> from io import RawIOBase >>> from io import FileIO >>> >>> ioh_file = IOHandler(workdir=tmp) >>> assert isinstance(ioh_file, IOHandler) >>> >>> # Create test file input >>> fileobj = open(os.path.join(tmp, 'myfile.txt'), 'w') >>> fileobj.write('ASDF ASFADSF ASF ASF ASDF ASFASF') >>> fileobj.close() >>> >>> # testing file object on input >>> ioh_file.file = fileobj.name >>> assert ioh_file.file == fileobj.name >>> assert isinstance(ioh_file.stream, RawIOBase) >>> # skipped assert isinstance(ioh_file.memory_object, POSH) >>> >>> # testing stream object on input >>> ioh_stream = IOHandler(workdir=tmp) >>> assert ioh_stream.workdir == tmp >>> ioh_stream.stream = FileIO(fileobj.name,'r') >>> assert open(ioh_stream.file).read() == ioh_file.stream.read() >>> assert isinstance(ioh_stream.stream, RawIOBase)
LiteralData¶
- class pywps.LiteralInput(identifier, title=None, data_type=None, workdir=None, abstract='', keywords=[], metadata=[], uoms=None, min_occurs=1, max_occurs=1, mode=1, allowed_values=None, default=None, default_type=3, translations=None)[源代码]¶
- 参数
identifier (str) -- 此输入的名称。
title (str) -- 输入的标题
data_type (pywps.inout.literaltypes.LITERAL_DATA_TYPES) -- 数据类型
workdir (str) -- 工作目录,用于保存临时文件对象。
abstract (str) -- 输入摘要
keywords (list) -- 描述此输入的关键字。
metadata (list) -- TODO
uoms (str) -- 单位
min_occurs (int) -- 最小发生次数
max_occurs (int) -- 最大发生次数
mode (pywps.validator.mode.MODE) -- 验证模式(无到严格)
allowed_values (pywps.inout.literaltypes.AnyValue) -- 或
pywps.inout.literaltypes.AllowedValue
对象metadata -- 此进程播发的元数据列表。他们应该是
pywps.app.Common.Metadata
物体。translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}
- class pywps.LiteralOutput(identifier, title, data_type='string', abstract='', keywords=[], metadata=[], uoms=None, mode=1, translations=None)[源代码]¶
- 参数
identifier -- 此输出的名称。
title (str) -- 输入的标题
data_type (pywps.inout.literaltypes.LITERAL_DATA_TYPES) -- 数据类型
abstract (str) -- 输入摘要
uoms (str) -- 单位
mode (pywps.validator.mode.MODE) -- 验证模式(无到严格)
metadata -- 此进程播发的元数据列表。他们应该是
pywps.app.Common.Metadata
物体。translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}
- class pywps.inout.literaltypes.AllowedValue(allowed_type=None, value=None, minval=None, maxval=None, spacing=None, range_closure='closed')[源代码]¶
此数量的所有有效值和/或值范围的列表。值在文本验证器函数中求值
- 参数
allowed_type (pywps.validator.allowed_value.ALLOWEDVALUETYPE) -- 值或范围
value -- 单值
minval -- 范围最小值
maxval -- 范围最大值
spacing -- 范围内的间距
range_closure (pywps.input.literaltypes.RANGECLOSURETYPE) --
- class pywps.inout.literaltypes.ValuesReference(reference=None, values_form=None)[源代码]¶
参考此数量的所有有效值和/或值范围的列表。注意:不执行值验证。
- Param
reference:可以从中检索这组范围和值的URL
- Param
values_form:引用用于这组值和范围的mimetype、编码和架构的描述。
- pywps.inout.literaltypes.LITERAL_DATA_TYPES = ('float', 'boolean', 'integer', 'string', 'positiveInteger', 'anyURI', 'time', 'date', 'dateTime', 'scale', 'angle', 'nonNegativeInteger', None)¶
内置不可变序列。
如果未给定参数,则构造函数返回空元组。如果指定了iterable,则从iterable的项初始化元组。
如果参数是元组,则返回值是相同的对象。
ComplexData¶
- class pywps.ComplexInput(identifier, title, supported_formats, data_format=None, abstract='', keywords=[], workdir=None, metadata=[], min_occurs=1, max_occurs=1, mode=0, default=None, default_type=3, translations=None)[源代码]¶
复杂数据输入
- 参数
identifier (str) -- 此输入的名称。
title (str) -- 输入的标题
supported_formats (pywps.inout.formats.Format) -- 支持格式列表
data_format (pywps.inout.formats.Format) -- 默认数据格式
abstract (str) -- 输入摘要
keywords (list) -- 描述此输入的关键字。
workdir (str) -- 工作目录,用于保存临时文件对象。
metadata (list) -- TODO
min_occurs (int) -- 最小发生次数
max_occurs (int) -- 最大发生次数
mode (pywps.validator.mode.MODE) -- 验证模式(无到严格)
translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}
- class pywps.ComplexOutput(identifier: str, title: str, supported_formats: Optional[Sequence[Union[str, pywps.inout.formats.Format]]] = None, data_format=None, abstract: str = '', keywords=[], workdir=None, metadata: Optional[Sequence[pywps.app.Common.Metadata]] = None, as_reference=False, mode: pywps.validator.mode.MODE = 0, translations: Optional[Dict[str, Dict[str, str]]] = None)[源代码]¶
- 参数
identifier -- 此输出的名称。
title -- 输出名称的可读形式。
supported_formats ((pywps.inout.formats.Format, )) -- 支持格式的列表。列表中的第一个格式将用作默认格式。
abstract (str) -- 输出说明
mode (pywps.validator.mode.MODE) -- 验证模式(无到严格)
metadata -- 此进程播发的元数据列表。他们应该是
pywps.app.Common.Metadata
物体。translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}
- class pywps.Format(mime_type, schema=None, encoding=None, validate=None, extension=None)[源代码]¶
输入输出格式规范
预定义格式存储在
pywps.inout.formats.FORMATS
- 参数
mime_type (str) -- mimetype定义
schema (str) -- XML架构定义
encoding (str) -- 是否为Base64
validate (function) -- 函数,它将执行验证。例如
mode (number) -- 验证模式
extension (str) -- 文件扩展名
- pywps.inout.formats.FORMATS¶
格式(GEOJSON、JSON、SHP、GML、GPX、Metalink、META4、KML、KMZ、GEOTIFF、WCS、WCS100、WCS110、WCS20、WFS、WFS100、WFS110、WFS20、WMS、WMS130、WMS110、WMS100、Text、Dods、NETCDF、NCML、LAZ、LAZ、LAS、ZIP、XML、CSV)
开箱即用支持格式的列表。用户可以向数组添加自定义格式。
- pywps.validator.complexvalidator.validategml(data_input, mode)[源代码]¶
GML验证功能
- 参数
data_input --
ComplexInput
mode (pywps.validator.mode.MODE) --
此函数根据给定的验证模式验证GML输入。如果发生以下情况 mode 参数如下:
- MODE.NONE
它总会回来的 True
- MODE.SIMPLE
将检查mimetype
- MODE.STRICT
Fiona 用于获取正确的格式。
- MODE.VERYSTRICT
这个
lxml.etree
与给定的输入一起使用 schema GML文件根据给定的模式进行了正确的验证。
BoundingBoxData¶
- class pywps.BoundingBoxInput(identifier, title, crss=None, abstract='', keywords=[], dimensions=2, workdir=None, metadata=[], min_occurs=1, max_occurs=1, mode=0, default=None, default_type=3, translations=None)[源代码]¶
- 参数
identifier (string) -- 此输入的名称。
title (string) -- 可读标题
abstract (string) -- 较长的文本描述
crss -- 支持的坐标参考系列表(例如 [EPSG:4326] )
keywords (list) -- 描述此输入的关键字。
dimensions (int) -- 2或3
workdir (str) -- 工作目录,用于保存临时文件对象。
metadata (list) -- TODO
min_occurs (int) -- 此输入发生多少次
max_occurs (int) -- 此输入发生多少次
metadata -- 此进程播发的元数据列表。他们应该是
pywps.app.Common.Metadata
物体。translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}
- class pywps.BoundingBoxOutput(identifier, title, crss, abstract='', keywords=[], dimensions=2, metadata=[], min_occurs='1', max_occurs='1', as_reference=False, mode=0, translations=None)[源代码]¶
- 参数
identifier -- 此输入的名称。
title (str) -- 输入的标题
abstract (str) -- 输入摘要
crss -- 支持的坐标参考系列表(例如 [EPSG:4326] )
dimensions (int) -- 尺寸数量(2或3)
min_occurs (int) -- 最小发生次数
max_occurs (int) -- 最大发生次数
mode (pywps.validator.mode.MODE) -- 验证模式(无到严格)
metadata -- 此进程播发的元数据列表。他们应该是
pywps.app.Common.Metadata
物体。translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}
请求和响应对象¶
- pywps.response.status.WPS_STATUS¶
WPSStatus(未知、已接受、已启动、已暂停、成功、失败)
进程状态信息
- class pywps.app.WPSRequest(http_request=None, preprocessors=None)[源代码]¶
- operation¶
客户端请求的操作类型。可以是 getcapabilities , describeprocess 或 execute .
- http_request¶
原始的werkzeug httprequest对象。
- inputs¶
包含客户端发送的输入值的multidict对象。
- property json¶
返回请求的json编码表示
- class pywps.response.WPSResponse(wps_request: WPSRequest, uuid=None, version='1.0.0')[源代码]¶
- status¶
有关当前运行进程状态的信息
pywps.response.status.STATUS
处理¶
- class pywps.processing.Processing(process, wps_request, wps_response)[源代码]¶
Processing
是运行作业的接口。
- class pywps.processing.Job(process, wps_request, wps_response)[源代码]¶
Job
表示处理作业。- property json¶
返回请求的json编码表示
参考 例外情况 他们的描述。