Skip to main content

cycurl

PyPI - Downloads PyPI - Python Version PyPI version Generic badge Generic badge

Documentation

Python binding for curl-impersonate fork via cython. For commercial support, visit impersonate.pro.

curl_cffi\cycurl is the most popular Python binding for curl. Unlike other pure python http clients like httpx or requests, cycurl can impersonate browsers' TLS/JA3 and HTTP/2 fingerprints. If you are blocked by some website for no obvious reason, you can give cycurl a try.

Python 3.9 is the minimum supported version since v0.10.

Sponsors

Maintenance of this project is made possible by all the contributors and sponsors. If you'd like to sponsor this project and have your avatar or company logo appear below click here. 💖


Bypass Cloudflare with API

Yes Captcha!

Yescaptcha is a proxy service that bypasses Cloudflare and uses the API interface to obtain verified cookies (e.g. cf_clearance). Click here to register: https://yescaptcha.com/i/stfnIO


Features

  • Supports JA3/TLS and http2 fingerprints impersonation, including recent browsers and custom fingerprints.
  • Much faster than requests/httpx, on par with aiohttp/pycurl, see benchmarks.
  • Mimics the requests API, no need to learn another one.
  • Pre-compiled, so you don't have to compile on your machine.
  • Supports asyncio with proxy rotation on each request.
  • Supports http 2.0 & 3.0, which requests does not.
  • Supports websocket.
  • MIT licensed.
requests aiohttp httpx pycurl curl_cffi cycurl
http/2 ❌ ❌ ✅ ✅ ✅ ✅
http/3 ❌ ❌ ❌ ☑️1 ☑️2 ☑️2
sync ✅ ❌ ✅ ✅ ✅ ✅
async ❌ ✅ ✅ ❌ ✅ ✅
websocket ❌ ✅ ❌ ❌ ✅ ✅
fingerprints ❌ ❌ ❌ ❌ ✅ ✅
speed 🐇 🐇🐇 🐇 🐇🐇 🐇🐇 🐇🐇

Notes:

  1. For pycurl, you need an http/3 enabled libcurl to make it work, while curl_cffi packages libcurl-impersonate inside Python wheels.
  2. Since v0.11.4.

Install

pip install cycurl --upgrade

This should work on Linux, macOS and Windows out of the box. If it does not work on you platform, you may need to compile and install curl-impersonate first and set some environment variables like LD_LIBRARY_PATH.

To install beta releases:

pip install cycurl --upgrade --pre

To install unstable version from GitHub:

git clone https://github.com/synodriver/cycurl/
cd cycurl
python setup.py bdist_wheel

On macOS, you may need to install the following dependencies:

brew install zstd nghttp2

Usage

cycurl comes with a low-level curl API and a high-level requests-like API.

requests-like

<<<<<<< HEAD v0.9:

from cycurl import requests

r = requests.get("https://tls.browserleaks.com/json", impersonate="chrome")

v0.10:

temp

import cycurl

# Notice the impersonate parameter
r = cycurl.get("https://tls.browserleaks.com/json", impersonate="chrome")

print(r.json())
# output: {..., "ja3n_hash": "aa56c057ad164ec4fdcb7a5a283be9fc", ...}
# the js3n fingerprint should be the same as target browser

# To keep using the latest browser version as `cycurl` updates,
# simply set impersonate="chrome" without specifying a version.
# Other similar values are: "safari" and "safari_ios"
r = cycurl.get("https://tls.browserleaks.com/json", impersonate="chrome")

# Randomly choose a browser version based on current market share in real world
# from: https://caniuse.com/usage-table
# NOTE: this is a pro feature.
r = cycurl.get("https://example.com", impersonate="realworld")

# To pin a specific version, use version numbers together.
r = cycurl.get("https://tls.browserleaks.com/json", impersonate="chrome124")

# To impersonate other than browsers, bring your own ja3/akamai strings
# See examples directory for details.
r = cycurl.get("https://tls.browserleaks.com/json", ja3=..., akamai=...)

