Progress Bars (instalooter.worker
)¶
Progress bars used to report InstaLooter.download
progress.
The module exposes and abstract class that can be derived to implement
your own progress displayer. The default implementation (which uses the
tqdm
library) is used by the CLI.
-
class
instalooter.pbar.
ProgressBar
(it, *args, **kwargs)[source]¶ An abstract progess bar used to report interal progress.
-
class
instalooter.pbar.
TqdmProgressBar
(*_, **__)[source]¶ A progress bar using the
tqdm
library.- Parameters
iterable (iterable, optional) – Iterable to decorate with a progressbar. Leave blank to manually manage the updates.
desc (str, optional) – Prefix for the progressbar.
total (int or float, optional) – The number of expected iterations. If unspecified, len(iterable) is used if possible. If float(“inf”) or as a last resort, only basic progress statistics are displayed (no ETA, no progressbar). If
gui
is True and this parameter needs subsequent updating, specify an initial arbitrary large positive number, e.g. 9e9.leave (bool, optional) – If [default: True], keeps all traces of the progressbar upon termination of iteration. If
None
, will leave only ifposition
is0
.file (
io.TextIOWrapper
orio.StringIO
, optional) – Specifies where to output the progress messages (default: sys.stderr). Usesfile.write(str)
andfile.flush()
methods. For encoding, seewrite_bytes
.ncols (int, optional) – The width of the entire output message. If specified, dynamically resizes the progressbar to stay within this bound. If unspecified, attempts to use environment width. The fallback is a meter width of 10 and no limit for the counter and statistics. If 0, will not print any meter (only stats).
mininterval (float, optional) – Minimum progress display update interval [default: 0.1] seconds.
maxinterval (float, optional) – Maximum progress display update interval [default: 10] seconds. Automatically adjusts
miniters
to correspond tomininterval
after long display update lag. Only works ifdynamic_miniters
or monitor thread is enabled.miniters (int or float, optional) – Minimum progress display update interval, in iterations. If 0 and
dynamic_miniters
, will automatically adjust to equalmininterval
(more CPU efficient, good for tight loops). If > 0, will skip display of specified number of iterations. Tweak this andmininterval
to get very efficient loops. If your progress is erratic with both fast and slow iterations (network, skipping items, etc) you should set miniters=1.ascii (bool or str, optional) – If unspecified or False, use unicode (smooth blocks) to fill the meter. The fallback is to use ASCII characters ” 123456789#”.
disable (bool, optional) – Whether to disable the entire progressbar wrapper [default: False]. If set to None, disable on non-TTY.
unit (str, optional) – String that will be used to define the unit of each iteration [default: it].
unit_scale (bool or int or float, optional) – If 1 or True, the number of iterations will be reduced/scaled automatically and a metric prefix following the International System of Units standard will be added (kilo, mega, etc.) [default: False]. If any other non-zero number, will scale
total
andn
.dynamic_ncols (bool, optional) – If set, constantly alters
ncols
andnrows
to the environment (allowing for window resizes) [default: False].smoothing (float, optional) – Exponential moving average smoothing factor for speed estimates (ignored in GUI mode). Ranges from 0 (average speed) to 1 (current/instantaneous speed) [default: 0.3].
bar_format (str, optional) –
Specify a custom bar string formatting. May impact performance. [default: ‘{l_bar}{bar}{r_bar}’], where l_bar=’{desc}: {percentage:3.0f}%|’ and r_bar=’| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, ‘
’{rate_fmt}{postfix}]’
- Possible vars: l_bar, bar, r_bar, n, n_fmt, total, total_fmt,
percentage, elapsed, elapsed_s, ncols, nrows, desc, unit, rate, rate_fmt, rate_noinv, rate_noinv_fmt, rate_inv, rate_inv_fmt, postfix, unit_divisor, remaining, remaining_s, eta.
Note that a trailing “: ” is automatically removed after {desc} if the latter is empty.
initial (int or float, optional) – The initial counter value. Useful when restarting a progress bar [default: 0]. If using float, consider specifying
{n:.3f}
or similar inbar_format
, or specifyingunit_scale
.position (int, optional) – Specify the line offset to print this bar (starting from 0) Automatic if unspecified. Useful to manage multiple bars at once (eg, from threads).
postfix (dict or *, optional) – Specify additional stats to display at the end of the bar. Calls
set_postfix(**postfix)
if possible (dict).unit_divisor (float, optional) – [default: 1000], ignored unless
unit_scale
is True.write_bytes (bool, optional) – If (default: None) and
file
is unspecified, bytes will be written in Python 2. IfTrue
will also write bytes. In all other cases will default to unicode.lock_args (tuple, optional) – Passed to
refresh
for intermediate output (initialisation, iterating, and updating).nrows (int, optional) – The screen height. If specified, hides nested bars outside this bound. If unspecified, attempts to use environment height. The fallback is 20.
colour (str, optional) – Bar colour (e.g. ‘green’, ‘#00ff00’).
delay (float, optional) – Don’t display until [default: 0] seconds have elapsed.
gui (bool, optional) – WARNING: internal parameter - do not use. Use tqdm.gui.tqdm(…) instead. If set, will attempt to use matplotlib animations for a graphical output [default: False].
- Returns
out
- Return type
decorated iterator.