Source code for pandasdmx.source.abs

import re

from . import Source as BaseSource

re_500 = re.compile(r"(An error has occurred)\.")


[docs]class Source(BaseSource): _id = "ABS"
[docs] def handle_response(self, response, content): """Handle ABS' own text/html error page for some endpoints.""" ctype = response.headers.get("content-type", "") if "text/html" in ctype: buf = "" while True: chunk = content.read().decode() if len(chunk) == 0: break buf += chunk match = re_500.search(buf) if match: # Overwrite the original response (response.reason,) = match.groups() response.status_code = 500 response.raise_for_status() raise NotImplementedError