Skip to main content

Initialize from a curl command string and get equivalent requests.Session and httpx.Client objects

Project description

CurlSession

pip install curl-session

Initialize from a curl command string and get equivalent requests.Session and httpx.Client objects with the same headers, cookies, proxies, TLS options, and redirect/http2 behavior.

Usage

from curl_session import CurlSession

curl = 'curl -H "Accept: application/json" -b "a=1; b=2" https://example.com/api'
cs = CurlSession(curl)

# httpx
with cs.get_httpx_client() as client:
    r = client.get(cs._parsed.url)  # provide a URL as in original curl if needed
    print(r.text)

# requests
with cs.get_requests_session() as s:
    r = s.get(cs._parsed.url)
    print(r.text)

# run original curl
cp = cs.run()
print(cp.stdout)

Tests

  • Install deps
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pytest -q

Notes

  • This is a pragmatic parser covering common curl flags for headers, cookies, data, proxies, TLS, auth, redirect, and http2 options.
  • If --cookie is a filename, it's ignored for safety. Provide explicit cookie strings instead.
  • Timeouts and other runtime-only flags are intentionally not persisted to the session defaults.

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

curl_session-0.1.3.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

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

curl_session-0.1.3-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file curl_session-0.1.3.tar.gz.

File metadata

  • Download URL: curl_session-0.1.3.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for curl_session-0.1.3.tar.gz
Algorithm Hash digest
SHA256 e9a536673dd5e49c05c9935136849c1588f94f65c22f8b213687fab88de4e401
MD5 b2683af3901ed8f5c7d83c1abf8a3a67
BLAKE2b-256 103a7f6e94a40ed02699e2ac94a446c97d1738cace14236606bb8fd206da5974

See more details on using hashes here.

File details

Details for the file curl_session-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: curl_session-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for curl_session-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c8b788735eb578d8970a1dd033c613ed313996000e940bc131e5c9306ae0bd1d
MD5 6cc967ec893957b041338c33bd5405e3
BLAKE2b-256 d56d1c33d4b2850deab7301e698fcc54f5e2e6a94c58575dcfd3cf65388648f5

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