A drop-in replacement for the popular tqdm library, accelerated with C bindings
Project description
# cqdm
A drop-in replacement for the popular [tqdm library](https://github.com/tqdm/tqdm), accelerated with C bindings.
## Usage
Replace usages of tqdm.tqdm with cqdm.cqdm. This can be done succinctly by changing your import statement:
`python # was: from tqdm import tqdm from cqdm import cqdm as tqdm `
## Performance
This library has about 1/3 the overhead of standard tqdm:
![Comparative performance graphs](performance.png)
This graph was generated by running performance.py.
## Developing
Create a fresh venv
Install tqdm with pip install tqdm
Install matplotlib with python3 -m pip install matplotlib
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
Build the C-extension with python setup.py build
Install it with python setup.py install
Run the demo with python scratch.py
Generate the performance graph with python performance.py
## TODO
Look into Python bytecode (compare with/without our “hack”)
Speed up C extension - look into debugging/profiling C extensions
Otherwise clean up project (combining with the base tqdm library/repo)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for cqdm-1.0.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f5dc1ec28dcff107b12c20e44d0412a52236b29e0c63b091b9d0fffd07102a8 |
|
MD5 | c692a63bf26e41a74e73d17844369f8e |
|
BLAKE2b-256 | f157f91ce9faf76d58f5b2c97c6ce58b3ba80b30330fb73e269f710654bb46a8 |
Hashes for cqdm-1.0.1-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5d2283995f7c609a13a16d496e84c9140442fa37c1686893de24d8659b09c2b |
|
MD5 | f1c2a2ab35cef88a544d966b63542f83 |
|
BLAKE2b-256 | 594fbba7d454ac5f5b96821e0b3c2014eec9b294dfec6eb508124b2b8f43e2a9 |
Hashes for cqdm-1.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35fbe8469f80996dcbfdf72f74e1659dc30937b8f6eccd22000d082040132a85 |
|
MD5 | e8095940a5bc55246b154c3e3f17ac50 |
|
BLAKE2b-256 | 1065cf7f9685ee13882bdc1394e23dd605a403651828b63f14066a52155cd715 |
Hashes for cqdm-1.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef70b971cc00ac505242ee643bd59a092766ff5352eb208cbc926e2bd081d2c4 |
|
MD5 | e575dd323c300013b689e3a3b0d8f527 |
|
BLAKE2b-256 | 88e3b1e1eb7c3856b9e4f8eab56252271685656aeaa570cdd17761e5102ee506 |
Hashes for cqdm-1.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 078b2d212353f4e3d66473ccc69379d42bcbf1f27cc1e577567eaccbc1dbe275 |
|
MD5 | de5ed422fc63878aa51842c8d39aa101 |
|
BLAKE2b-256 | 8a92f4605729abef6d1c155262f3aadf6fbdef2e78fd41f10f3acf00d99768c5 |
Hashes for cqdm-1.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d83328769ebdd68fb676cd2b5ab32eb60613b924019c7f6fbe44864089afb68 |
|
MD5 | 799a7889f57e592765b66d9c51c1c610 |
|
BLAKE2b-256 | 7051818c000f966b70f6f6c6fbcf8ab489156b9110c00fc7518eec78931af1a1 |
Hashes for cqdm-1.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 081604cf7f1560416ac9d5164a9bd0dd1814fe2b9ae95a26874590b26eda8cc0 |
|
MD5 | dbe3f711346447d067511ba3ba538199 |
|
BLAKE2b-256 | e1d561bcb68c4561ad999b669d38380ca917fbc82ef3cf558624ae2f8d8e1470 |