syncopy.shared.kwarg_decorators.detect_parallel_client¶
-
syncopy.shared.kwarg_decorators.
detect_parallel_client
(func)[source]¶ Decorator for handling parallelization via parallel keyword/client detection
- Parameters
func (callable) – Typically a Syncopy metafunction such as
freqanalysis()
- Returns
parallel_client_detector – Wrapped function; parallel_client_detector attempts to extract parallel from keywords provided to func. If parallel is True or None (i.e., was not provided) and dask is available, parallel_client_detector attempts to connect to a running dask parallel processing client. If successful, parallel is set to True and updated in func’s keyword argument dict. If no client is found or dask is not available, a corresponding warning message is printed and parallel is set to False and updated in func’s keyword argument dict. After successfully calling func with the modified input arguments, parallel_client_detector modifies func itself:
The “Parameters” section in the docstring of func is amended by an entry explaining the usage of parallel. Note: func’s docstring is only extended if it has a “Parameters” section.
If not already present, parallel is added as optional keyword (with default value None) to the signature of func.
- Return type
callable
Notes
This decorator assumes that func has already been processed by
unwrap_cfg()
and hence expects func to obey standard Python call signaturefunc(*args, **kwargs)
. In other words,detect_parallel_client()
is intended as “inner” decorator of, e.g., metafunctions. See Notes in the docstring ofunwrap_select()
for further details.See also
unwrap_select()
extract select keyword and process in-place data-selections
unwrap_cfg()
Decorator for processing cfg “structs”