# http/socks proxies are supported
proxies = {"https": "http://localhost:3128"}
r = cycurl.get("https://tls.browserleaks.com/json", impersonate="chrome", proxies=proxies)

proxies = {"https": "socks://localhost:3128"}
r = cycurl.get("https://tls.browserleaks.com/json", impersonate="chrome", proxies=proxies)

Sessions

<<<<<<< HEAD v0.9:

from cycurl import requests

s = requests.Session()

v0.10:

=======

temp

s = cycurl.Session()

# httpbin is a http test website, this endpoint makes the server set cookies
s.get("https://httpbin.org/cookies/set/foo/bar")
print(s.cookies)
# <Cookies[<Cookie foo=bar for httpbin.org />]>

# retrieve cookies again to verify
r = s.get("https://httpbin.org/cookies")
print(r.json())
# {'cookies': {'foo': 'bar'}}

Supported impersonate browsers

cycurl supports the same browser versions as supported by the fork of curl-impersonate:

Open source version of cycurl includes versions whose fingerprints differ from previous versions. If you see a version, e.g. chrome135, were skipped, you can simply impersonate it with your own headers and the previous version.

If you don't want to look up the headers etc, by yourself, consider buying commercial support from impersonate.pro, we have comprehensive browser fingerprints database for almost all the browser versions on various platforms.

If you are trying to impersonate a target other than a browser, use ja3=... and akamai=... to specify your own customized fingerprints. See the docs on impersonation for details.

Browser Open Source Pro version
Chrome chrome99, chrome100, chrome101, chrome104, chrome107, chrome110, chrome116[1], chrome119[1], chrome120[1], chrome123[3], chrome124[3], chrome131[4], chrome133a[5][6], chrome136[6] chrome132, chrome134, chrome135
Chrome Android chrome99_android, chrome131_android [4] chrome132_android, chrome133_android, chrome134_android, chrome135_android
Chrome iOS N/A coming soon
Safari [7] safari153 [2], safari155 [2], safari170 [1], safari180 [4], safari184 [6], safari260 [8] coming soon
Safari iOS [7] safari172_ios[1], safari180_ios[4], safari184_ios [6], safari260_ios [8] coming soon
Firefox firefox133[5], firefox135[7] coming soon
Firefox Android N/A firefox135_android
Tor tor145 [7] coming soon
Edge edge99, edge101 edge133, edge135
Opera N/A coming soon
Brave N/A coming soon

Notes:

  1. Added in version 0.6.0.
  2. Fixed in version 0.6.0, previous http2 fingerprints were not correct.
  3. Added in version 0.7.0.
  4. Added in version 0.8.0.
  5. Added in version 0.9.0.
  6. The version postfix -a(e.g. chrome133a) means that this is an alternative version, i.e. the fingerprint has not been officially updated by browser, but has been observed because of A/B testing.
  7. Added in version 0.10.0.
  8. Added in version 0.11.0.
  9. Since 0.11.0, the format safari184_ios is preferred over safari18_4_ios, both are supported, but the latter is quite confusing and hard to parse.
  10. Added in 0.12.0.

Asyncio

from cycurl import AsyncSession

async def main():
    async with AsyncSession() as s:
        r = await s.get("https://example.com")

More concurrency:

import asyncio
from cycurl import AsyncSession

urls = [
    "https://google.com/",
    "https://facebook.com/",
    "https://twitter.com/",
]

async with AsyncSession() as s:
    tasks = []
    for url in urls:
        task = s.get(url)
        tasks.append(task)
    results = await asyncio.gather(*tasks)

For low-level APIs, Scrapy integration and other advanced topics, see the docs for more details.

WebSockets

from cycurl import WebSocket

def on_message(ws: WebSocket, message: str | bytes):
    print(message)

ws = WebSocket(on_message=on_message)
ws.run_forever("wss://api.gemini.com/v1/marketdata/BTCUSD")

