napari.utils.cancelable_progress#
- class napari.utils.cancelable_progress(*_, **__)[source]#
- Bases: - progress- This class inherits from progress, providing the additional ability to cancel expensive executions. When progress is canceled by the user in the napari UI, two things will happen: - Firstly, the is_canceled attribute will become True, and the for loop will terminate after the current iteration, regardless of whether or not the iterator had more items. - Secondly, cancel_callback will be called, allowing the computation to close resources, repair state, etc. - See napari.utils.progress and tqdm.tqdm API for valid args and kwargs: https://tqdm.github.io/docs/tqdm/ - Examples - >>> def long_running(steps=10, delay=0.1): ... def on_cancel(): ... print("Canceled operation") ... for i in cancelable_progress(range(steps), cancel_callback=on_cancel): ... sleep(delay) - Methods - cancel()- Cancels the execution of the underlying computation. - clear([nolock])- Clear current bar display. - close()- Close progress object and emit event. - display([msg, pos])- Update the display and emit eta event. - external_write_mode([file, nolock])- Disable tqdm within context and refresh tqdm when exits. - Formats a number of seconds as a clock time, [H:]MM:SS - format_meter(n, total, elapsed[, ncols, ...])- Return a string-based progress bar given some parameters - format_num(n)- Intelligent scientific notation (.3g). - format_sizeof(num[, suffix, divisor])- Formats a number (greater than unity) with SI Order of Magnitude prefixes. - get_lock()- Get the global lock. - Update if not exceeding total, else set indeterminate range. - moveto(n)- pandas(**tqdm_kwargs)- Registers the current tqdm class with - refresh([nolock, lock_args])- Force refresh the display of this bar. - reset([total])- Resets to 0 iterations for repeated use. - set_description(desc)- Update progress description and emit description event. - set_description_str([desc, refresh])- Set/modify description without ': ' appended. - set_lock(lock)- Set the global lock. - set_postfix([ordered_dict, refresh])- Set/modify postfix (additional stats) with automatic formatting based on datatype. - set_postfix_str([s, refresh])- Postfix without dictionary expansion, similar to prefix handling. - status_printer(file)- Manage the printing and in-place updating of a line of characters. - unpause()- Restart tqdm timer from last print time. - update([n])- Update progress value by n and emit value event - wrapattr(stream, method[, total, bytes])- stream : file-like object. method : str, "read" or "write". The result of read() and the first argument of write() should have a len(). - write(s[, file, end, nolock])- Print a message via tqdm (without overlap with bars). - Attributes - Public API for read-only member access. - monitor- monitor_interval- total- Details - cancel()[source]#
- Cancels the execution of the underlying computation. Note that the current iteration will be allowed to complete, however future iterations will not be run. 
 - clear(nolock=False)#
- Clear current bar display. 
 - close()#
- Close progress object and emit event. 
 - display(msg: str | None = None, pos: int | None = None) None#
- Update the display and emit eta event. 
 - classmethod external_write_mode(file=None, nolock=False)#
- Disable tqdm within context and refresh tqdm when exits. Useful when writing to standard output stream 
 - property format_dict#
- Public API for read-only member access. 
 - static format_interval(t)#
- Formats a number of seconds as a clock time, [H:]MM:SS 
 - static format_meter(n, total, elapsed, ncols=None, prefix='', ascii=False, unit='it', unit_scale=False, rate=None, bar_format=None, postfix=None, unit_divisor=1000, initial=0, colour=None, **extra_kwargs)#
