idmtools.utils.decorators module¶
-
class
idmtools.utils.decorators.
abstractstatic
(function)¶ Bases:
staticmethod
A 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:
object
ParallelizeDecorator 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)¶
-