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.5.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.5-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: curl_session-0.1.5.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.5.tar.gz
Algorithm Hash digest
SHA256 cc2aafe03f0093ea6924a888cf6bf5aa4aa3b148ec9f29c70b3311934599a022
MD5 35d79c288c5652291d720863e4cabe21
BLAKE2b-256 037602de50b862418d5e316f1521ef79e9d626e599b9f9f536339e3621e7aab3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: curl_session-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 9.3 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4487204d855ea1df6c59cbc82cb4ea6a6d17c8cc011216972812bbd9e2490c72
MD5 d5b3e0bde4bb91a3e5303b6f08ae4ca1
BLAKE2b-256 73806011274c2ae5459a0d7ec66d188845a2d20f0eeea9db948727531b5ce52c

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