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.10.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

http_types-0.0.10-py2.py3-none-any.whl (7.9 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: http-types-0.0.10.tar.gz
  • Upload date:
  • Size: 7.5 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.10.tar.gz
Algorithm Hash digest
SHA256 515c106b1f2ac65521696bc832030965f2615f25d86a4c3a61dab0ba0ae5c727
MD5 f79b374d2dd40a732e35b63252f9f464
BLAKE2b-256 639762ab9e262588377f593fc6e0561051e287690801571fd8422afdaf53f45c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: http_types-0.0.10-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.9 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.10-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6a01865da4646aad2bbeaf25188b460c6380204f6279ca746a869508276a08b5
MD5 854fa50f32e93a996c218be143dcfcca
BLAKE2b-256 78877ed0eed119e5e1075271ef008401a029b7cc224d46852b0c1a9fa029bfde

See more details on using hashes here.

Supported by

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