Skip to main content

Converts Request objects to curl string

Project description

curlifier

Poetry codecov tests pypi package version status pypi downloads supported python versions wemake-python-styleguide mypy ruff license

Curlifier logo

Converts the Request and PreparedRequest objects of the Requests library into an executable curl command.

Security

The resulting curl command will include all authentication credentials, API keys, passwords, and other sensitive information that were part of the original request. Be careful when sharing or logging these commands, as they may expose sensitive data.

Installation

pip install curlifier

Usage

All you need is to import curlify.
For example:

>>> import requests
>>> from curlifier import curlify
>>> body = {'id': 1, 'name': 'Tima', 'age': 28}
>>> r = requests.post('https://httpbin.org/', json=body)
>>> curlify(r)
curl --request POST 'https://httpbin.org/' <...> --header 'Content-Type: application/json' --data '{"id": 1, "name": "Tima", "age": 28}'

If you use PreparedRequest, you can also specify it instead of the Response object:

>>> req = requests.Request('POST', 'https://httpbin.org/')
>>> r = req.prepare()
>>> curlify(prepared_request=r)
curl --request POST 'https://httpbin.org/'

If you want a short version of the curl command, you can specify it:

>>> body = {'id': 1, 'name': 'Tima', 'age': 28}
>>> r = requests.post('https://httpbin.org/', json=body)
>>> curlify(r, shorted=True)
curl -X POST 'https://httpbin.org/' <...> -H 'Content-Type: application/json' -d '{"id": 1, "name": "Tima", "age": 28}'

You can also specify the configuration when forming the curl command:

>>> curlify(r, location=True, insecure=True)
curl --request POST 'https://httpbin.org/' <...> --header 'Content-Type: application/json' --data '{"id": 1, "name": "Tima", "age": 28}' --location --insecure
  • location (bool) - Follow redirects (default: False)
  • verbose (bool) - Verbose output (default: False)
  • silent (bool) - Silent mode (default: False)
  • insecure (bool) - Allow insecure connections (default: False)
  • include (bool) - Include protocol headers (default: False)

License

Curlifier is released under the MIT License. See the bundled LICENSE file for details.

The logo was created using Font Meme.

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

curlifier-1.0.7.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

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

curlifier-1.0.7-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file curlifier-1.0.7.tar.gz.

File metadata

  • Download URL: curlifier-1.0.7.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.3 Darwin/25.4.0

File hashes

Hashes for curlifier-1.0.7.tar.gz
Algorithm Hash digest
SHA256 dd450de7fb64f965bcbc7747721b7600ec6fbdce6afdb6cdc4acc584f080c62b
MD5 6171bbcdae28a27aadbc29979af73ae6
BLAKE2b-256 4fb0478201a876075d57204eeb4b49b77b3cd173bcdd69068af86666f8202c3f

See more details on using hashes here.

File details

Details for the file curlifier-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: curlifier-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.3 Darwin/25.4.0

File hashes

Hashes for curlifier-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 3bb836b3a8f009abcf3d46202935727a2b394cb14f22d398f7487792b2d143dd
MD5 4baf7c0f3040091aafd3a1c29a73d925
BLAKE2b-256 4762b9be4d36239577200b3df8b9304a8490a4e513d7458a692202409e8cf471

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