2016-07-25 11:01:19 -04:00
|
|
|
from __future__ import (absolute_import, division, print_function)
|
|
|
|
|
2014-05-13 16:18:38 -04:00
|
|
|
from owslib.waterml.wml import SitesResponse, TimeSeriesResponse, VariablesResponse, namespaces
|
2016-07-25 11:01:19 -04:00
|
|
|
from owslib.etree import etree, ElementType
|
2014-05-13 16:18:38 -04:00
|
|
|
|
|
|
|
def ns(namespace):
|
|
|
|
return namespaces.get(namespace)
|
|
|
|
|
|
|
|
class WaterML_1_0(object):
|
|
|
|
def __init__(self, element):
|
|
|
|
|
2016-07-25 11:01:19 -04:00
|
|
|
if isinstance(element, ElementType):
|
2014-05-13 16:18:38 -04:00
|
|
|
self._root = element
|
2016-07-25 11:01:19 -04:00
|
|
|
else:
|
|
|
|
self._root = etree.fromstring(element)
|
2014-05-13 16:18:38 -04:00
|
|
|
|
|
|
|
if hasattr(self._root, 'getroot'):
|
|
|
|
self._root = self._root.getroot()
|
|
|
|
|
|
|
|
self._ns = 'wml1.0'
|
|
|
|
|
|
|
|
@property
|
|
|
|
def response(self):
|
|
|
|
try:
|
|
|
|
if self._root.tag == str(ns(self._ns) + 'variablesResponse'):
|
|
|
|
return VariablesResponse(self._root, self._ns)
|
|
|
|
elif self._root.tag == str(ns(self._ns) + 'timeSeriesResponse'):
|
|
|
|
return TimeSeriesResponse(self._root, self._ns)
|
|
|
|
elif self._root.tag == str(ns(self._ns) + 'sitesResponse'):
|
|
|
|
return SitesResponse(self._root, self._ns)
|
|
|
|
except:
|
|
|
|
raise
|
|
|
|
|
2016-07-25 11:01:19 -04:00
|
|
|
raise ValueError('Unable to determine response type from xml')
|