Skip to main content

weighted_tqdm allows for weighted iterations in tqdm progress bars.

Project description

weighted_tqdm

Install via pip install weighted-tqdm

Import via from weighted_tqdm import *

Description

weighted_tqdm works equivalently to tqdm, accepting all the same arguments, but also accepts a weights argument. This argument specifies the weights of each item in the iterable and can be given as a function of the iterable or be any iterable (list, array, tuple...). The progress bar will then take into account the weights of each item in it's prediciton of the time, and it's progress bar will be weighted accordingly. To the left of the progress bar an iteration counter is shown.

how_many_qubits = [1,2,3,4,5]
qubits weights = lambda x: (2**x)**3
for i in weighted_tqdm(how_many_qubits, weights=weights):
    # do something

qudit_tqdm is a special variant of tqdm, that predicts the remaining time for calculations in quantum mechanics, with the added arguments dit specifying whether its a calculation of qubits (default dit=2 or dit=3 for qutrits), and the argument exp specifying the scaling of computational time with the dimension of a hilbert space.

for i in qudit_tqdm(how_many_qubits, dim=2, exp=3):
    time.sleep((2**i)**3)

progress is a generator of progress bars which allows each iteration within a nested set of loops to update a single progress bar. It allows adding classic tqdm, but also weighted_tqdm or qudit_tqdm to different nested loops.

p = progress()
for i in p.weighted_tqdm(range(5), weights=lambda i: (i+1), name='outer'):
    for j in p.tqdm((1,2,3,4,5), name='inner'):
        time.sleep(0.1*(i+1))

weighted_kronbinations_tqdm is the final progress bar, which allows the use of weighted progress bars for kronbination loops. Unlike the other functions, tehe update has to manually be added to every iteration.

list_of_iterators = [range(3), [1,2,3]]    # list of the iterators
list_of_weights = [ones(3), lambda x: (2**x)**3]    # weights for each iterator
indexes = np.array([[0,0], [0,1], [0,2], [1,0], [1,1], [1,2]]])    # specify the indexes which are being executed 
p = weighted_kronbinations_tqdm(list_of_iterators, list_of_weights)    # initialize the generator
p.init(indexes)    # prepare a progress bar 
for i in indexes:
    p.increment()  # update the progress bar
    time.sleep((2**list_of_iterators[1][i[1]])**3)    # do something

Authors:

By Michael Schilling

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

weighted_tqdm-0.7.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

weighted_tqdm-0.7-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file weighted_tqdm-0.7.tar.gz.

File metadata

  • Download URL: weighted_tqdm-0.7.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for weighted_tqdm-0.7.tar.gz
Algorithm Hash digest
SHA256 33f56d11d6e84017d4e686d745a52526b8b78115b9aee5fe6c7d28d9b33e5cfe
MD5 97f7fb1a675dc34f113f0e9d01404fc8
BLAKE2b-256 0a44ccfcbb5898fdde14c2a79cd2484e1b133cb3d1dd2bf491f5cf7bddc2c64d

See more details on using hashes here.

File details

Details for the file weighted_tqdm-0.7-py3-none-any.whl.

File metadata

  • Download URL: weighted_tqdm-0.7-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for weighted_tqdm-0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 ed1275218c4aa4638ccd9f977eed8933a2ae5e0fcc6cfdad252517f4fc62896b
MD5 cb50aaf802318db977e41f6bd82437ba
BLAKE2b-256 f520aaa428d5bc7ffbd8365fe98a3b89d53752ef2a209b115ec0472bfa3ebe97

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page