Skip to main content

Pretty print your python HTTP requests

Project description

            Tests Passing    GitHub pull requests    License


Report Bug · Request Feature · Ask Question · Report security bug


Alt


requests-pprint is a Python library that allows you to print your HTTP requests and responses in a pretty format. It is based on the requests library and uses the rich library to print the response in a more readable way.

Table of Contents

Requirements

Here's a breakdown of the packages needed and their versions:

[!NOTE]
The software has been developed and tested using Python 3.12.1. The minimum required version to run the software is Python 3.6. Although the software may work with previous versions, it is not guaranteed.

Installation

From PyPI

requests-pprint can be installed easily as a PyPI package. Just run the following command:

pip3 install requests-pprint

[!IMPORTANT]
For best practices and to avoid potential conflicts with your global Python environment, it is strongly recommended to install this program within a virtual environment. Avoid using the --user option for global installations. We highly recommend using pipx for a safe and isolated installation experience. Therefore, the appropriate command to install requests-pprint would be:

pipx install requests-pprint

Manual installation

If you prefer to install the program manually, follow these steps:

[!NOTE]
This will install the version from the latest commit, not the latest release.

  1. Download the latest version of requests-pprint from this repository:

    git clone https://github.com/YisusChrist/requests-pprint
    cd requests-pprint
    
  2. Install the package:

    poetry install
    

Uninstall

If you installed it from PyPI, you can use the following command:

pipx uninstall requests-pprint

Usage

1. Pretty Print HTTP Request

import requests
from requests_pprint import pprint_http_request

# Prepare a sample HTTP request
url = 'https://api.example.com'
headers = {'User-Agent': 'Mozilla/5.0'}
body = {'key': 'value'}
request = requests.Request('POST', url, headers=headers, json=body)
prepared_request = request.prepare()

# Print the formatted HTTP request
pprint_http_request(prepared_request)

Output:

1

2. Pretty Print HTTP Response

import requests
from requests_pprint import pprint_http_response

# Send a sample HTTP request
response = requests.get('https://example.com')

# Print the formatted HTTP response
pprint_http_response(response)

Output:

2

3. Print Response Summary

import requests
from requests_pprint import print_response_summary

# Send a sample HTTP request
response = requests.get('https://example.com')

# Print a summary of the HTTP response
print_response_summary(response)

Output:

3


Since 2024-07-28, requests-pprint supports asynchronous requests from the aiohttp library. You can use the pprint_async_http_request and pprint_async_http_response functions to print the formatted HTTP request and response, respectively, as well as the print_async_response_summary function to print a summary of the HTTP response.

Here is an example of how to use these functions:

4. Pretty Print Asynchronous HTTP Response

import asyncio
import aiohttp

from requests_pprint import print_async_response_summary

async def main():
    async with aiohttp.ClientSession() as session:
        url = "https://api.example.com"
        headers = {"User-Agent": "Mozilla/5.0"}
        body = {"key": "value"}
        async with session.post(url, headers=headers, json=body) as response:
            await pprint_async_http_response(response)


asyncio.run(main())

Output:

4

5. Pretty Print Asynchronous Response Summary

import asyncio
import aiohttp

from requests_pprint import print_async_response_summary

async def main():
    async with aiohttp.ClientSession() as session:
        url = "https://api.example.com"
        headers = {"User-Agent": "Mozilla/5.0"}
        body = {"key": "value"}
        async with session.post(url, headers=headers, json=body) as response:
            await print_async_response_summary(response)


asyncio.run(main())

Output:

5

Contributors

How do I contribute to requests-pprint?

Before you participate in our delightful community, please read the code of conduct.

I'm far from being an expert and suspect there are many ways to improve – if you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!

We also need people to test out pull requests. So take a look through the open issues and help where you can.

See Contributing for more details.

License

requests-pprint is released under the GPL-3.0 License.

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

requests_pprint-1.1.1.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

requests_pprint-1.1.1-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file requests_pprint-1.1.1.tar.gz.

File metadata

  • Download URL: requests_pprint-1.1.1.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.1 Windows/11

File hashes

Hashes for requests_pprint-1.1.1.tar.gz
Algorithm Hash digest
SHA256 51f1bfa32d8ce4c992fb9cd019f1ecec0db260a3f7ac07b03c7791c3f4b7bef4
MD5 30c6b3262685a82cbc80d38464b67f26
BLAKE2b-256 19ae427a51d01ec592e7a9475217c75acd1243e6cd9099c5a6de2f2bf57c2c9d

See more details on using hashes here.

File details

Details for the file requests_pprint-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: requests_pprint-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.1 Windows/11

File hashes

Hashes for requests_pprint-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1e2b8c66922a2575a3f95b68b8a4a6e53b55a5993d53c0b072c6ca5c40dd3d9b
MD5 56f1ad8761fb82d04d45e12509a3cfa4
BLAKE2b-256 5731749922f65bb47b6d1904159fd390fc0da32eede07ef21e26e68f71b6dfe6

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