class TimeExtensionDecoder(kvp.Decoder): start = kvp.Parameter(num="?", type=parse_iso8601) end = kvp.Parameter(num="?", type=parse_iso8601) relation = kvp.Parameter( num="?", type=enum(("intersects", "contains", "disjoint", "equals"), False), default="intersects")
class WCS11GetCapabilitiesKVPDecoder(kvp.Decoder): sections = kvp.Parameter(type=typelist(lower, ","), num="?") updatesequence = kvp.Parameter(num="?") acceptversions = kvp.Parameter(type=typelist(str, ","), num="?") acceptformats = kvp.Parameter(type=typelist(str, ","), num="?", default=["text/xml"]) acceptlanguages = kvp.Parameter(type=typelist(str, ","), num="?")
class WCS20GetEOCoverageSetKVPDecoder(kvp.Decoder): eo_ids = kvp.Parameter("eoid", type=typelist(str, ","), num=1, locator="eoid") subsets = kvp.Parameter("subset", type=parse_subset_kvp, num="*") containment = kvp.Parameter(type=containment_enum, num="?") count = kvp.Parameter(type=pos_int, num="?", default=MAXSIZE) format = kvp.Parameter(num=1, type=parse_format)
class WCS20DescribeEOCoverageSetKVPDecoder(kvp.Decoder, SectionsMixIn): eo_ids = kvp.Parameter("eoid", type=typelist(str, ","), num=1, locator="eoid") subsets = kvp.Parameter("subset", type=parse_subset_kvp, num="*") containment = kvp.Parameter(type=containment_enum, num="?") count = kvp.Parameter(type=pos_int, num="?", default=sys.maxsize) sections = kvp.Parameter(type=typelist(sections_enum, ","), num="?")
class WMS13GetMapDecoder(kvp.Decoder): layers = kvp.Parameter(type=typelist(str, ","), num=1) styles = kvp.Parameter(num="?") bbox = kvp.Parameter(type=parse_bbox, num=1) time = kvp.Parameter(type=parse_time, num="?") crs = kvp.Parameter(num=1) width = kvp.Parameter(num=1) height = kvp.Parameter(num=1) format = kvp.Parameter(num=1) dim_bands = kvp.Parameter(type=typelist(int_or_str, ","), num="?") elevation = kvp.Parameter(type=float, num="?") dimensions = kvp.MultiParameter(lambda s: s.startswith("dim_"), locator="dimension", num="*")
class WMS13GetMapDecoder(kvp.Decoder): layers = kvp.Parameter(type=typelist(str, ","), num=1) styles = kvp.Parameter(type=typelist(str, ","), num=1) bbox = kvp.Parameter(type=parse_bbox, num=1) crs = kvp.Parameter(num=1) width = kvp.Parameter(type=int, num=1) height = kvp.Parameter(type=int, num=1) format = kvp.Parameter(num=1) time = kvp.Parameter(type=parse_time, num="?") elevation = kvp.Parameter(type=float, num="?")
class WMS13GetFeatureInfoDecoder(kvp.Decoder): layers = kvp.Parameter(type=typelist(str, ","), num=1) styles = kvp.Parameter(num="?") bbox = kvp.Parameter(type=parse_bbox, num=1) time = kvp.Parameter(type=parse_time, num="?") crs = kvp.Parameter(num=1) width = kvp.Parameter(num=1) height = kvp.Parameter(num=1) format = kvp.Parameter(num=1) dim_bands = kvp.Parameter(type=typelist(int_or_str, ","), num="?")
class WCS11GetCoverageKVPDecoder(kvp.Decoder): coverage_id = kvp.Parameter("identifier", num=1) boundingbox = kvp.Parameter(type=parse_bbox_kvp, num=1) format = kvp.Parameter(num=1) gridcs = kvp.Parameter(num="?") gridbasecrs = kvp.Parameter(num="?") gridtype = kvp.Parameter(num="?") gridorigin = kvp.Parameter(type=parse_origin_kvp, num="?") gridoffsets = kvp.Parameter(type=parse_offsets_kvp, num="?")
class WCS20GeoTIFFEncodingExtensionKVPDecoder(kvp.Decoder): compression = kvp.Parameter("geotiff:compression", num="?", type=compression_enum) jpeg_quality = kvp.Parameter("geotiff:jpeg_quality", num="?", type=int) predictor = kvp.Parameter("geotiff:predictor", num="?", type=predictor_enum) interleave = kvp.Parameter("geotiff:interleave", num="?", type=interleave_enum) tiling = kvp.Parameter("geotiff:tiling", num="?", type=boolean) tileheight = kvp.Parameter("geotiff:tileheight", num="?", type=parse_multiple_16) tilewidth = kvp.Parameter("geotiff:tilewidth", num="?", type=parse_multiple_16)
class WMS10GetMapDecoder(kvp.Decoder): layers = kvp.Parameter(type=typelist(str, ","), num=1) styles = kvp.Parameter(num="?") bbox = kvp.Parameter(type=parse_bbox, num=1) srs = kvp.Parameter(num=1) width = kvp.Parameter(num=1) height = kvp.Parameter(num=1) format = kvp.Parameter(num=1)
class WMS13GetMapDecoder(WMSBaseGetMapDecoder): _bbox = kvp.Parameter('bbox', type=parse_bbox, num=1) @property def bbox(self): bbox = self._bbox crs = self.crs srid = crss.parseEPSGCode( self.crs, (crss.fromShortCode, crss.fromURN, crss.fromURL)) if srid is None: raise InvalidCRS(crs, "crs") if crss.hasSwappedAxes(srid): miny, minx, maxy, maxx = bbox else: minx, miny, maxx, maxy = bbox return (minx, miny, maxx, maxy) crs = kvp.Parameter(num=1) srs = property(lambda self: self.crs)
class GeoExtensionDecoder(kvp.Decoder): box = kvp.Parameter(num="?", type=parse_bbox) radius = kvp.Parameter(num="?", type=float) geometry = kvp.Parameter(num="?", type=GEOSGeometry) lon = kvp.Parameter(num="?", type=float) lat = kvp.Parameter(num="?", type=float) relation = kvp.Parameter(num="?", type=enum(("intersects", "contains", "disjoint"), False), default="intersects") uid = kvp.Parameter(num="?")
class WCS20GetCapabilitiesKVPDecoder(kvp.Decoder, SectionsMixIn): sections = kvp.Parameter(type=typelist(lower, ","), num="?", default=["all"]) updatesequence = kvp.Parameter(num="?") acceptversions = kvp.Parameter(type=typelist(str, ","), num="?") acceptformats = kvp.Parameter(type=typelist(str, ","), num="?", default=["text/xml"]) acceptlanguages = kvp.Parameter(type=typelist(str, ","), num="?") cql = kvp.Parameter(num="?") datasetseriescql = kvp.Parameter(num="?")
class WPS10ExecuteKVPDecoder(kvp.Decoder): """ WPS 1.0 Execute HTTP/GET KVP request decoder. """ #pylint: disable=too-few-public-methods identifier = kvp.Parameter() inputs = kvp.Parameter("DataInputs", type=_parse_inputs, num="?", default={}) outputs = kvp.Parameter("ResponseDocument", type=_parse_outputs, num="?", default=[]) raw_response = kvp.Parameter("RawDataOutput", type=_parse_raw_output, num="?") status = kvp.Parameter("status", type=parse_bool, num="?", default=False) lineage = kvp.Parameter("lineage", type=parse_bool, num="?", default=False) store_response = kvp.Parameter("storeExecuteResponse", type=parse_bool, num="?", default=False) @property def response_form(self): """ Get response unified form parsed either from ResponseDocument or RawDataOutput parameters. """ raw_response = self.raw_response if raw_response: return raw_response resp_doc = ResponseDocument(lineage=self.lineage, status=self.status, store_response=self.store_response) for output in self.outputs: # pylint: disable=not-an-iterable resp_doc.set_output(output) return resp_doc
class OpenSearch11BaseDecoder(kvp.Decoder): search_terms = kvp.Parameter("q", num="?") start_index = kvp.Parameter("startIndex", pos_int_zero, num="?", default=0) count = kvp.Parameter("count", pos_int_zero, num="?", default=None) output_encoding = kvp.Parameter("outputEncoding", num="?", default="UTF-8")
class WMS11GetMapDecoder(WMSCommonGetMapDecoder): version = (1, 1) crs = kvp.Parameter('srs', num=1, type=upper)
class WMS13GetMapDecoder(WMSCommonGetMapDecoder): version = (1, 3) crs = kvp.Parameter(num=1, type=upper)
class GetProductKVPDecoder(kvp.Decoder): product_uri = kvp.Parameter('producturi', num=1)
class WMSCommonGetMapDecoder(kvp.Decoder): layers = kvp.Parameter(type=typelist(str, ","), num=1) styles = kvp.Parameter(num="?") bbox = kvp.Parameter(type=parse_bbox, num=1) time = kvp.Parameter(type=parse_time, num="?") width = kvp.Parameter(num=1) height = kvp.Parameter(num=1) format = kvp.Parameter(num=1) bgcolor = kvp.Parameter(num='?') transparent = kvp.Parameter(num='?', default=False, type=parse_transparent) dim_bands = kvp.Parameter(type=typelist(str, ","), num='?') dim_wavelengths = kvp.Parameter(type=typelist(str, ","), num='?') maxcc = kvp.Parameter(type=float, num='?') order = kvp.Parameter(type=str, num='?')
class WCS20GetCoverageKVPDecoder(kvp.Decoder): coverage_id = kvp.Parameter("coverageid", num=1) subsets = kvp.Parameter("subset", type=parse_subset_kvp, num="*") scalefactor = kvp.Parameter("scalefactor", type=float, num="?") scaleaxes = kvp.Parameter("scaleaxes", type=typelist(parse_scaleaxis_kvp, ","), default=(), num="?") scalesize = kvp.Parameter("scalesize", type=typelist(parse_scalesize_kvp, ","), default=(), num="?") scaleextent = kvp.Parameter("scaleextent", type=typelist(parse_scaleextent_kvp, ","), default=(), num="?") rangesubset = kvp.Parameter("rangesubset", type=parse_range_subset_kvp, num="?") format = kvp.Parameter("format", num="?") subsettingcrs = kvp.Parameter("subsettingcrs", num="?") outputcrs = kvp.Parameter("outputcrs", num="?") mediatype = kvp.Parameter("mediatype", num="?") interpolation = kvp.Parameter("interpolation", type=parse_interpolation, num="?")
class WMS13GetLegendGraphicDecoder(kvp.Decoder): layer = kvp.Parameter(num=1) coverage = kvp.Parameter(num="?")
class WCS11DescribeCoverageKVPDecoder(kvp.Decoder): coverage_ids = kvp.Parameter("identifier", type=typelist(separator=","), num=1)
class CQLExtensionDecoder(kvp.Decoder): cql = kvp.Parameter(num="?", type=str)
class WCS20DescribeCoverageKVPDecoder(kvp.Decoder): coverage_ids = kvp.Parameter("coverageid", type=typelist(str, ","), num=1)
class WCS10GetCoverageKVPDecoder(kvp.Decoder): coverage_id = kvp.Parameter("coverage", num=1) crs = kvp.Parameter(num=1) response_crs = kvp.Parameter(num="?") bbox = kvp.Parameter(type=parse_bbox_kvp) width = kvp.Parameter(type=int, num="?") height = kvp.Parameter(type=int, num="?") resx = kvp.Parameter(type=float, num="?") resy = kvp.Parameter(type=float, num="?") format = kvp.Parameter(num=1) interpolation = kvp.Parameter(num="?") exceptions = kvp.Parameter(num="?")
class WMS13Decoder(kvp.Decoder): width = kvp.Parameter(type=int, num="?") height = kvp.Parameter(type=int, num="?") format = kvp.Parameter(num="?") bgcolor = kvp.Parameter(num="?") exceptions = kvp.Parameter(num="?", type=lower, default="xml")
class WPS10GetCapabilitiesKVPDecoder(kvp.Decoder): """ WPS 1.0 GetCapabilities HTTP/GET KVP request decoder. """ #pylint: disable=too-few-public-methods #acceptversions = kvp.Parameter(type=typelist(str, ","), num="?") language = kvp.Parameter(num="?")
class WPS10DescribeProcessKVPDecoder(kvp.Decoder): """ WPS 1.0 DescribeProcess HTTP/GET KVP request decoder. """ #pylint: disable=too-few-public-methods identifiers = kvp.Parameter("identifier", type=typelist(str, ","))
class EarthObservationExtensionDecoder(kvp.Decoder): productType = kvp.Parameter(num="?", type=str) doi = kvp.Parameter(num="?", type=str) platform = kvp.Parameter(num="?", type=str) platformSerialIdentifier = kvp.Parameter(num="?", type=str) instrument = kvp.Parameter(num="?", type=str) sensorType = kvp.Parameter( num="?", type=enum(('OPTICAL', 'RADAR', 'ALTIMETRIC', 'ATMOSPHERIC', 'LIMB'), False)) compositeType = kvp.Parameter(num="?", type=str) processingLevel = kvp.Parameter(num="?", type=str) orbitType = kvp.Parameter(num="?", type=str) spectralRange = kvp.Parameter(num="?", type=str) wavelength = kvp.Parameter(num="?", type=parse_float_range) hasSecurityConstraints = kvp.Parameter(num="?", type=enum(('TRUE', 'FALSE'), False)) dissemination = kvp.Parameter(num="?", type=str) recordSchema = kvp.Parameter(num="?", type=str) parentIdentifier = kvp.Parameter(num="?", type=str) productionStatus = kvp.Parameter(num="?", type=str) acquisitionType = kvp.Parameter(num="?", type=enum( ('NOMINAL', 'CALIBRATION', 'OTHER'), False)) orbitNumber = kvp.Parameter(num="?", type=parse_int_range) orbitDirection = kvp.Parameter(num="?", type=enum(('ASCENDING', 'DESCENDING'), False)) track = kvp.Parameter(num="?", type=str) frame = kvp.Parameter(num="?", type=str) swathIdentifier = kvp.Parameter(num="?", type=str) cloudCover = kvp.Parameter(num="?", type=parse_int_range) snowCover = kvp.Parameter(num="?", type=parse_int_range) lowestLocation = kvp.Parameter(num="?", type=parse_float_range) highestLocation = kvp.Parameter(num="?", type=parse_float_range) productVersion = kvp.Parameter(num="?", type=str) productQualityStatus = kvp.Parameter(num="?", type=enum(('NOMINAL', 'DEGRADED'), False)) productQualityDegradationTag = kvp.Parameter(num="?", type=str) processorName = kvp.Parameter(num="?", type=str) processingCenter = kvp.Parameter(num="?", type=str) creationDate = kvp.Parameter(num="?", type=parse_datetime_range) modificationDate = kvp.Parameter(num="?", type=parse_datetime_range) processingDate = kvp.Parameter(num="?", type=parse_datetime_range) sensorMode = kvp.Parameter(num="?", type=str) archivingCenter = kvp.Parameter(num="?", type=str) processingMode = kvp.Parameter(num="?", type=str) availabilityTime = kvp.Parameter(num="?", type=parse_datetime_range) acquisitionStation = kvp.Parameter(num="?", type=str) acquisitionSubType = kvp.Parameter(num="?", type=str) startTimeFromAscendingNode = kvp.Parameter(num="?", type=parse_int_range) completionTimeFromAscendingNode = kvp.Parameter(num="?", type=parse_int_range) illuminationAzimuthAngle = kvp.Parameter(num="?", type=parse_float_range) illuminationZenithAngle = kvp.Parameter(num="?", type=parse_float_range) illuminationElevationAngle = kvp.Parameter(num="?", type=parse_float_range) polarisationMode = kvp.Parameter(num="?", type=enum( ('S', 'D', 'T', 'Q', 'UNDEFINED'), False)) polarizationChannels = kvp.Parameter(num="?", type=str) antennaLookDirection = kvp.Parameter(num="?", type=str) minimumIncidenceAngle = kvp.Parameter(num="?", type=parse_float_range) maximumIncidenceAngle = kvp.Parameter(num="?", type=parse_float_range) dopplerFrequency = kvp.Parameter(num="?", type=parse_float_range) incidenceAngleVariation = kvp.Parameter(num="?", type=parse_float_range)
class WMSBaseGetMapDecoder(kvp.Decoder): layers = kvp.Parameter(type=typelist(str, ","), num=1) styles = kvp.Parameter(num="?") width = kvp.Parameter(num=1) height = kvp.Parameter(num=1) format = kvp.Parameter(num=1) bgcolor = kvp.Parameter(num='?') transparent = kvp.Parameter(num='?', default=False, type=parse_transparent) bbox = kvp.Parameter('bbox', type=parse_bbox, num=1) srs = kvp.Parameter(num=1) time = kvp.Parameter(type=parse_time, num="?") elevation = kvp.Parameter(type=float, num="?") dim_bands = kvp.Parameter(type=typelist(int_or_str, ","), num="?") dim_wavelengths = kvp.Parameter(type=typelist(float, ","), num="?") dim_range = kvp.Parameter(type=parse_ranges, num="?") cql = kvp.Parameter(num="?") sort_by = kvp.Parameter('sortBy', type=parse_sort_by, num="?")