curl-like

Alternatively, you can use the low-level curl-like API:

from cycurl import Curl, CURLOPT_URL, CURLOPT_WRITEDATA
from io import BytesIO

buffer = BytesIO()
c = Curl()
c.setopt(CURLOPT_URL, b'https://tls.browserleaks.com/json')
c.setopt(CURLOPT_WRITEDATA, buffer)

c.impersonate("chrome110")

c.perform()
c.close()
body = buffer.getvalue()
print(body.decode())

See the docs for more details.

scrapy

If you are using scrapy, check out these middlewares:

For low-level APIs, Scrapy integration and other advanced topics, see the docs for more details.

Asyncio WebSockets

import asyncio
from cycurl import AsyncSession

async def main():
    async with AsyncSession() as s:
        ws = await s.ws_connect("wss://echo.websocket.org")
        await asyncio.gather(*[ws.send_str("Hello, World!") for _ in range(10)])
        async for message in ws:
            print(message)

Ecosystem

Acknowledgement

  • Originally forked from multippt/python_curl_cffi, which is under the MIT license.
  • Headers/Cookies files are copied from httpx, which is under the BSD license.
  • Asyncio support is inspired by Tornado's curl http client.
  • The synchronous WebSocket API is inspired by websocket_client.
  • The asynchronous WebSocket API is inspired by aiohttp.

Contributing

When submitting an PR, please use a different branch other than main and check the "Allow edits by maintainers" box, so I can update your PR with lint or style fixes. Thanks!

Metadata

Release files for cycurl 0.13.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cycurl 0.13.0
File Size Uploaded
cycurl-0.13.0.tar.gz 64.8 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for cycurl 0.13.0
File
cycurl-0.13.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
cycurl-0.13.0-cp313-cp313-manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
cycurl-0.13.0-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
cycurl-0.13.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
cycurl-0.13.0-cp312-cp312-manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
cycurl-0.13.0-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
cycurl-0.13.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
cycurl-0.13.0-cp311-cp311-manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
cycurl-0.13.0-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
cycurl-0.13.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
cycurl-0.13.0-cp310-cp310-manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
cycurl-0.13.0-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details
cycurl-0.13.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
cycurl-0.13.0-cp39-cp39-manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
cycurl-0.13.0-cp39-cp39-macosx_14_0_arm64.whl CPython 3.9 CPython 3.9 macOS 14.0+ ARM64 Details
cycurl-0.13.0-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
cycurl-0.13.0-cp38-cp38-manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
cycurl-0.13.0-cp38-cp38-macosx_14_0_arm64.whl CPython 3.8 CPython 3.8 macOS 14.0+ ARM64 Details

Total release size: 162.9 MB

Release files / cycurl-0.13.0.tar.gz

Download URL cycurl-0.13.0.tar.gz
Size 64.8 MB
Tags Source
SHA-256 checksum
How to use checksums
6ff2dd67ac3a2f742499b4cba82cde64293eb7a4072cad250fa056f49b73d926
BLAKE2b-256 checksum
How to use checksums
8030539d34118725d305889b87779b99b08a1dff6c164d009daa133b4433e0bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.10

Release files / cycurl-0.13.0-cp313-cp313-win_amd64.whl

Download URL cycurl-0.13.0-cp313-cp313-win_amd64.whl
Size 2.5 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
7e16829d823f3c4a32c868f6ba16c6b83055ed0af409f28ed1a2995f08007876
BLAKE2b-256 checksum
How to use checksums
96e4dd3abc4fde510cd4caf2b9f157b24ffcd56fe756464fcf8ff56277f14ec7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.6

Release files / cycurl-0.13.0-cp313-cp313-manylinux2014_x86_64.whl

Download URL cycurl-0.13.0-cp313-cp313-manylinux2014_x86_64.whl
Size 9.5 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
964d282c7a28e15ba22603e6ca3973284915f62d727cd4102c02631b67e44e03
BLAKE2b-256 checksum
How to use checksums
2be5f91120a624b5ea2835f097d8017848828f27f5af6d27f5c0ea2b6a61fe1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.6

