Convert curl commands to Python HTTP client code
Project description
curlformat
A Python package to convert curl commands to Python HTTP client code.
Features
- Convert curl commands to Python code for various HTTP libraries:
- requests (default)
- httpx (with sync and async support)
- aiohttp
- pycurl
- pyhttpx
- curl_cffi (with sync and async support, random browser impersonation)
- requests_go (with TLS configuration support)
- Parse curl commands from command line, clipboard, or stdin
- Support for headers, cookies, data, and more
Installation
pip install curlformat
Usage
Command Line
# Basic usage (converts to requests)
curlformat 'curl -X GET "https://api.example.com"'
# Convert to httpx
curlformat --httpx 'curl -X GET "https://api.example.com"'
# Convert to async httpx
curlformat --httpx --async 'curl -X GET "https://api.example.com"'
# Convert to aiohttp
curlformat --aiohttp 'curl -X GET "https://api.example.com"'
# Convert to curl_cffi with random browser impersonation
curlformat --curl-cffi 'curl -X GET "https://api.example.com"'
# Convert to requests_go with TLS configuration
curlformat --requests-go 'curl -X GET "https://api.example.com"'
# Read from clipboard if no curl command is provided
curlformat --httpx
# Read from stdin
cat curl_command.txt | curlformat --pycurl
Python API
from curlformat import parse
# Convert curl command to requests code
python_code = parse('curl -X GET "https://api.example.com"')
print(python_code)
# If httpx is installed
from curlformat import parse_httpx, parse_httpx_async
# Convert to httpx code
httpx_code = parse_httpx('curl -X GET "https://api.example.com"')
print(httpx_code)
# Convert to async httpx code
httpx_async_code = parse_httpx_async('curl -X GET "https://api.example.com"')
print(httpx_async_code)
# If curl_cffi is installed
from curlformat import parse_curl_cffi, parse_curl_cffi_async
# Convert to curl_cffi code with random browser impersonation
curl_cffi_code = parse_curl_cffi('curl -X GET "https://api.example.com"')
print(curl_cffi_code)
# Convert to async curl_cffi code with random browser impersonation
curl_cffi_async_code = parse_curl_cffi_async('curl -X GET "https://api.example.com"')
print(curl_cffi_async_code)
# If requests_go is installed
from curlformat import parse_requests_go
# Convert to requests_go code with TLS configuration
requests_go_code = parse_requests_go('curl -X GET "https://api.example.com"')
print(requests_go_code)
Optional Dependencies
The package has the following optional dependencies:
httpx: For httpx supportaiohttp: For aiohttp supportpycurl: For pycurl supportpyhttpx: For pyhttpx supportcurl_cffi: For curl_cffi support with random browser impersonationrequests_go: For requests_go support with TLS configuration
You can install all optional dependencies with:
pip install curlformat[all]
Or install specific dependencies:
pip install curlformat[httpx,aiohttp]
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
curlformat-0.1.3.tar.gz
(18.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file curlformat-0.1.3.tar.gz.
File metadata
- Download URL: curlformat-0.1.3.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16590a5283b9c74174024997eacc639ca3d1afd1762370a200881199e6f7c299
|
|
| MD5 |
84c787dda24b78839075c101acc35b08
|
|
| BLAKE2b-256 |
218ded00292e338809e6df83ce46f2c1a3e4ae0d3640d6f91a960153ec2db6d4
|
File details
Details for the file curlformat-0.1.3-py3-none-any.whl.
File metadata
- Download URL: curlformat-0.1.3-py3-none-any.whl
- Upload date:
- Size: 25.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3b15caab71104edd463b240ed43335e5e926a232c91e0a59c87aa12c607dab0
|
|
| MD5 |
b56e34ae4641cb4fe954a7337187f6d7
|
|
| BLAKE2b-256 |
0d40a3376da5dbe1e672c5d03143814578dad3edbc7f399aea697e51cee7db8c
|