Skip to main content

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 support
  • aiohttp: For aiohttp support
  • pycurl: For pycurl support
  • pyhttpx: For pyhttpx support
  • curl_cffi: For curl_cffi support with random browser impersonation
  • requests_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

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.4.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

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

curlformat-0.1.4-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file curlformat-0.1.4.tar.gz.

File metadata

  • Download URL: curlformat-0.1.4.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for curlformat-0.1.4.tar.gz
Algorithm Hash digest
SHA256 a95a6cc03c66f4cf8a06f7211608f45fbe63e13ea272fb91b7bb1be294eedd57
MD5 0d8b407c0dd0ad8475a7df00869a89b0
BLAKE2b-256 bbee4b8a8f29c881990e90623be1e37a81a84ca341ece1a2fc8a233c8173fcd2

See more details on using hashes here.

File details

Details for the file curlformat-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: curlformat-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for curlformat-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 24f8a543b93bf5f6f0497b979f30eb35449a6b9e0563cec16b9ac970f63b3bd9
MD5 634836b3c15172d87c1f3c66ba34c6d0
BLAKE2b-256 f6fe38f1ea0bb1ba55f3543ab478bceb06957cf3a16c84887d300a2a7759eff4

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 files

0.1.3

2 files

0.1.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page