Código fonte de legislei.SDKs.CamaraDeputados.webservice

import xml.etree.ElementTree as ET

from .api import Base
from .exceptions import (CamaraDeputadosConnectionError,
                         CamaraDeputadosInvalidResponse)


[documentos]class Webservice(Base): """ Classe base de operações da antiga API de webservices """ def __init__(self): super().__init__() self.camara_dos_deputados_endpoint = 'https://www.camara.leg.br/SitCamaraWS/'
[documentos] def get_XML(self, path, **kwargs): """ Obtém um XML através de HTTP GET e o processa """ r = self._make_request( "GET", "{}{}".format(self.camara_dos_deputados_endpoint, path), fields=kwargs ) if r.status != 200: raise CamaraDeputadosConnectionError( self._build_url(r.geturl(), kwargs), r.status) else: try: return ET.fromstring(r.data.decode('utf-8')) except ET.ParseError: raise CamaraDeputadosInvalidResponse()
[documentos] def get_element_attr(self, elem, attr): """ Obtém o atributo especificado de elemento, se existir Se o atributo não existir, retorna None :param elem: Elemento XML :type elem: Element :param attr: Nome de atributo :type attr: String :return: Conteúdo do atributo :rtype: String """ return elem.attrib[attr].strip() if attr in elem.attrib else None