''' Connections to parc web-services ''' from _io import BytesIO import logging import urllib.request from lxml import etree # @UnresolvedImport from core.pde import PDE_WS_URL logger = logging.getLogger("webservice") class GfWebservice(): """ Parser for the pde's web service """ def __init__(self, name): self._url = "{}/{}".format(PDE_WS_URL, name) self._data = None @property def url(self): return self._url def parse(self): logger.info("Request data from %s", self._url) self._data = urllib.request.urlopen(self._url).read() def __iter__(self): if self._data is None: self.parse() return (elt.attrib for _, elt in etree.iterparse(BytesIO(self._data)) if elt.attrib)