Add httperrors.py.
I'm on the fence about whether I'll really migrate everything over to use this, but it's been sitting on my computer for weeks and I haven't decided to delete it yet, so let's go.
This commit is contained in:
parent
bcb6c7df19
commit
4e4fcdb77f
1 changed files with 257 additions and 0 deletions
257
voussoirkit/httperrors.py
Normal file
257
voussoirkit/httperrors.py
Normal file
|
@ -0,0 +1,257 @@
|
||||||
|
'''
|
||||||
|
This module provides individual exception classes for all HTTP statuses between
|
||||||
|
400 and 599. This makes try/catch code involving status codes easier to look at.
|
||||||
|
Instead of:
|
||||||
|
|
||||||
|
try:
|
||||||
|
...
|
||||||
|
except requests.exceptions.ConnectionError:
|
||||||
|
...
|
||||||
|
except requests.exceptions.Timeout:
|
||||||
|
...
|
||||||
|
except requests.exceptions.HTTPError as exc:
|
||||||
|
if exc.status_code >= 500:
|
||||||
|
...
|
||||||
|
elif exc.status_code == 403:
|
||||||
|
...
|
||||||
|
|
||||||
|
we can write:
|
||||||
|
|
||||||
|
try:
|
||||||
|
...
|
||||||
|
except requests.exceptions.ConnectionError:
|
||||||
|
...
|
||||||
|
except requests.exceptions.Timeout:
|
||||||
|
...
|
||||||
|
except httperrors.HTTP5XX:
|
||||||
|
...
|
||||||
|
except httperrors.HTTP403:
|
||||||
|
...
|
||||||
|
|
||||||
|
with more harmonious indentation.
|
||||||
|
|
||||||
|
All of these exceptions inherit from requests.exceptions.HTTPError, so existing
|
||||||
|
code will not be affected.
|
||||||
|
'''
|
||||||
|
import requests
|
||||||
|
|
||||||
|
class HTTP4XX(requests.exceptions.HTTPError): pass
|
||||||
|
class HTTP400(HTTP4XX): pass
|
||||||
|
class HTTP401(HTTP4XX): pass
|
||||||
|
class HTTP402(HTTP4XX): pass
|
||||||
|
class HTTP403(HTTP4XX): pass
|
||||||
|
class HTTP404(HTTP4XX): pass
|
||||||
|
class HTTP405(HTTP4XX): pass
|
||||||
|
class HTTP406(HTTP4XX): pass
|
||||||
|
class HTTP407(HTTP4XX): pass
|
||||||
|
class HTTP408(HTTP4XX): pass
|
||||||
|
class HTTP409(HTTP4XX): pass
|
||||||
|
class HTTP410(HTTP4XX): pass
|
||||||
|
class HTTP411(HTTP4XX): pass
|
||||||
|
class HTTP412(HTTP4XX): pass
|
||||||
|
class HTTP413(HTTP4XX): pass
|
||||||
|
class HTTP414(HTTP4XX): pass
|
||||||
|
class HTTP415(HTTP4XX): pass
|
||||||
|
class HTTP416(HTTP4XX): pass
|
||||||
|
class HTTP417(HTTP4XX): pass
|
||||||
|
class HTTP418(HTTP4XX): pass
|
||||||
|
class HTTP419(HTTP4XX): pass
|
||||||
|
class HTTP420(HTTP4XX): pass
|
||||||
|
class HTTP421(HTTP4XX): pass
|
||||||
|
class HTTP422(HTTP4XX): pass
|
||||||
|
class HTTP423(HTTP4XX): pass
|
||||||
|
class HTTP424(HTTP4XX): pass
|
||||||
|
class HTTP425(HTTP4XX): pass
|
||||||
|
class HTTP426(HTTP4XX): pass
|
||||||
|
class HTTP427(HTTP4XX): pass
|
||||||
|
class HTTP428(HTTP4XX): pass
|
||||||
|
class HTTP429(HTTP4XX): pass
|
||||||
|
class HTTP430(HTTP4XX): pass
|
||||||
|
class HTTP431(HTTP4XX): pass
|
||||||
|
class HTTP432(HTTP4XX): pass
|
||||||
|
class HTTP433(HTTP4XX): pass
|
||||||
|
class HTTP434(HTTP4XX): pass
|
||||||
|
class HTTP435(HTTP4XX): pass
|
||||||
|
class HTTP436(HTTP4XX): pass
|
||||||
|
class HTTP437(HTTP4XX): pass
|
||||||
|
class HTTP438(HTTP4XX): pass
|
||||||
|
class HTTP439(HTTP4XX): pass
|
||||||
|
class HTTP440(HTTP4XX): pass
|
||||||
|
class HTTP441(HTTP4XX): pass
|
||||||
|
class HTTP442(HTTP4XX): pass
|
||||||
|
class HTTP443(HTTP4XX): pass
|
||||||
|
class HTTP444(HTTP4XX): pass
|
||||||
|
class HTTP445(HTTP4XX): pass
|
||||||
|
class HTTP446(HTTP4XX): pass
|
||||||
|
class HTTP447(HTTP4XX): pass
|
||||||
|
class HTTP448(HTTP4XX): pass
|
||||||
|
class HTTP449(HTTP4XX): pass
|
||||||
|
class HTTP450(HTTP4XX): pass
|
||||||
|
class HTTP451(HTTP4XX): pass
|
||||||
|
class HTTP452(HTTP4XX): pass
|
||||||
|
class HTTP453(HTTP4XX): pass
|
||||||
|
class HTTP454(HTTP4XX): pass
|
||||||
|
class HTTP455(HTTP4XX): pass
|
||||||
|
class HTTP456(HTTP4XX): pass
|
||||||
|
class HTTP457(HTTP4XX): pass
|
||||||
|
class HTTP458(HTTP4XX): pass
|
||||||
|
class HTTP459(HTTP4XX): pass
|
||||||
|
class HTTP460(HTTP4XX): pass
|
||||||
|
class HTTP461(HTTP4XX): pass
|
||||||
|
class HTTP462(HTTP4XX): pass
|
||||||
|
class HTTP463(HTTP4XX): pass
|
||||||
|
class HTTP464(HTTP4XX): pass
|
||||||
|
class HTTP465(HTTP4XX): pass
|
||||||
|
class HTTP466(HTTP4XX): pass
|
||||||
|
class HTTP467(HTTP4XX): pass
|
||||||
|
class HTTP468(HTTP4XX): pass
|
||||||
|
class HTTP469(HTTP4XX): pass
|
||||||
|
class HTTP470(HTTP4XX): pass
|
||||||
|
class HTTP471(HTTP4XX): pass
|
||||||
|
class HTTP472(HTTP4XX): pass
|
||||||
|
class HTTP473(HTTP4XX): pass
|
||||||
|
class HTTP474(HTTP4XX): pass
|
||||||
|
class HTTP475(HTTP4XX): pass
|
||||||
|
class HTTP476(HTTP4XX): pass
|
||||||
|
class HTTP477(HTTP4XX): pass
|
||||||
|
class HTTP478(HTTP4XX): pass
|
||||||
|
class HTTP479(HTTP4XX): pass
|
||||||
|
class HTTP480(HTTP4XX): pass
|
||||||
|
class HTTP481(HTTP4XX): pass
|
||||||
|
class HTTP482(HTTP4XX): pass
|
||||||
|
class HTTP483(HTTP4XX): pass
|
||||||
|
class HTTP484(HTTP4XX): pass
|
||||||
|
class HTTP485(HTTP4XX): pass
|
||||||
|
class HTTP486(HTTP4XX): pass
|
||||||
|
class HTTP487(HTTP4XX): pass
|
||||||
|
class HTTP488(HTTP4XX): pass
|
||||||
|
class HTTP489(HTTP4XX): pass
|
||||||
|
class HTTP490(HTTP4XX): pass
|
||||||
|
class HTTP491(HTTP4XX): pass
|
||||||
|
class HTTP492(HTTP4XX): pass
|
||||||
|
class HTTP493(HTTP4XX): pass
|
||||||
|
class HTTP494(HTTP4XX): pass
|
||||||
|
class HTTP495(HTTP4XX): pass
|
||||||
|
class HTTP496(HTTP4XX): pass
|
||||||
|
class HTTP497(HTTP4XX): pass
|
||||||
|
class HTTP498(HTTP4XX): pass
|
||||||
|
class HTTP499(HTTP4XX): pass
|
||||||
|
|
||||||
|
class HTTP5XX(requests.exceptions.HTTPError): pass
|
||||||
|
class HTTP500(HTTP5XX): pass
|
||||||
|
class HTTP501(HTTP5XX): pass
|
||||||
|
class HTTP502(HTTP5XX): pass
|
||||||
|
class HTTP503(HTTP5XX): pass
|
||||||
|
class HTTP504(HTTP5XX): pass
|
||||||
|
class HTTP505(HTTP5XX): pass
|
||||||
|
class HTTP506(HTTP5XX): pass
|
||||||
|
class HTTP507(HTTP5XX): pass
|
||||||
|
class HTTP508(HTTP5XX): pass
|
||||||
|
class HTTP509(HTTP5XX): pass
|
||||||
|
class HTTP510(HTTP5XX): pass
|
||||||
|
class HTTP511(HTTP5XX): pass
|
||||||
|
class HTTP512(HTTP5XX): pass
|
||||||
|
class HTTP513(HTTP5XX): pass
|
||||||
|
class HTTP514(HTTP5XX): pass
|
||||||
|
class HTTP515(HTTP5XX): pass
|
||||||
|
class HTTP516(HTTP5XX): pass
|
||||||
|
class HTTP517(HTTP5XX): pass
|
||||||
|
class HTTP518(HTTP5XX): pass
|
||||||
|
class HTTP519(HTTP5XX): pass
|
||||||
|
class HTTP520(HTTP5XX): pass
|
||||||
|
class HTTP521(HTTP5XX): pass
|
||||||
|
class HTTP522(HTTP5XX): pass
|
||||||
|
class HTTP523(HTTP5XX): pass
|
||||||
|
class HTTP524(HTTP5XX): pass
|
||||||
|
class HTTP525(HTTP5XX): pass
|
||||||
|
class HTTP526(HTTP5XX): pass
|
||||||
|
class HTTP527(HTTP5XX): pass
|
||||||
|
class HTTP528(HTTP5XX): pass
|
||||||
|
class HTTP529(HTTP5XX): pass
|
||||||
|
class HTTP530(HTTP5XX): pass
|
||||||
|
class HTTP531(HTTP5XX): pass
|
||||||
|
class HTTP532(HTTP5XX): pass
|
||||||
|
class HTTP533(HTTP5XX): pass
|
||||||
|
class HTTP534(HTTP5XX): pass
|
||||||
|
class HTTP535(HTTP5XX): pass
|
||||||
|
class HTTP536(HTTP5XX): pass
|
||||||
|
class HTTP537(HTTP5XX): pass
|
||||||
|
class HTTP538(HTTP5XX): pass
|
||||||
|
class HTTP539(HTTP5XX): pass
|
||||||
|
class HTTP540(HTTP5XX): pass
|
||||||
|
class HTTP541(HTTP5XX): pass
|
||||||
|
class HTTP542(HTTP5XX): pass
|
||||||
|
class HTTP543(HTTP5XX): pass
|
||||||
|
class HTTP544(HTTP5XX): pass
|
||||||
|
class HTTP545(HTTP5XX): pass
|
||||||
|
class HTTP546(HTTP5XX): pass
|
||||||
|
class HTTP547(HTTP5XX): pass
|
||||||
|
class HTTP548(HTTP5XX): pass
|
||||||
|
class HTTP549(HTTP5XX): pass
|
||||||
|
class HTTP550(HTTP5XX): pass
|
||||||
|
class HTTP551(HTTP5XX): pass
|
||||||
|
class HTTP552(HTTP5XX): pass
|
||||||
|
class HTTP553(HTTP5XX): pass
|
||||||
|
class HTTP554(HTTP5XX): pass
|
||||||
|
class HTTP555(HTTP5XX): pass
|
||||||
|
class HTTP556(HTTP5XX): pass
|
||||||
|
class HTTP557(HTTP5XX): pass
|
||||||
|
class HTTP558(HTTP5XX): pass
|
||||||
|
class HTTP559(HTTP5XX): pass
|
||||||
|
class HTTP560(HTTP5XX): pass
|
||||||
|
class HTTP561(HTTP5XX): pass
|
||||||
|
class HTTP562(HTTP5XX): pass
|
||||||
|
class HTTP563(HTTP5XX): pass
|
||||||
|
class HTTP564(HTTP5XX): pass
|
||||||
|
class HTTP565(HTTP5XX): pass
|
||||||
|
class HTTP566(HTTP5XX): pass
|
||||||
|
class HTTP567(HTTP5XX): pass
|
||||||
|
class HTTP568(HTTP5XX): pass
|
||||||
|
class HTTP569(HTTP5XX): pass
|
||||||
|
class HTTP570(HTTP5XX): pass
|
||||||
|
class HTTP571(HTTP5XX): pass
|
||||||
|
class HTTP572(HTTP5XX): pass
|
||||||
|
class HTTP573(HTTP5XX): pass
|
||||||
|
class HTTP574(HTTP5XX): pass
|
||||||
|
class HTTP575(HTTP5XX): pass
|
||||||
|
class HTTP576(HTTP5XX): pass
|
||||||
|
class HTTP577(HTTP5XX): pass
|
||||||
|
class HTTP578(HTTP5XX): pass
|
||||||
|
class HTTP579(HTTP5XX): pass
|
||||||
|
class HTTP580(HTTP5XX): pass
|
||||||
|
class HTTP581(HTTP5XX): pass
|
||||||
|
class HTTP582(HTTP5XX): pass
|
||||||
|
class HTTP583(HTTP5XX): pass
|
||||||
|
class HTTP584(HTTP5XX): pass
|
||||||
|
class HTTP585(HTTP5XX): pass
|
||||||
|
class HTTP586(HTTP5XX): pass
|
||||||
|
class HTTP587(HTTP5XX): pass
|
||||||
|
class HTTP588(HTTP5XX): pass
|
||||||
|
class HTTP589(HTTP5XX): pass
|
||||||
|
class HTTP590(HTTP5XX): pass
|
||||||
|
class HTTP591(HTTP5XX): pass
|
||||||
|
class HTTP592(HTTP5XX): pass
|
||||||
|
class HTTP593(HTTP5XX): pass
|
||||||
|
class HTTP594(HTTP5XX): pass
|
||||||
|
class HTTP595(HTTP5XX): pass
|
||||||
|
class HTTP596(HTTP5XX): pass
|
||||||
|
class HTTP597(HTTP5XX): pass
|
||||||
|
class HTTP598(HTTP5XX): pass
|
||||||
|
class HTTP599(HTTP5XX): pass
|
||||||
|
|
||||||
|
_requests_raise_for_status = requests.Response.raise_for_status
|
||||||
|
|
||||||
|
def monkeypatch_requests():
|
||||||
|
import requests
|
||||||
|
requests.Response.raise_for_status = raise_for_status
|
||||||
|
|
||||||
|
def raise_for_status(response):
|
||||||
|
try:
|
||||||
|
_requests_raise_for_status(response)
|
||||||
|
except requests.exceptions.HTTPError as exc:
|
||||||
|
cls = globals().get(f'HTTP{response.status_code}', None)
|
||||||
|
if not cls:
|
||||||
|
raise
|
||||||
|
|
||||||
|
new_exc = cls(request=exc.request,response=exc.response)
|
||||||
|
raise new_exc from exc
|
Loading…
Reference in a new issue