Release files / cycurl-0.13.0-cp313-cp313-macosx_14_0_arm64.whl

Download URL cycurl-0.13.0-cp313-cp313-macosx_14_0_arm64.whl
Size 4.3 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
f9b6413ece3777d70f387efd864277bfca1740caf84fad11e0cecca882837518
BLAKE2b-256 checksum
How to use checksums
05dbf7d3d35a57ee75744ceac5c9b9ee2a3cb173ab7425350fd98d034afbcfbf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.6

Release files / cycurl-0.13.0-cp312-cp312-win_amd64.whl

Download URL cycurl-0.13.0-cp312-cp312-win_amd64.whl
Size 2.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
572b8b402fd2182b6504c3881295b286826ac44d628aa268b44e4c05fb96567b
BLAKE2b-256 checksum
How to use checksums
4b1d63fe03cf5af907a1439b5f3cb54970728eec649a105972d737b1821e0d88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.10

Release files / cycurl-0.13.0-cp312-cp312-manylinux2014_x86_64.whl

Download URL cycurl-0.13.0-cp312-cp312-manylinux2014_x86_64.whl
Size 9.5 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f4efd626e431d625ce1026d53470e63b6e7731880e30c2ae163a5f6081f39dda
BLAKE2b-256 checksum
How to use checksums
24f6f31f3f4ac5f17e57bdd3f3aa388e14867f6263f9bd1236c745a388b7b1eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.11

Release files / cycurl-0.13.0-cp312-cp312-macosx_14_0_arm64.whl

Download URL cycurl-0.13.0-cp312-cp312-macosx_14_0_arm64.whl
Size 4.3 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
91f87e51411458caedaba5a3d1ca699893de96d8ce82bd9a1a6f8ecc44e4a403
BLAKE2b-256 checksum
How to use checksums
bc54f50c6abede38a4b32bc9db51f7b9c5ab2d664067ebb84b2be98fe9924cd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.10

Release files / cycurl-0.13.0-cp311-cp311-win_amd64.whl

Download URL cycurl-0.13.0-cp311-cp311-win_amd64.whl
Size 2.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
97e927f8b73854504960d38a306f444bd892117e6501cf7c380e163cc33cf4d9
BLAKE2b-256 checksum
How to use checksums
fc8f3c44f237a998900d6c7327ff5525f0b54720f2adfa0e8f4ff1ca1d498f7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / cycurl-0.13.0-cp311-cp311-manylinux2014_x86_64.whl

Download URL cycurl-0.13.0-cp311-cp311-manylinux2014_x86_64.whl
Size 9.5 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3d18c469b3b310cb3899a1296338d138afa789bf5f72ecaaa7bce574aa22d2f3
BLAKE2b-256 checksum
How to use checksums
b40ccea03f425e8f72d16859c08a3ca109fcae8aaaa76ed4db18deba6e5a8c98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.13

Release files / cycurl-0.13.0-cp311-cp311-macosx_14_0_arm64.whl

Download URL cycurl-0.13.0-cp311-cp311-macosx_14_0_arm64.whl
Size 4.4 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
515f3a8da4e109c36dda6614ddcf9978615d04b533dd4358ebe625297b7db71d
BLAKE2b-256 checksum
How to use checksums
bd30d3eaa44e4f012fafe2700a43d6a44e8ec0fd190abdaa1d6888b78c39e540
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / cycurl-0.13.0-cp310-cp310-win_amd64.whl

Download URL cycurl-0.13.0-cp310-cp310-win_amd64.whl
Size 2.5 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
749c3a4aa51f140be70d2a634ab8ab56ef9916c228639570a6eafe45a6be6f77
BLAKE2b-256 checksum
How to use checksums
1b7f29d9b32bf0cc655392d534e961a467e478ff1a609cfc0dcd25d4cc5a2e7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.11

