Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# PyWPS Process v.net.path successfully calculated
#
# OR
#
#
#
#
# Attribute null not found in feature collection
#
#
#
#
statusEl = root.find(nspath('Status/*', ns=wpsns))
self.status = statusEl.tag.split('}')[1]
# creationTime attribute
element = root.find(nspath('Status', ns=wpsns))
self.creationTime = testXMLAttribute(element, 'creationTime')
# get progress info
if self.status == 'ProcessSucceeded':
self.percentCompleted = 100
else:
try:
percentCompleted = int(statusEl.get('percentCompleted'))
self.percentCompleted = percentCompleted
except Exception:
pass
# get status message
self.statusMessage = statusEl.text
# exceptions ?
for element in statusEl:
if element.tag.endswith('ExceptionReport'):
self._parseExceptionReport(element)
address = elem.find(nspath('ContactAddress', WMS_NAMESPACE))
if address is not None:
street = address.find(nspath('Address', WMS_NAMESPACE))
if street is not None:
self.address = street.text
city = address.find(nspath('City', WMS_NAMESPACE))
if city is not None:
self.city = city.text
region = address.find(nspath('StateOrProvince', WMS_NAMESPACE))
if region is not None:
self.region = region.text
postcode = address.find(nspath('PostCode', WMS_NAMESPACE))
if postcode is not None:
self.postcode = postcode.text
country = address.find(nspath('Country', WMS_NAMESPACE))
if country is not None:
self.country = country.text
organization = elem.find(nspath('ContactPersonPrimary/ContactOrganization', WMS_NAMESPACE))
if organization is not None:
self.organization = organization.text
else:
self.organization = None
position = elem.find(nspath('ContactPosition', WMS_NAMESPACE))
if position is not None:
self.position = position.text
def __init__(self, elem, parent):
"""."""
self.id = elem.find(nspath('Name',ns=WFS_NAMESPACE)).text
self.title = elem.find(nspath('Title',ns=WFS_NAMESPACE)).text
abstract = elem.find(nspath('Abstract',ns=WFS_NAMESPACE))
if abstract is not None:
self.abstract = abstract.text
else:
self.abstract = None
self.keywords = [f.text for f in elem.findall(nspath('Keywords',ns=WFS_NAMESPACE))]
# bboxes
self.boundingBox = None
b = elem.find(nspath('BoundingBox',ns=WFS_NAMESPACE))
if b is not None:
self.boundingBox = (float(b.attrib['minx']),float(b.attrib['miny']),
float(b.attrib['maxx']), float(b.attrib['maxy']),
b.attrib['SRS'])
self.boundingBoxWGS84 = None
b = elem.find(nspath('LatLongBoundingBox',ns=WFS_NAMESPACE))
if b is not None:
self.boundingBoxWGS84 = (
float(b.attrib['minx']),float(b.attrib['miny']),
float(b.attrib['maxx']), float(b.attrib['maxy']),
)
# crs options
self.crsOptions = [srs.text for srs in elem.findall(nspath('SRS'))]
# verbs
self.verbOptions = [op.tag for op \
def __init__(self, root):
self.code = root.attrib.get("exceptionCode", None)
self.locator = root.attrib.get("locator", None)
textEl = root.find(nspath('ExceptionText', ns=getNamespace(root)))
if textEl is not None:
self.text = textEl.text
else:
self.text = ""
val = self._root.find(util.nspath('ProviderSite', namespace))
if val is not None:
self.site = util.testXMLValue(val.attrib.get(util.nspath('href', XLINK_NAMESPACE)), True)
else:
self.site = None
val = self._root.find(util.nspath('ServiceContact/Role', namespace))
self.role = util.testXMLValue(val)
val = self._root.find(util.nspath('ServiceContact/IndividualName', namespace))
self.name = util.testXMLValue(val)
val = self._root.find(util.nspath('ServiceContact/PositionName', namespace))
self.position = util.testXMLValue(val)
val = self._root.find(util.nspath('ServiceContact/ContactInfo/Phone/Voice', namespace))
self.phone = util.testXMLValue(val)
val = self._root.find(util.nspath('ServiceContact/ContactInfo/Phone/Facsimile', namespace))
self.fax = util.testXMLValue(val)
val = self._root.find(util.nspath('ServiceContact/ContactInfo/Address/DeliveryPoint', namespace))
self.address = util.testXMLValue(val)
val = self._root.find(util.nspath('ServiceContact/ContactInfo/Address/City', namespace))
self.city = util.testXMLValue(val)
val = self._root.find(util.nspath('ServiceContact/ContactInfo/Address/AdministrativeArea', namespace))
self.region = util.testXMLValue(val)
val = self._root.find(util.nspath('ServiceContact/ContactInfo/Address/PostalCode', namespace))
self.postcode = util.testXMLValue(val)
# verbs
self.verbOptions = [op.tag for op \
in parent.findall(nspath('Operations/*',ns=WFS_NAMESPACE))]
self.verbOptions + [op.tag for op \
in elem.findall(nspath('Operations/*',ns=WFS_NAMESPACE)) \
if op.tag not in self.verbOptions]
#others not used but needed for iContentMetadata harmonisation
self.styles=None
self.timepositions=None
self.defaulttimeposition=None
# MetadataURLs
self.metadataUrls = []
for m in elem.findall(nspath('MetadataURL', ns=WFS_NAMESPACE)):
metadataUrl = {
'url': testXMLValue(m.attrib['{http://www.w3.org/1999/xlink}href'], attrib=True)
}
self.metadataUrls.append(metadataUrl)
if parse_remote_metadata:
self.parse_remote_metadata(timeout)
def __init__(self, elem, parent):
"""."""
self.id = elem.find(nspath('Name',ns=WFS_NAMESPACE)).text
self.title = elem.find(nspath('Title',ns=WFS_NAMESPACE)).text
abstract = elem.find(nspath('Abstract',ns=WFS_NAMESPACE))
if abstract is not None:
self.abstract = abstract.text
else:
self.abstract = None
self.keywords = [f.text for f in elem.findall(nspath('Keywords',ns=WFS_NAMESPACE))]
# bboxes
self.boundingBox = None
b = elem.find(nspath('BoundingBox',ns=WFS_NAMESPACE))
if b is not None:
self.boundingBox = (float(b.attrib['minx']),float(b.attrib['miny']),
float(b.attrib['maxx']), float(b.attrib['maxy']),
b.attrib['SRS'])
self.boundingBoxWGS84 = None
b = elem.find(nspath('LatLongBoundingBox',ns=WFS_NAMESPACE))
if b is not None:
self.boundingBoxWGS84 = (
float(b.attrib['minx']),float(b.attrib['miny']),
float(b.attrib['maxx']), float(b.attrib['maxy']),
)
# crs options
def __init__(self, elem, namespace=DEFAULT_OWS_NAMESPACE):
self.url = None
self.title = None
self.role = None
if elem is not None:
urlattrib = elem.attrib.get(nspath('href', XLINK_NAMESPACE))
if urlattrib is not None:
self.url = testXMLValue(urlattrib, True)
titleattrib = elem.attrib.get(nspath('title', XLINK_NAMESPACE))
if titleattrib is not None:
self.title = testXMLValue(titleattrib, True)
roleattrib = elem.attrib.get(nspath('role', XLINK_NAMESPACE))
if roleattrib is not None:
self.role = testXMLValue(roleattrib, True)
# xmlns:ows="http://www.opengis.net/ows/1.1"
# xmlns:xlink="http://www.w3.org/1999/xlink">
if len(self.dataInputs) > 0:
log.debug('clean data inputs')
self.dataInputs[:] = []
for inputElement in root.findall(nspath('DataInputs/Input', ns=wpsns)):
self.dataInputs.append(Output(inputElement))
if self.verbose is True:
dump(self.dataInputs[-1])
#
# xmlns:ns="http://www.opengis.net/wps/1.0.0"
if len(self.processOutputs) > 0:
log.debug('clean process outputs')
self.processOutputs[:] = []
for outputElement in root.findall(nspath('ProcessOutputs/Output', ns=wpsns)):
self.processOutputs.append(Output(outputElement))
if self.verbose is True:
dump(self.processOutputs[-1])
style['legend'] = legend.attrib['{http://www.w3.org/1999/xlink}href']
lgd = s.find(nspath('LegendURL', WMS_NAMESPACE))
if lgd is not None:
if 'width' in lgd.attrib.keys():
style['legend_width'] = lgd.attrib.get('width')
if 'height' in lgd.attrib.keys():
style['legend_height'] = lgd.attrib.get('height')
lgd_format = lgd.find(nspath('Format', WMS_NAMESPACE))
if lgd_format is not None:
style['legend_format'] = lgd_format.text.strip()
self.styles[name.text] = style
# keywords
self.keywords = [f.text for f in elem.findall(nspath('KeywordList/Keyword', WMS_NAMESPACE))]
# extents replaced by dimensions of name
# comment by Soren Scott
# 500, 490, 480
# it can be repeated with the same name so ? this assumes a single one to match 1.1.1
self.timepositions = None
self.defaulttimeposition = None
time_dimension = None
for dim in elem.findall(nspath('Dimension', WMS_NAMESPACE)):
dim_name = dim.attrib.get('name')
if dim_name is not None and dim_name.lower() == 'time':
time_dimension = dim
if time_dimension is not None: