jztools.parallelization.utils#
Classes
|
Defines parameters that need to be parallelized over. All arguments and keyword arguments are sequences of the same length. The n-th entry of all sequences contains the n-th set of args / kwargs. Lengths will be checked at initialization for sequences having |
|
Wraps an exception raised within a worker thread. |
Exceptions
Raised when validation fails during expand. |
|
|
Signals that ParArgs objects have different lengths. |
- class jztools.parallelization.utils.WorkerException(error)#
Bases:
objectWraps an exception raised within a worker thread. Wrapping the exception enables differentiating between exceptions raised by a funciton and exceptions returned by a function as part of normal operation.
- class jztools.parallelization.utils.ParArgs(*arg_seqs: Iterable, **kwarg_seqs: Iterable)#
Bases:
objectDefines parameters that need to be parallelized over. All arguments and keyword arguments are sequences of the same length. The n-th entry of all sequences contains the n-th set of args / kwargs. Lengths will be checked at initialization for sequences having
__len__or at run-time otherwise.To comibne fixed and parallelized arguments, see
expand()Example:
# To denote arguments for the following calls: # fxn(0, 'a', alpha=10, beta=50) # fxn(1, 'b', alpha=20, beta=60) # fxn(2, 'c', alpha=30, beta=70) ParArgs([0,1,2], ['a', 'b', 'c'], alpha=[10, 20, 30], beta=[50, 60, 70])
- Parameters:
arg_seqs – Argument sequences for positional arguments
kwarg_seqs – Argument sequences for keyword arguments.
- classmethod expand(*args, **kwargs)#
Iterator producing arg/kwarg pairs given args or kwargs possibly containing
ParArgsobjects. Note that only the lastParArgsobject can contain keyword arguments, and thatParArgsobjects cannot be passed as keywords.Example:
# To denote arguments for the following calls: # fxn(0, 5, 'a', alpha=10, beta=50, gamma=100) # fxn(1, 5, 'b', alpha=20, beta=60, gamma=100) # fxn(2, 5, 'c', alpha=30, beta=70, gamma=100) ParArgs.expand( ParArgs([0, 1, 2]), 5, ParArgs(['a', 'b', 'c'], alpha=[10, 20, 30], beta=[50, 60, 70]), gamma=100)
- exception jztools.parallelization.utils.ParArgsMisMatchError(msg='ParArgs objects have different argument set sizes.')#
Bases:
ExceptionSignals that ParArgs objects have different lengths.
- exception jztools.parallelization.utils.ParArgsExpandError#
Bases:
ExceptionRaised when validation fails during expand.