- Return a string-based progress bar given some parameters - Parameters:
- total (int or float) – The expected total number of iterations. If meaningless (None), only basic progress statistics are displayed (no ETA). 
- elapsed (float) – Number of seconds passed since start. 
- ncols (int, optional) – The width of the entire output message. If specified, dynamically resizes {bar} to stay within this bound [default: None]. If 0, will not print any bar (only stats). The fallback is {bar:10}. 
- prefix (str, optional) – Prefix message (included in total width) [default: ‘’]. Use as {desc} in bar_format string. 
- ascii (bool, optional or str, optional) – If not set, use unicode (smooth blocks) to fill the meter [default: False]. The fallback is to use ASCII characters “ 123456789#”. 
- unit (str, optional) – The iteration unit [default: ‘it’]. 
- unit_scale (bool or int or float, optional) – If 1 or True, the number of iterations will be printed with an appropriate SI metric prefix (k = 10^3, M = 10^6, etc.) [default: False]. If any other non-zero number, will scale total and n. 
- rate (float, optional) – Manual override for iteration rate. If [default: None], uses n/elapsed. 
- 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. 
- postfix (*, optional) – Similar to prefix, but placed at the end (e.g. for additional stats). Note: postfix is usually a string (not a dict) for this method, and will if possible be set to postfix = ‘, ‘ + postfix. However other types are supported (#382). 
- unit_divisor (float, optional) – [default: 1000], ignored unless unit_scale is True. 
- initial (int or float, optional) – The initial counter value [default: 0]. 
- colour (str, optional) – Bar colour (e.g. ‘green’, ‘#00ff00’). 
 
- Returns:
- out 
- Return type:
- Formatted meter and stats, ready to display. 
 
 - static format_num(n)#
- Intelligent scientific notation (.3g). 
 - static format_sizeof(num, suffix='', divisor=1000)#
- Formats a number (greater than unity) with SI Order of Magnitude prefixes. 
 - classmethod get_lock()#
- Get the global lock. Construct it if it does not exist. 
 - increment_with_overflow()#
- Update if not exceeding total, else set indeterminate range. 
 - classmethod pandas(**tqdm_kwargs)#
- Registers the current tqdm class with
- pandas.core. ( frame.DataFrame | series.Series | groupby.(generic.)DataFrameGroupBy | groupby.(generic.)SeriesGroupBy ).progress_apply 
 - A new instance will be created every time progress_apply is called, and each instance will automatically close() upon completion. - Parameters:
- tqdm_kwargs (arguments for the tqdm instance) – 
 - Examples - >>> import pandas as pd >>> import numpy as np >>> from tqdm import tqdm >>> from tqdm.gui import tqdm as tqdm_gui >>> >>> df = pd.DataFrame(np.random.randint(0, 100, (100000, 6))) >>> tqdm.pandas(ncols=50) # can use tqdm_gui, optional kwargs, etc >>> # Now you can use `progress_apply` instead of `apply` >>> df.groupby(0).progress_apply(lambda x: x**2) - References - <https://stackoverflow.com/questions/18603270/ progress-indicator-during-pandas-operations-python> 
 - refresh(nolock=False, lock_args=None)#
- Force refresh the display of this bar. 
 - reset(total=None)#
- Resets to 0 iterations for repeated use. - Consider combining with leave=True. 
 - set_description(desc)#
- Update progress description and emit description event. 
 - set_description_str(desc=None, refresh=True)#
- Set/modify description without ‘: ‘ appended. 
 - classmethod set_lock(lock)#
- Set the global lock. 
 - set_postfix(ordered_dict=None, refresh=True, **kwargs)#
- Set/modify postfix (additional stats) with automatic formatting based on datatype. 
 - set_postfix_str(s='', refresh=True)#
- Postfix without dictionary expansion, similar to prefix handling. 
 - static status_printer(file)#
- Manage the printing and in-place updating of a line of characters. Note that if the string is longer than a line, then in-place updating may not work (it will print a new line at each refresh). 
 - unpause()#
- Restart tqdm timer from last print time. 
 - update(n=1)#
- Update progress value by n and emit value event 
 - classmethod wrapattr(stream, method, total=None, bytes=True, **tqdm_kwargs)#
- stream : file-like object. method : str, “read” or “write”. The result of read() and - the first argument of write() should have a len(). - >>> with tqdm.wrapattr(file_obj, "read", total=file_obj.size) as fobj: ... while True: ... chunk = fobj.read(chunk_size) ... if not chunk: ... break 
 - classmethod write(s, file=None, end='\n', nolock=False)#
- Print a message via tqdm (without overlap with bars).