idmtools.utils.decorators module¶
-
class
idmtools.utils.decorators.abstractstatic(function)¶ Bases:
staticmethodA decorator for defining a method both as static and abstract.
-
idmtools.utils.decorators.optional_decorator(decorator: Callable, condition: Union[bool, Callable[], bool]])¶
-
idmtools.utils.decorators.cache_for(ttl=None)¶
-
idmtools.utils.decorators.optional_yaspin_load(*yargs, **ykwargs) → Callable¶ Adds a CLI spinner to a function if:
yaspin package is present.
NO_SPINNER environment variable is not defined.
- Parameters
*yargs – Arguments to pass to yaspin constructor.
**ykwargs – Keyword arguments to pass to yaspin constructor.
Examples
@optional_yaspin_load(text="Loading test", color="yellow") def test(): time.sleep(100)
- Returns
A callable wrapper function.
-
class
idmtools.utils.decorators.ParallelizeDecorator(queue=None, pool_type: Optional[Type[concurrent.futures._base.Executor]] = <class 'concurrent.futures.thread.ThreadPoolExecutor'>)¶ Bases:
objectParallelizeDecorator allows you to easily parallelize a group of code. A simple of example would be
Examples
op_queue = ParallelizeDecorator() class Ops: op_queue.parallelize def heavy_op(): time.sleep(10) def do_lots_of_heavy(): futures = [self.heavy_op() for i in range(100)] results = op_queue.get_results(futures)
-
parallelize(func)¶
-
join()¶
-
get_results(futures, ordered=False)¶
-