
Security News
Deno 2.6 + Socket: Supply Chain Defense In Your CLI
Deno 2.6 introduces deno audit with a new --socket flag that plugs directly into Socket to bring supply chain security checks into the Deno CLI.
http-exceptions
Advanced tools
Raisable HTTP Exceptions
Simply install the package from PyPI.
$ pip install -U http-exceptions
And that is it, you are ready to raise HTTP Exceptions.
Saves writing boilerplate code:
Converts this:
# e.g. app/internal.py
def some_function() -> None:
raise SomeError()
# e.g. app/api.py
def api(request: Request) -> Response:
try:
response = some_function()
except SomeError:
response = Response(status_code=403)
return response
into this:
# e.g. app/internal.py
from http_exceptions import ForbiddenException
def some_function() -> None:
raise ForbiddenException()
# e.g. app/api.py
def api(request: Request) -> None:
return some_function()
Dynamic exception raising:
from http_exceptions import HTTPException
def raise_from_status(response: Response) -> None:
if 400 <= response.status < 600:
raise HTTPException.from_status_code(status_code=response.status_code)(message=response.text)
>>> response = Response(status_code=403)
>>> raise_from_status(response=response) # ForbiddenException raised
HTTPExceptionBase class that provides all the exceptions to be raised.
HTTPExceptions.from_status_code(status_code=status_code)Returns the relevant Exception corresponding to status_code
e.g. HTTPExceptions.from_status_code(status_code=431) -> RequestHeaderFieldsTooLargeException
ClientExceptionSubclass of HTTPException serving as a base class for exceptions with statuses in the [400, 499] range.
from http_exceptions import ClientException, RequestHeaderFieldsTooLargeException
try:
raise RequestHeaderFieldsTooLargeException # 431 - Client exception
except ClientException:
# exception is caught here
pass
ServerExceptionSubclass of HTTPException serving as a base class for exceptions with statuses in the [500, 599] range.
from http_exceptions import HTTPVersionNotSupportedException, ServerException
try:
raise HTTPVersionNotSupportedException # 505 - Server exception
except ServerException:
# exception is caught here
pass
400 <= status <= 499400: BadRequestException
401: UnauthorizedException
402: PaymentRequiredException
403: ForbiddenException
404: NotFoundException
405: MethodNotAllowedException
406: NotAcceptableException
407: ProxyAuthenticationRequiredException
408: RequestTimeoutException
409: ConflictException
410: GoneException
411: LengthRequiredException
412: PreconditionFailedException
413: PayloadTooLargeException
414: URITooLongException
415: UnsupportedMediaTypeException
416: RangeNotSatisfiableException
417: ExpectationFailedException
418: ImATeapotException
421: MisdirectedRequestException
422: UnprocessableEntityException
423: LockedException
424: FailedDependencyException
425: TooEarlyException
426: UpgradeRequiredException
428: PreconditionRequiredException
429: TooManyRequestsException
431: RequestHeaderFieldsTooLargeException
444: NoResponseException
451: UnavailableForLegalReasonsException
500 <= status <= 599500: InternalServerErrorException
501: NotImplementedException
502: BadGatewayException
503: ServiceUnavailableException
504: GatewayTimeoutException
505: HTTPVersionNotSupportedException
506: VariantAlsoNegotiatesException
507: InsufficientStorageException
508: LoopDetectedException
510: NotExtendedException
511: NetworkAuthenticationRequiredException
Contributions are welcome via pull requests.
$ git clone git@github.com:DeveloperRSquared/http-exceptions.git
$ cd http-exceptions
$ poetry install
$ poetry shell
Tools including black, mypy etc. will run automatically if you install pre-commit using the instructions below
$ pre-commit install
$ pre-commit run --all-files
$ poetry run pytest
FAQs
Raisable HTTP Exceptions
We found that http-exceptions demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Deno 2.6 introduces deno audit with a new --socket flag that plugs directly into Socket to bring supply chain security checks into the Deno CLI.

Security News
New DoS and source code exposure bugs in React Server Components and Next.js: what’s affected and how to update safely.

Security News
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.