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.6.tar.gz (10.4 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.6-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: curl_session-0.1.6.tar.gz
  • Upload date:
  • Size: 10.4 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.6.tar.gz
Algorithm Hash digest
SHA256 1cda1d2dffc5e461a854aadc5db2e309c92b1ef1aff5c67d59a8e9e712effe27
MD5 53baacfa4a5aa0052a87e32c8375e3a8
BLAKE2b-256 fe1bbf86f484a6498b966d8a42a785a735beba2646c7c74c822a6a2f20d8c4e4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: curl_session-0.1.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 224e21a2aac70d02cf50eb9bd4664eaa06dcb746944ffa90caca17ef96498f31
MD5 84c667e4efced17c624df59d18cca646
BLAKE2b-256 54cae2080729acdaf27b48a704a1d648d714b50190c0b52bb18ed00dc8e0f5a2

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