''' Connections to parc web-services ''' from _io import BytesIO import logging import urllib.request from lxml import etree # @UnresolvedImport logger = logging.getLogger("webservice") PDE_WS_URL = r"http://webservices.bas-rhin.fr/CG67.AstreGF.WebServices/public/WsPDE.asmx" # PDE_WS_URL = 'http://localhost:2890/public/WsPDE.asmx' 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)