Skip to main content

Http Utils

Code style: black GitHub

A simple requests session wrapper.

Installation

pip install pip install git+git://github.com/juntossomosmais/http-utils.git

Configuration process

If needed you can provide some settings as environment variables.

HTTP_RETRIES=3
HTTP_BACKOFF_FACTOR=0.1
HTTP_STATUS_FORCELIST=
HTTP_TIMEOUT=30

Usage

The basic usage is to call the request_session as a context manager.

from http_utils.session import request_session


def awesome_request():
    with request_session() as request:
        response = request.get(url="https://www.some-awesome-service.com")
    return response

This will add:

  • A retry mechanism of 3 attempts for status codes (defined in the HTTP_RETRIES variable or as the total parameter)
  • A backoff factor for each retry in seconds (defined in the HTTP_BACKOFF_FACTOR variable or as the backoff_factor parameter)
  • A list of status to force retries (defined in the HTTP_STATUS_FORCELIST variable or as the status_forcelist parameter)
  • A list of allowed methods to request (Defined as ["HEAD", "GET", "PUT", "DELETE", "OPTIONS", "TRACE"] methods by default or as the allowed_methods parameter)
  • A list of hooks (The default hooks used are the raise_for_status and a DEBUG level log for the response body, header and status code)

Helpers

There are also some helper functions that can be used to parse the response object

  • get_response_body: Attemps to return a parsed json response body, returning the response text if it can't.

  • convert_header_to_meta_key: Converts the Django Http Request META header to be separated with a - instead of _

Tests

In order to execute tests, execute the following:

docker-compose up -d tests

This will run the tests in the python 3.9.4, 3.8.5, 3.7.5, 3.6.9 tox environments

Metadata

Release files for http-utils 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for http-utils 0.1.6
File Size Uploaded
http_utils-0.1.6.tar.gz 5.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for http-utils 0.1.6
File Interpreter ABI Platform
http_utils-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 11.2 kB

Release files / http_utils-0.1.6.tar.gz

Download URL http_utils-0.1.6.tar.gz
Size 5.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f58d4bf4fd8e7538e9f45ddbc45d865620dd8f1c2577b4f10cc8053f886aa784
BLAKE2b-256 checksum
How to use checksums
3381b3b6b3f0f082e85a34eac6a092ab528066fd023e4aa7abef9dc4a1b89bb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.10.19 Linux/6.14.0-1017-azure

Release files / http_utils-0.1.6-py3-none-any.whl

Download URL http_utils-0.1.6-py3-none-any.whl
Size 5.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e3334e47f378f5694f1890f3373af827c727b38fb99509a9a20726950c59758
BLAKE2b-256 checksum
How to use checksums
5a7dca6f250fdb11583be326697c7b1f36d6c3fd8c224824f1a47a0b1df6805f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.10.19 Linux/6.14.0-1017-azure

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page