Skip to main content

Types for HTTP requests and responses

Project description

HTTP Types in Python

CircleCI PyPi License

Python (3.6 or later) library to read and write records of HTTP exchanges in the HTTP types format.

Installation

pip install http-types

Writing HTTP exchanges

Using HttpExchangeWritera recording of HTTP traffic can be serialised for use with any program that can handle the HTTP Types format:

request = RequestBuilder.from_dict({
        "host": "api.github.com",
        "protocol": "https",
        "method": "get",
        "pathname": "/v1/users",
        "query": {"a": "b", "q": ["1", "2"]},
    }
)

response = ResponseBuilder.from_dict({
        "statusCode": 200,
        "headers": {"content-type": "text/plain"},
        "body": "(response body string)",
    }
)

exchange = HttpExchange(request=request, response=response)

with tempfile.TemporaryFile(mode="w") as output:
    writer = HttpExchangeWriter(output)
    writer.write(exchange)

Reading HTTP exchanges

With HttpExchangeReader recordings in the HTTP Types format can be read for processing:

for exchange in HttpExchangeReader.from_jsonl(input_file):
    assert exchange["request"]["method"] == "get"
    assert exchange["request"]["protocol"] == "https"
    assert exchange["response"]["statusCode"] == 200

Development

Initial setup:

  1. Create a new virtual environment.
  2. Install dependencies: pip install --upgrade -e '.[dev]'
  3. Install pyright.

To test, run python setup.py test, which will:

Publishing

  1. Bump the version in setup.py if the version is the same as in the published package. Commit and push.
  2. Run python setup.py test and python setup.py dist to check that everything works.
  3. To build and upload the package, run python setup.py upload. Insert PyPI credentials to upload the package to PyPI. The command will also run git tag to tag the commit as a release and push the tags to remote.

To see what the different commands do, see Command classes in setup.py.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

http-types-0.0.9.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

http_types-0.0.9-py2.py3-none-any.whl (7.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file http-types-0.0.9.tar.gz.

File metadata

  • Download URL: http-types-0.0.9.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.3

File hashes

Hashes for http-types-0.0.9.tar.gz
Algorithm Hash digest
SHA256 de77e8de9c6c0a796d616d19e6f704bf5436b064d9775bde72d3849979187736
MD5 7c370eab34317c52cc989abf0ce7736e
BLAKE2b-256 54c6705959abe67441c9c2fa11bcbcb389deaa558aec093c560a90eb9aeab9bb

See more details on using hashes here.

File details

Details for the file http_types-0.0.9-py2.py3-none-any.whl.

File metadata

  • Download URL: http_types-0.0.9-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.3

File hashes

Hashes for http_types-0.0.9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 09e51389e0a914050bc02a69a0ebb5aa2a96ed415940845c3d884512fa6b0ab7
MD5 02580d940b4c360a981fbc417b160a22
BLAKE2b-256 3e83ce3668121463124b3e5e2ccc20e8933bb0f3efb685a323046d46b86114b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page