Skip to main content

cqdm

A drop-in replacement for the popular tqdm library, accelerated with C bindings.

Usage

Install with pip install cqdm.

Replace usages of tqdm.tqdm with cqdm.cqdm. This can be done succinctly by changing your import statement:

# was: from tqdm import tqdm
from cqdm import cqdm as tqdm

Performance

Realtime speed comparison

This library has about 1/5 the overhead of standard tqdm:

Comparative performance graphs

This graph was generated by running performance.py.

Impact

There are over 40 million monthly downloads of tqdm. Let's assume there are 40 million instances of tqdm running every day, each performing 100,000 iterations. This totals 92,000 seconds or 9.58 days of overhead, per day. Using a reasonable price for CPU time on AWS, this equates to around $10 of compute, per day globally.

Switching to cqdm would reduce this overhead by 4/5. That means, if everyone switched to using cqdm, we could save $8 in CPU time per day, globally.

Of course, this ignores the increased time for installs, compilation, etc., which is nearly an order of magnitude greater than the time saved...

Developing

To develop cqdm locally:

  1. Create a fresh venv
  2. Install tqdm with pip install tqdm
  3. Build the C-extension with python setup.py build
  4. Install it with python setup.py install
  5. Run the demo with python demo/demo.py

Performance

To generate performance graphs:

  1. Install matplotlib with python3 -m pip install matplotlib
  2. If on linux, then it might be necessary to install a gui backend for plt.show() to function. Do so with sudo apt-get install python3-tk
  3. Generate the performance graph with python demo/performance.py

Metadata

Release files for cqdm 1.0.5

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

Built distributions (wheels)

Table of built distributions (wheels) for cqdm 1.0.5
File
cqdm-1.0.5-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.12+ x86-64, Linux glibc 2.5+ x86-64 Details
cqdm-1.0.5-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.12+ x86-64, Linux glibc 2.5+ x86-64 Details
cqdm-1.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.12+ x86-64, Linux glibc 2.5+ x86-64 Details
cqdm-1.0.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-64, Linux glibc 2.5+ x86-64 Details
cqdm-1.0.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-64, Linux glibc 2.5+ x86-64 Details
cqdm-1.0.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64, Linux glibc 2.12+ x86-64 Details
cqdm-1.0.5-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64, Linux glibc 2.12+ x86-64 Details

Total release size: 124.2 kB

Release files / cqdm-1.0.5-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL cqdm-1.0.5-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 8.2 kB
Tags Linux glibc 2.12+ x86-64 Linux glibc 2.5+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
bc662bd3d56d0f800666cb27c5ac69b0bbbd2cf6ef5cc4065b94bb072248bb6e
BLAKE2b-256 checksum
How to use checksums
f405448146b879ee911f86d575c0b906b07f165ef06f28bfa2509bdcc5e6b419
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release files / cqdm-1.0.5-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL cqdm-1.0.5-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 8.2 kB
Tags Linux glibc 2.12+ x86-64 Linux glibc 2.5+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
77a1babe2671c34e5a943d19349ba17a7d138c00dab957ffc69d35794a2a5b14
BLAKE2b-256 checksum
How to use checksums
d9ff3b948e9b3e1924f89b48e82eae38c156702d2c466de63d34b3bb5658d611
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release files / cqdm-1.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL cqdm-1.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 22.1 kB
Tags CPython 3.10 Linux glibc 2.12+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
05afbbd278fdadd38ef2214212742194835491dca0922a7b81c344c8558af7a2
BLAKE2b-256 checksum
How to use checksums
8b9ab98b97fbcdf3b865b02f1ef8b391f6b446a2360f86dbf9c77d451d943c43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release files / cqdm-1.0.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL cqdm-1.0.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 21.6 kB
Tags CPython 3.9 Linux glibc 2.12+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
57def352d67f5f32176338a4012b0416af34b11e31a19d85be2313027ba93067
BLAKE2b-256 checksum
How to use checksums
55acfcf43be2c319cabc02518b174c58e66b7bf1e53be4e94a3ff9a935975011
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release files / cqdm-1.0.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL cqdm-1.0.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 21.5 kB
Tags CPython 3.8 Linux glibc 2.12+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
7d26cf88a5088775b36ddb436de77a118c891f9e0912eecdc537c314cf3ac127
BLAKE2b-256 checksum
How to use checksums
f6e79d95b704f536eb4753747b03f606a78b58967b6eac02e5f750051ee4af17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release files / cqdm-1.0.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL cqdm-1.0.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 21.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
1f4396e21e26779af35d3940a27b4de16eaa86987653b72cce4e996cb995b492
BLAKE2b-256 checksum
How to use checksums
49063f45aa2551a83531676417cef729fe7c39b8651c84773e5bdccc6fa463af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release files / cqdm-1.0.5-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL cqdm-1.0.5-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 20.9 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
155a38dbb0083b73b3210a6c5f9da63a583bd93b2b553fbe1ffaccbeab29e349
BLAKE2b-256 checksum
How to use checksums
fe4049a6a13aaf836d7bebc0809c591a447f1b1f054deb1954d25d35524e336b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Security for cqdm 1.0.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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