Skip to main content

Converts Request objects to curl string

Project description

curlifier

coverage tests pypi package version pypi downloads supported python versions wemake-python-styleguide license

Curlifier logo

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

Installation

pip install curlifier

Dependencies

  • python (>=3.10, <4.0)
  • requests (>=2.0, <3.0.0)

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 PraparedRequest, 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-0.2.13.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

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

curlifier-0.2.13-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: curlifier-0.2.13.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.5 Darwin/23.6.0

File hashes

Hashes for curlifier-0.2.13.tar.gz
Algorithm Hash digest
SHA256 e493787f7e2c080304c7f824fca8a711e994b8e49da8067ac62bfcbcc9b69304
MD5 e3a53a78484388c269d6a7ae64571b15
BLAKE2b-256 b3a84b73a78940fb51270e46a83875f36a2b047be6618e92ebb2009912d73a6c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: curlifier-0.2.13-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.5 Darwin/23.6.0

File hashes

Hashes for curlifier-0.2.13-py3-none-any.whl
Algorithm Hash digest
SHA256 ba0b536c5b9e9f559221410d41506177d365bdbf803c3e8a58e68bc5f6d4937c
MD5 a1122c6f37343f573db27ece6aad9b2c
BLAKE2b-256 474e7f6a3d966e43410641c26466fb84fa8b5c00dd7395bcd66ff742614297c5

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