From 2bb706fedafc0371fe32b29ecf079ca53cfc73c3 Mon Sep 17 00:00:00 2001 From: JustAnotherArchivist Date: Wed, 30 Jun 2021 21:44:02 +0000 Subject: [PATCH] Dump request and response attributes of RequestExceptions Cf. #243 --- snscrape/_cli.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/snscrape/_cli.py b/snscrape/_cli.py index bdcc71e..729fae0 100644 --- a/snscrape/_cli.py +++ b/snscrape/_cli.py @@ -79,11 +79,21 @@ def _requests_response_repr(name, response, withHistory = True): return ''.join(ret) +def _requests_exception_repr(name, exc): + ret = [] + ret.append(f'{name} = {exc!r}') + ret.append(f'\n ' + _repr(f'{name}.request', exc.request).replace('\n', '\n ')) + ret.append(f'\n ' + _repr(f'{name}.response', exc.response).replace('\n', '\n ')) + return ''.join(ret) + + def _repr(name, value): if type(value) is requests.Response: return _requests_response_repr(name, value) if type(value) in (requests.PreparedRequest, requests.Request): return _requests_request_repr(name, value) + if isinstance(value, requests.exceptions.RequestException): + return _requests_exception_repr(name, value) if isinstance(value, dict): return f'{name} = <{type(value).__module__}.{type(value).__name__}>\n ' + \ '\n '.join(_repr(f'{name}[{k!r}]', v).replace('\n', '\n ') for k, v in value.items())