Pretty print your python HTTP requests
Project description
Report Bug · Request Feature · Ask Question · Report security bug
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 Python3.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 installrequests-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.
-
Download the latest version of requests-pprint from this repository:
git clone https://github.com/YisusChrist/requests-pprint cd requests-pprint
-
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:
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:
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:
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:
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:
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51f1bfa32d8ce4c992fb9cd019f1ecec0db260a3f7ac07b03c7791c3f4b7bef4 |
|
MD5 | 30c6b3262685a82cbc80d38464b67f26 |
|
BLAKE2b-256 | 19ae427a51d01ec592e7a9475217c75acd1243e6cd9099c5a6de2f2bf57c2c9d |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e2b8c66922a2575a3f95b68b8a4a6e53b55a5993d53c0b072c6ca5c40dd3d9b |
|
MD5 | 56f1ad8761fb82d04d45e12509a3cfa4 |
|
BLAKE2b-256 | 5731749922f65bb47b6d1904159fd390fc0da32eede07ef21e26e68f71b6dfe6 |