Source code for cam.utilities.async_utils

"""Fabex 'async_utils.py' © 2012 Vilem Novak
"""

import types


@types.coroutine
[docs] def progress_async(text, n=None, value_type="%"): """Report progress during script execution for background operations. This function is designed to provide progress updates while a script is running, particularly for background operations. It yields a dictionary containing the progress information, which includes the text description of the progress, an optional numeric value, and the type of value being reported. If an exception is thrown during the operation, it will be raised for handling. Args: text (str): A message indicating the current progress. n (optional): An optional numeric value representing the progress. value_type (str?): A string indicating the type of value being reported (default is '%'). Raises: Exception: If an exception is thrown during the operation. """ # (f"Progress:{text} {n}{value_type}\n") throw_exception = yield ("Progress:", {"text": text, "n": n, "value_type": value_type}) if throw_exception is not None: raise throw_exception