Skip to main content

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 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

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

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.

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