Release files / cycurl-0.13.0-cp310-cp310-manylinux2014_x86_64.whl

Download URL cycurl-0.13.0-cp310-cp310-manylinux2014_x86_64.whl
Size 9.5 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
78d4dad70213982711470998084f6b7576f2cec57b02fcb751840577d724dcf4
BLAKE2b-256 checksum
How to use checksums
ed865b69fde0688db34b1792c806f98c8f2d09b764d71a18a6ca590210b006e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.18

Release files / cycurl-0.13.0-cp310-cp310-macosx_14_0_arm64.whl

Download URL cycurl-0.13.0-cp310-cp310-macosx_14_0_arm64.whl
Size 4.3 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
e4c51a74e09573ea1e0e07b00a4f5cddbc9fc5a78e519a56a60873b24b8de639
BLAKE2b-256 checksum
How to use checksums
86e755fbe73fd9a1380525a21f51342837d01c0a6556eb14722746015199f9dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.11

Release files / cycurl-0.13.0-cp39-cp39-win_amd64.whl

Download URL cycurl-0.13.0-cp39-cp39-win_amd64.whl
Size 2.5 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
f23dc2c9320ee7f21efe77ebb3c46f5befc0924443336e0c0947ca9b2538e410
BLAKE2b-256 checksum
How to use checksums
0023a694088c01cf558d2ab83de1854aaa32c3f1c1c9f596af956ac90907d379
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.13

Release files / cycurl-0.13.0-cp39-cp39-manylinux2014_x86_64.whl

Download URL cycurl-0.13.0-cp39-cp39-manylinux2014_x86_64.whl
Size 9.5 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
25cca00f9d68032ab2174154ab642125108d2002f5ae77e2d9d616501a1317a4
BLAKE2b-256 checksum
How to use checksums
fe91c2d9641e29091df82d0a4791a85146293da30c72aa1bfe54117ee6c9b689
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / cycurl-0.13.0-cp39-cp39-macosx_14_0_arm64.whl

Download URL cycurl-0.13.0-cp39-cp39-macosx_14_0_arm64.whl
Size 4.3 MB
Tags CPython 3.9 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
6eedd9e59b7441f5b1fff37951bb4050aa38b540c38da8941f43ff70549f318d
BLAKE2b-256 checksum
How to use checksums
f71be9d73bd17d9e266ed1cbeedd0f933c49f4541fe0e81ee329fc653fedae9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.13

Release files / cycurl-0.13.0-cp38-cp38-win_amd64.whl

Download URL cycurl-0.13.0-cp38-cp38-win_amd64.whl
Size 2.5 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
60adc6ac54c6fb9cf33368725396360fd68524c21592f63ed3bc892ff58aabd3
BLAKE2b-256 checksum
How to use checksums
3383017474cd0db5494aca24ba048fc750356533af2d0643efc4d19a81a35fce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.10

Release files / cycurl-0.13.0-cp38-cp38-manylinux2014_x86_64.whl

Download URL cycurl-0.13.0-cp38-cp38-manylinux2014_x86_64.whl
Size 9.5 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d23feaa2c9c3e30b23c99a2da93e039edf8cf7ea4d64212c6f237f5c57ef5aa7
BLAKE2b-256 checksum
How to use checksums
46c9e318abcb2e7f00aaa03c514a779406e25b44829a23373cd70b10f04d0d74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.18

Release files / cycurl-0.13.0-cp38-cp38-macosx_14_0_arm64.whl

Download URL cycurl-0.13.0-cp38-cp38-macosx_14_0_arm64.whl
Size 4.4 MB
Tags CPython 3.8 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
82401482b4cfc563fd4ca5aea0da2a95267e07faff5d0995b6c8ee0148db7f8d
BLAKE2b-256 checksum
How to use checksums
a1e29d16b3a4520b301e49d79e84a0349c29ad6cd2f1580f48b698ea7f88b85b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.10
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page