Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

weighted-tqdm

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

weighted-tqdm

weighted_tqdm allows for weighted iterations in tqdm progress bars.

  • 0.9
  • PyPI
  • Socket score

Maintainers
1

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

New: Now supports p_tqdm with an additionally passed function handle for parallel execution. This functionality extends to the generators.

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

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc