Block fusion for barrier tasks (#8944) #2507
5 fail, 110 skipped, 4 015 pass in 10h 8m 1s
25 files 25 suites 10h 8m 1s ⏱️
4 130 tests 4 015 ✅ 110 💤 5 ❌
47 692 runs 45 535 ✅ 2 121 💤 36 ❌
Results for commit 0d905d5.
Annotations
Check warning on line 0 in distributed.comm.tests.test_comms
github-actions / Unit Test Results
2 out of 12 runs failed: test_tls_comm_closed_implicit[tornado] (distributed.comm.tests.test_comms)
artifacts/ubuntu-latest-3.11-default-notci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-3.12-default-notci1/pytest.xml [took 0s]
Raw output
ssl.SSLError: [SYS] unknown error (_ssl.c:2580)
tcp = <module 'distributed.comm.tcp' from '/home/runner/work/distributed/distributed/distributed/comm/tcp.py'>
@gen_test()
async def test_tls_comm_closed_implicit(tcp):
> await check_comm_closed_implicit("tls://127.0.0.1", **tls_kwargs)
distributed/comm/tests/test_comms.py:777:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
distributed/comm/tests/test_comms.py:763: in check_comm_closed_implicit
await comm.read()
distributed/comm/tcp.py:225: in read
frames_nosplit_nbytes_bin = await stream.read_bytes(fmt_size)
../../../miniconda3/envs/dask-distributed/lib/python3.11/site-packages/tornado/iostream.py:422: in read_bytes
self._try_inline_read()
../../../miniconda3/envs/dask-distributed/lib/python3.11/site-packages/tornado/iostream.py:836: in _try_inline_read
pos = self._read_to_buffer_loop()
../../../miniconda3/envs/dask-distributed/lib/python3.11/site-packages/tornado/iostream.py:750: in _read_to_buffer_loop
if self._read_to_buffer() == 0:
../../../miniconda3/envs/dask-distributed/lib/python3.11/site-packages/tornado/iostream.py:861: in _read_to_buffer
bytes_read = self.read_from_fd(buf)
../../../miniconda3/envs/dask-distributed/lib/python3.11/site-packages/tornado/iostream.py:1552: in read_from_fd
return self.socket.recv_into(buf, len(buf))
../../../miniconda3/envs/dask-distributed/lib/python3.11/ssl.py:1314: in recv_into
return self.read(nbytes, buffer)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ssl.SSLSocket [closed] fd=-1, family=2, type=1, proto=0>, len = 65536
buffer = bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x...0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
def read(self, len=1024, buffer=None):
"""Read up to LEN bytes and return them.
Return zero-length string on EOF."""
self._checkClosed()
if self._sslobj is None:
raise ValueError("Read on closed or unwrapped SSL socket.")
try:
if buffer is not None:
> return self._sslobj.read(len, buffer)
E ssl.SSLError: [SYS] unknown error (_ssl.c:2580)
../../../miniconda3/envs/dask-distributed/lib/python3.11/ssl.py:1166: SSLError
Check warning on line 0 in distributed.tests.test_client
github-actions / Unit Test Results
11 out of 12 runs failed: test_persist_async (distributed.tests.test_client)
artifacts/macos-latest-3.12-default-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-3.10-default-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-3.10-no_expr-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-3.10-no_queue-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-3.11-default-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-3.12-default-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-mindeps-numpy-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-mindeps-pandas-ci1/pytest.xml [took 0s]
artifacts/windows-latest-3.10-default-ci1/pytest.xml [took 0s]
artifacts/windows-latest-3.11-default-ci1/pytest.xml [took 0s]
artifacts/windows-latest-3.12-default-ci1/pytest.xml [took 0s]
Raw output
IndexError: tuple index out of range
c = <Client: No scheduler connected>
s = <Scheduler 'tcp://127.0.0.1:34167', workers: 0, cores: 0, tasks: 0>
a = <Worker 'tcp://127.0.0.1:45139', name: 0, status: closed, stored: 0, running: 0/1, ready: 0, comm: 0, waiting: 0>
b = <Worker 'tcp://127.0.0.1:44981', name: 1, status: closed, stored: 0, running: 0/2, ready: 0, comm: 0, waiting: 0>
@gen_cluster(client=True)
async def test_persist_async(c, s, a, b):
pytest.importorskip("numpy")
da = pytest.importorskip("dask.array")
x = da.ones((10, 10), chunks=(5, 10))
y = 2 * (x + 1)
assert len(y.dask) == 6
yy = c.persist(y)
assert len(y.dask) == 6
assert len(yy.dask) == 2
assert all(isinstance(v, Future) for v in yy.dask.values())
assert yy.__dask_keys__() == y.__dask_keys__()
g, h = c.compute([y, yy])
> gg, hh = await c.gather([g, h])
distributed/tests/test_client.py:2565:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
distributed/client.py:2427: in _gather
raise exception.with_traceback(traceback)
../../../miniconda3/envs/dask-distributed/lib/python3.10/site-packages/dask/array/core.py:1284: in finalize
return concatenate3(results)
../../../miniconda3/envs/dask-distributed/lib/python3.10/site-packages/dask/array/core.py:5452: in concatenate3
chunks = chunks_from_arrays(arrays)
../../../miniconda3/envs/dask-distributed/lib/python3.10/site-packages/dask/array/core.py:5237: in chunks_from_arrays
result.append(tuple(shape(deepfirst(a))[dim] for a in arrays))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
from __future__ import annotations
import contextlib
import math
import operator
import os
import pickle
import re
import sys
import traceback
import uuid
import warnings
from bisect import bisect
from collections import defaultdict
from collections.abc import Collection, Iterable, Iterator, Mapping, Sequence
from functools import lru_cache, partial, reduce, wraps
from itertools import product, zip_longest
from numbers import Integral, Number
from operator import add, mul
from threading import Lock
from typing import Any, Literal, TypeVar, Union, cast
import numpy as np
from numpy.typing import ArrayLike
from packaging.version import Version
from tlz import accumulate, concat, first, groupby, partition
from tlz.curried import pluck
from toolz import frequencies
from dask import compute, config, core
from dask.array import chunk
from dask.array.chunk import getitem
from dask.array.chunk_types import is_valid_array_chunk, is_valid_chunk_type
# Keep einsum_lookup and tensordot_lookup here for backwards compatibility
from dask.array.dispatch import ( # noqa: F401
concatenate_lookup,
einsum_lookup,
tensordot_lookup,
)
from dask.array.numpy_compat import NUMPY_GE_200, _Recurser
from dask.array.slicing import replace_ellipsis, setitem_array, slice_array
from dask.array.utils import compute_meta, meta_from_array
from dask.base import (
DaskMethodsMixin,
compute_as_if_collection,
dont_optimize,
is_dask_collection,
named_schedulers,
persist,
tokenize,
)
from dask.blockwise import blockwise as core_blockwise
from dask.blockwise import broadcast_dimensions
from dask.context import globalmethod
from dask.core import quote
from dask.delayed import Delayed, delayed
from dask.highlevelgraph import HighLevelGraph, MaterializedLayer
from dask.layers import ArrayBlockIdDep, ArraySliceDep, ArrayValuesDep, reshapelist
from dask.sizeof import sizeof
from dask.typing import Graph, Key, NestedKeys
from dask.utils import (
IndexCallable,
SerializableLock,
cached_cumsum,
cached_property,
concrete,
derived_from,
format_bytes,
funcname,
has_keyword,
is_arraylike,
is_dataframe_like,
is_index_like,
is_integer,
is_series_like,
maybe_pluralize,
ndeepmap,
ndimlist,
parse_bytes,
typename,
)
from dask.widgets import get_template
T_IntOrNaN = Union[int, float] # Should be Union[int, Literal[np.nan]]
DEFAULT_GET = named_schedulers.get("threads", named_schedulers["sync"])
unknown_chunk_message = (
"\n\n"
"A possible solution: "
"https://docs.dask.org/en/latest/array-chunks.html#unknown-chunks\n"
"Summary: to compute chunks sizes, use\n\n"
" x.compute_chunk_sizes() # for Dask Array `x`\n"
" ddf.to_dask_array(lengths=True) # for Dask DataFrame `ddf`"
)
class PerformanceWarning(Warning):
"""A warning given when bad chunking may cause poor performance"""
def getter(a, b, asarray=True, lock=None):
if isinstance(b, tuple) and any(x is None for x in b):
b2 = tuple(x for x in b if x is not None)
b3 = tuple(
None if x is None else slice(None, None)
for x in b
if not isinstance(x, Integral)
)
return getter(a, b2, asarray=asarray, lock=lock)[b3]
if lock:
lock.acquire()
try:
c = a[b]
# Below we special-case `np.matrix` to force a conversion to
# `np.ndarray` and preserve original Dask behavior for `getter`,
# as for all purposes `np.matrix` is array-like and thus
# `is_arraylike` evaluates to `True` in that case.
if asarray and (not is_arraylike(c) or isinstance(c, np.matrix)):
c = np.asarray(c)
finally:
if lock:
lock.release()
return c
def getter_nofancy(a, b, asarray=True, lock=None):
"""A simple wrapper around ``getter``.
Used to indicate to the optimization passes that the backend doesn't
support fancy indexing.
"""
return getter(a, b, asarray=asarray, lock=lock)
def getter_inline(a, b, asarray=True, lock=None):
"""A getter function that optimizations feel comfortable inlining
Slicing operations with this function may be inlined into a graph, such as
in the following rewrite
**Before**
>>> a = x[:10] # doctest: +SKIP
>>> b = a + 1 # doctest: +SKIP
>>> c = a * 2 # doctest: +SKIP
**After**
>>> b = x[:10] + 1 # doctest: +SKIP
>>> c = x[:10] * 2 # doctest: +SKIP
This inlining can be relevant to operations when running off of disk.
"""
return getter(a, b, asarray=asarray, lock=lock)
from dask.array.optimization import fuse_slice, optimize
# __array_function__ dict for mapping aliases and mismatching names
_HANDLED_FUNCTIONS = {}
def implements(*numpy_functions):
"""Register an __array_function__ implementation for dask.array.Array
Register that a function implements the API of a NumPy function (or several
NumPy functions in case of aliases) which is handled with
``__array_function__``.
Parameters
----------
\\*numpy_functions : callables
One or more NumPy functions that are handled by ``__array_function__``
and will be mapped by `implements` to a `dask.array` function.
"""
def decorator(dask_func):
for numpy_function in numpy_functions:
_HANDLED_FUNCTIONS[numpy_function] = dask_func
return dask_func
return decorator
def _should_delegate(self, other) -> bool:
"""Check whether Dask should delegate to the other.
This implementation follows NEP-13:
https://numpy.org/neps/nep-0013-ufunc-overrides.html#behavior-in-combination-with-python-s-binary-operations
"""
if hasattr(other, "__array_ufunc__") and other.__array_ufunc__ is None:
return True
elif (
hasattr(other, "__array_ufunc__")
and not is_valid_array_chunk(other)
# don't delegate to our own parent classes
and not isinstance(self, type(other))
and type(self) is not type(other)
):
return True
return False
def check_if_handled_given_other(f):
"""Check if method is handled by Dask given type of other
Ensures proper deferral to upcast types in dunder operations without
assuming unknown types are automatically downcast types.
"""
@wraps(f)
def wrapper(self, other):
if _should_delegate(self, other):
return NotImplemented
else:
return f(self, other)
return wrapper
def slices_from_chunks(chunks):
"""Translate chunks tuple to a set of slices in product order
>>> slices_from_chunks(((2, 2), (3, 3, 3))) # doctest: +NORMALIZE_WHITESPACE
[(slice(0, 2, None), slice(0, 3, None)),
(slice(0, 2, None), slice(3, 6, None)),
(slice(0, 2, None), slice(6, 9, None)),
(slice(2, 4, None), slice(0, 3, None)),
(slice(2, 4, None), slice(3, 6, None)),
(slice(2, 4, None), slice(6, 9, None))]
"""
cumdims = [cached_cumsum(bds, initial_zero=True) for bds in chunks]
slices = [
[slice(s, s + dim) for s, dim in zip(starts, shapes)]
for starts, shapes in zip(cumdims, chunks)
]
return list(product(*slices))
def graph_from_arraylike(
arr, # Any array-like which supports slicing
chunks,
shape,
name,
getitem=getter,
lock=False,
asarray=True,
dtype=None,
inline_array=False,
) -> HighLevelGraph:
"""
HighLevelGraph for slicing chunks from an array-like according to a chunk pattern.
If ``inline_array`` is True, this make a Blockwise layer of slicing tasks where the
array-like is embedded into every task.,
If ``inline_array`` is False, this inserts the array-like as a standalone value in
a MaterializedLayer, then generates a Blockwise layer of slicing tasks that refer
to it.
>>> dict(graph_from_arraylike(arr, chunks=(2, 3), shape=(4, 6), name="X", inline_array=True)) # doctest: +SKIP
{(arr, 0, 0): (getter, arr, (slice(0, 2), slice(0, 3))),
(arr, 1, 0): (getter, arr, (slice(2, 4), slice(0, 3))),
(arr, 1, 1): (getter, arr, (slice(2, 4), slice(3, 6))),
(arr, 0, 1): (getter, arr, (slice(0, 2), slice(3, 6)))}
>>> dict( # doctest: +SKIP
graph_from_arraylike(arr, chunks=((2, 2), (3, 3)), shape=(4,6), name="X", inline_array=False)
)
{"original-X": arr,
('X', 0, 0): (getter, 'original-X', (slice(0, 2), slice(0, 3))),
('X', 1, 0): (getter, 'original-X', (slice(2, 4), slice(0, 3))),
('X', 1, 1): (getter, 'original-X', (slice(2, 4), slice(3, 6))),
('X', 0, 1): (getter, 'original-X', (slice(0, 2), slice(3, 6)))}
"""
chunks = normalize_chunks(chunks, shape, dtype=dtype)
out_ind = tuple(range(len(shape)))
if (
has_keyword(getitem, "asarray")
and has_keyword(getitem, "lock")
and (not asarray or lock)
):
kwargs = {"asarray": asarray, "lock": lock}
else:
# Common case, drop extra parameters
kwargs = {}
if inline_array:
layer = core_blockwise(
getitem,
name,
out_ind,
arr,
None,
ArraySliceDep(chunks),
out_ind,
numblocks={},
**kwargs,
)
return HighLevelGraph.from_collections(name, layer)
else:
original_name = "original-" + name
layers = {}
layers[original_name] = MaterializedLayer({original_name: arr})
layers[name] = core_blockwise(
getitem,
name,
out_ind,
original_name,
None,
ArraySliceDep(chunks),
out_ind,
numblocks={},
**kwargs,
)
deps = {
original_name: set(),
name: {original_name},
}
return HighLevelGraph(layers, deps)
def dotmany(A, B, leftfunc=None, rightfunc=None, **kwargs):
"""Dot product of many aligned chunks
>>> x = np.array([[1, 2], [1, 2]])
>>> y = np.array([[10, 20], [10, 20]])
>>> dotmany([x, x, x], [y, y, y])
array([[ 90, 180],
[ 90, 180]])
Optionally pass in functions to apply to the left and right chunks
>>> dotmany([x, x, x], [y, y, y], rightfunc=np.transpose)
array([[150, 150],
[150, 150]])
"""
if leftfunc:
A = map(leftfunc, A)
if rightfunc:
B = map(rightfunc, B)
return sum(map(partial(np.dot, **kwargs), A, B))
def _concatenate2(arrays, axes=None):
"""Recursively concatenate nested lists of arrays along axes
Each entry in axes corresponds to each level of the nested list. The
length of axes should correspond to the level of nesting of arrays.
If axes is an empty list or tuple, return arrays, or arrays[0] if
arrays is a list.
>>> x = np.array([[1, 2], [3, 4]])
>>> _concatenate2([x, x], axes=[0])
array([[1, 2],
[3, 4],
[1, 2],
[3, 4]])
>>> _concatenate2([x, x], axes=[1])
array([[1, 2, 1, 2],
[3, 4, 3, 4]])
>>> _concatenate2([[x, x], [x, x]], axes=[0, 1])
array([[1, 2, 1, 2],
[3, 4, 3, 4],
[1, 2, 1, 2],
[3, 4, 3, 4]])
Supports Iterators
>>> _concatenate2(iter([x, x]), axes=[1])
array([[1, 2, 1, 2],
[3, 4, 3, 4]])
Special Case
>>> _concatenate2([x, x], axes=())
array([[1, 2],
[3, 4]])
"""
if axes is None:
axes = []
if axes == ():
if isinstance(arrays, list):
return arrays[0]
else:
return arrays
if isinstance(arrays, Iterator):
arrays = list(arrays)
if not isinstance(arrays, (list, tuple)):
return arrays
if len(axes) > 1:
arrays = [_concatenate2(a, axes=axes[1:]) for a in arrays]
concatenate = concatenate_lookup.dispatch(
type(max(arrays, key=lambda x: getattr(x, "__array_priority__", 0)))
)
if isinstance(arrays[0], dict):
# Handle concatenation of `dict`s, used as a replacement for structured
# arrays when that's not supported by the array library (e.g., CuPy).
keys = list(arrays[0].keys())
assert all(list(a.keys()) == keys for a in arrays)
ret = dict()
for k in keys:
ret[k] = concatenate(list(a[k] for a in arrays), axis=axes[0])
return ret
else:
return concatenate(arrays, axis=axes[0])
def apply_infer_dtype(func, args, kwargs, funcname, suggest_dtype="dtype", nout=None):
"""
Tries to infer output dtype of ``func`` for a small set of input arguments.
Parameters
----------
func: Callable
Function for which output dtype is to be determined
args: List of array like
Arguments to the function, which would usually be used. Only attributes
``ndim`` and ``dtype`` are used.
kwargs: dict
Additional ``kwargs`` to the ``func``
funcname: String
Name of calling function to improve potential error messages
suggest_dtype: None/False or String
If not ``None`` adds suggestion to potential error message to specify a dtype
via the specified kwarg. Defaults to ``'dtype'``.
nout: None or Int
``None`` if function returns single output, integer if many.
Defaults to ``None``.
Returns
-------
: dtype or List of dtype
One or many dtypes (depending on ``nout``)
"""
from dask.array.utils import meta_from_array
# make sure that every arg is an evaluated array
args = [
(
np.ones_like(meta_from_array(x), shape=((1,) * x.ndim), dtype=x.dtype)
if is_arraylike(x)
else x
)
for x in args
]
try:
with np.errstate(all="ignore"):
o = func(*args, **kwargs)
except Exception as e:
exc_type, exc_value, exc_traceback = sys.exc_info()
tb = "".join(traceback.format_tb(exc_traceback))
suggest = (
(
"Please specify the dtype explicitly using the "
"`{dtype}` kwarg.\n\n".format(dtype=suggest_dtype)
)
if suggest_dtype
else ""
)
msg = (
f"`dtype` inference failed in `{funcname}`.\n\n"
f"{suggest}"
"Original error is below:\n"
"------------------------\n"
f"{e!r}\n\n"
"Traceback:\n"
"---------\n"
f"{tb}"
)
else:
msg = None
if msg is not None:
raise ValueError(msg)
return getattr(o, "dtype", type(o)) if nout is None else tuple(e.dtype for e in o)
def normalize_arg(x):
"""Normalize user provided arguments to blockwise or map_blocks
We do a few things:
1. If they are string literals that might collide with blockwise_token then we
quote them
2. IF they are large (as defined by sizeof) then we put them into the
graph on their own by using dask.delayed
"""
if is_dask_collection(x):
return x
elif isinstance(x, str) and re.match(r"_\d+", x):
return delayed(x)
elif isinstance(x, list) and len(x) >= 10:
return delayed(x)
elif sizeof(x) > 1e6:
return delayed(x)
else:
return x
def _pass_extra_kwargs(func, keys, *args, **kwargs):
"""Helper for :func:`dask.array.map_blocks` to pass `block_info` or `block_id`.
For each element of `keys`, a corresponding element of args is changed
to a keyword argument with that key, before all arguments re passed on
to `func`.
"""
kwargs.update(zip(keys, args))
return func(*args[len(keys) :], **kwargs)
def map_blocks(
func,
*args,
name=None,
token=None,
dtype=None,
chunks=None,
drop_axis=None,
new_axis=None,
enforce_ndim=False,
meta=None,
**kwargs,
):
"""Map a function across all blocks of a dask array.
Note that ``map_blocks`` will attempt to automatically determine the output
array type by calling ``func`` on 0-d versions of the inputs. Please refer to
the ``meta`` keyword argument below if you expect that the function will not
succeed when operating on 0-d arrays.
Parameters
----------
func : callable
Function to apply to every block in the array.
If ``func`` accepts ``block_info=`` or ``block_id=``
as keyword arguments, these will be passed dictionaries
containing information about input and output chunks/arrays
during computation. See examples for details.
args : dask arrays or other objects
dtype : np.dtype, optional
The ``dtype`` of the output array. It is recommended to provide this.
If not provided, will be inferred by applying the function to a small
set of fake data.
chunks : tuple, optional
Chunk shape of resulting blocks if the function does not preserve
shape. If not provided, the resulting array is assumed to have the same
block structure as the first input array.
drop_axis : number or iterable, optional
Dimensions lost by the function.
new_axis : number or iterable, optional
New dimensions created by the function. Note that these are applied
after ``drop_axis`` (if present). The size of each chunk along this
dimension will be set to 1. Please specify ``chunks`` if the individual
chunks have a different size.
enforce_ndim : bool, default False
Whether to enforce at runtime that the dimensionality of the array
produced by ``func`` actually matches that of the array returned by
``map_blocks``.
If True, this will raise an error when there is a mismatch.
token : string, optional
The key prefix to use for the output array. If not provided, will be
determined from the function name.
name : string, optional
The key name to use for the output array. Note that this fully
specifies the output key name, and must be unique. If not provided,
will be determined by a hash of the arguments.
meta : array-like, optional
The ``meta`` of the output array, when specified is expected to be an
array of the same type and dtype of that returned when calling ``.compute()``
on the array returned by this function. When not provided, ``meta`` will be
inferred by applying the function to a small set of fake data, usually a
0-d array. It's important to ensure that ``func`` can successfully complete
computation without raising exceptions when 0-d is passed to it, providing
``meta`` will be required otherwise. If the output type is known beforehand
(e.g., ``np.ndarray``, ``cupy.ndarray``), an empty array of such type dtype
can be passed, for example: ``meta=np.array((), dtype=np.int32)``.
**kwargs :
Other keyword arguments to pass to function. Values must be constants
(not dask.arrays)
See Also
--------
dask.array.map_overlap : Generalized operation with overlap between neighbors.
dask.array.blockwise : Generalized operation with control over block alignment.
Examples
--------
>>> import dask.array as da
>>> x = da.arange(6, chunks=3)
>>> x.map_blocks(lambda x: x * 2).compute()
array([ 0, 2, 4, 6, 8, 10])
The ``da.map_blocks`` function can also accept multiple arrays.
>>> d = da.arange(5, chunks=2)
>>> e = da.arange(5, chunks=2)
>>> f = da.map_blocks(lambda a, b: a + b**2, d, e)
>>> f.compute()
array([ 0, 2, 6, 12, 20])
If the function changes shape of the blocks then you must provide chunks
explicitly.
>>> y = x.map_blocks(lambda x: x[::2], chunks=((2, 2),))
You have a bit of freedom in specifying chunks. If all of the output chunk
sizes are the same, you can provide just that chunk size as a single tuple.
>>> a = da.arange(18, chunks=(6,))
>>> b = a.map_blocks(lambda x: x[:3], chunks=(3,))
If the function changes the dimension of the blocks you must specify the
created or destroyed dimensions.
>>> b = a.map_blocks(lambda x: x[None, :, None], chunks=(1, 6, 1),
... new_axis=[0, 2])
If ``chunks`` is specified but ``new_axis`` is not, then it is inferred to
add the necessary number of axes on the left.
Note that ``map_blocks()`` will concatenate chunks along axes specified by
the keyword parameter ``drop_axis`` prior to applying the function.
This is illustrated in the figure below:
.. image:: /images/map_blocks_drop_axis.png
Due to memory-size-constraints, it is often not advisable to use ``drop_axis``
on an axis that is chunked. In that case, it is better not to use
``map_blocks`` but rather
``dask.array.reduction(..., axis=dropped_axes, concatenate=False)`` which
maintains a leaner memory footprint while it drops any axis.
Map_blocks aligns blocks by block positions without regard to shape. In the
following example we have two arrays with the same number of blocks but
with different shape and chunk sizes.
>>> x = da.arange(1000, chunks=(100,))
>>> y = da.arange(100, chunks=(10,))
The relevant attribute to match is numblocks.
>>> x.numblocks
(10,)
>>> y.numblocks
(10,)
If these match (up to broadcasting rules) then we can map arbitrary
functions across blocks
>>> def func(a, b):
... return np.array([a.max(), b.max()])
>>> da.map_blocks(func, x, y, chunks=(2,), dtype='i8')
dask.array<func, shape=(20,), dtype=int64, chunksize=(2,), chunktype=numpy.ndarray>
>>> _.compute()
array([ 99, 9, 199, 19, 299, 29, 399, 39, 499, 49, 599, 59, 699,
69, 799, 79, 899, 89, 999, 99])
Your block function can get information about where it is in the array by
accepting a special ``block_info`` or ``block_id`` keyword argument.
During computation, they will contain information about each of the input
and output chunks (and dask arrays) relevant to each call of ``func``.
>>> def func(block_info=None):
... pass
This will receive the following information:
>>> block_info # doctest: +SKIP
{0: {'shape': (1000,),
'num-chunks': (10,),
'chunk-location': (4,),
'array-location': [(400, 500)]},
None: {'shape': (1000,),
'num-chunks': (10,),
'chunk-location': (4,),
'array-location': [(400, 500)],
'chunk-shape': (100,),
'dtype': dtype('float64')}}
The keys to the ``block_info`` dictionary indicate which is the input and
output Dask array:
- **Input Dask array(s):** ``block_info[0]`` refers to the first input Dask array.
The dictionary key is ``0`` because that is the argument index corresponding
to the first input Dask array.
In cases where multiple Dask arrays have been passed as input to the function,
you can access them with the number corresponding to the input argument,
eg: ``block_info[1]``, ``block_info[2]``, etc.
(Note that if you pass multiple Dask arrays as input to map_blocks,
the arrays must match each other by having matching numbers of chunks,
along corresponding dimensions up to broadcasting rules.)
- **Output Dask array:** ``block_info[None]`` refers to the output Dask array,
and contains information about the output chunks.
The output chunk shape and dtype may may be different than the input chunks.
For each dask array, ``block_info`` describes:
- ``shape``: the shape of the full Dask array,
- ``num-chunks``: the number of chunks of the full array in each dimension,
- ``chunk-location``: the chunk location (for example the fourth chunk over
in the first dimension), and
- ``array-location``: the array location within the full Dask array
(for example the slice corresponding to ``40:50``).
In addition to these, there are two extra parameters described by
``block_info`` for the output array (in ``block_info[None]``):
- ``chunk-shape``: the output chunk shape, and
- ``dtype``: the output dtype.
These features can be combined to synthesize an array from scratch, for
example:
>>> def func(block_info=None):
... loc = block_info[None]['array-location'][0]
... return np.arange(loc[0], loc[1])
>>> da.map_blocks(func, chunks=((4, 4),), dtype=np.float64)
dask.array<func, shape=(8,), dtype=float64, chunksize=(4,), chunktype=numpy.ndarray>
>>> _.compute()
array([0, 1, 2, 3, 4, 5, 6, 7])
``block_id`` is similar to ``block_info`` but contains only the ``chunk_location``:
>>> def func(block_id=None):
... pass
This will receive the following information:
>>> block_id # doctest: +SKIP
(4, 3)
You may specify the key name prefix of the resulting task in the graph with
the optional ``token`` keyword argument.
>>> x.map_blocks(lambda x: x + 1, name='increment')
dask.array<increment, shape=(1000,), dtype=int64, chunksize=(100,), chunktype=numpy.ndarray>
For functions that may not handle 0-d arrays, it's also possible to specify
``meta`` with an empty array matching the type of the expected result. In
the example below, ``func`` will result in an ``IndexError`` when computing
``meta``:
>>> rng = da.random.default_rng()
>>> da.map_blocks(lambda x: x[2], rng.random(5), meta=np.array(()))
dask.array<lambda, shape=(5,), dtype=float64, chunksize=(5,), chunktype=numpy.ndarray>
Similarly, it's possible to specify a non-NumPy array to ``meta``, and provide
a ``dtype``:
>>> import cupy # doctest: +SKIP
>>> rng = da.random.default_rng(cupy.random.default_rng()) # doctest: +SKIP
>>> dt = np.float32
>>> da.map_blocks(lambda x: x[2], rng.random(5, dtype=dt), meta=cupy.array((), dtype=dt)) # doctest: +SKIP
dask.array<lambda, shape=(5,), dtype=float32, chunksize=(5,), chunktype=cupy.ndarray>
"""
if drop_axis is None:
drop_axis = []
if not callable(func):
msg = (
"First argument must be callable function, not %s\n"
"Usage: da.map_blocks(function, x)\n"
" or: da.map_blocks(function, x, y, z)"
)
raise TypeError(msg % type(func).__name__)
if token:
warnings.warn(
"The `token=` keyword to `map_blocks` has been moved to `name=`. "
"Please use `name=` instead as the `token=` keyword will be removed "
"in a future release.",
category=FutureWarning,
)
name = token
name = f"{name or funcname(func)}-{tokenize(func, dtype, chunks, drop_axis, new_axis, *args, **kwargs)}"
new_axes = {}
if isinstance(drop_axis, Number):
drop_axis = [drop_axis]
if isinstanc…tack
"""
from dask.array import wrap
seq = [asarray(a, allow_unknown_chunksizes=allow_unknown_chunksizes) for a in seq]
if not seq:
raise ValueError("Need array(s) to concatenate")
if axis is None:
seq = [a.flatten() for a in seq]
axis = 0
seq_metas = [meta_from_array(s) for s in seq]
_concatenate = concatenate_lookup.dispatch(
type(max(seq_metas, key=lambda x: getattr(x, "__array_priority__", 0)))
)
meta = _concatenate(seq_metas, axis=axis)
# Promote types to match meta
seq = [a.astype(meta.dtype) for a in seq]
# Find output array shape
ndim = len(seq[0].shape)
shape = tuple(
sum(a.shape[i] for a in seq) if i == axis else seq[0].shape[i]
for i in range(ndim)
)
# Drop empty arrays
seq2 = [a for a in seq if a.size]
if not seq2:
seq2 = seq
if axis < 0:
axis = ndim + axis
if axis >= ndim:
msg = (
"Axis must be less than than number of dimensions"
"\nData has %d dimensions, but got axis=%d"
)
raise ValueError(msg % (ndim, axis))
n = len(seq2)
if n == 0:
try:
return wrap.empty_like(meta, shape=shape, chunks=shape, dtype=meta.dtype)
except TypeError:
return wrap.empty(shape, chunks=shape, dtype=meta.dtype)
elif n == 1:
return seq2[0]
if not allow_unknown_chunksizes and not all(
i == axis or all(x.shape[i] == seq2[0].shape[i] for x in seq2)
for i in range(ndim)
):
if any(map(np.isnan, seq2[0].shape)):
raise ValueError(
"Tried to concatenate arrays with unknown"
" shape %s.\n\nTwo solutions:\n"
" 1. Force concatenation pass"
" allow_unknown_chunksizes=True.\n"
" 2. Compute shapes with "
"[x.compute_chunk_sizes() for x in seq]" % str(seq2[0].shape)
)
raise ValueError("Shapes do not align: %s", [x.shape for x in seq2])
inds = [list(range(ndim)) for i in range(n)]
for i, ind in enumerate(inds):
ind[axis] = -(i + 1)
uc_args = list(concat(zip(seq2, inds)))
_, seq2 = unify_chunks(*uc_args, warn=False)
bds = [a.chunks for a in seq2]
chunks = (
seq2[0].chunks[:axis]
+ (sum((bd[axis] for bd in bds), ()),)
+ seq2[0].chunks[axis + 1 :]
)
cum_dims = [0] + list(accumulate(add, [len(a.chunks[axis]) for a in seq2]))
names = [a.name for a in seq2]
name = "concatenate-" + tokenize(names, axis)
keys = list(product([name], *[range(len(bd)) for bd in chunks]))
values = [
(names[bisect(cum_dims, key[axis + 1]) - 1],)
+ key[1 : axis + 1]
+ (key[axis + 1] - cum_dims[bisect(cum_dims, key[axis + 1]) - 1],)
+ key[axis + 2 :]
for key in keys
]
dsk = dict(zip(keys, values))
graph = HighLevelGraph.from_collections(name, dsk, dependencies=seq2)
return Array(graph, name, chunks, meta=meta)
def load_store_chunk(
x: Any,
out: Any,
index: slice,
lock: Any,
return_stored: bool,
load_stored: bool,
):
"""
A function inserted in a Dask graph for storing a chunk.
Parameters
----------
x: array-like
An array (potentially a NumPy one)
out: array-like
Where to store results.
index: slice-like
Where to store result from ``x`` in ``out``.
lock: Lock-like or False
Lock to use before writing to ``out``.
return_stored: bool
Whether to return ``out``.
load_stored: bool
Whether to return the array stored in ``out``.
Ignored if ``return_stored`` is not ``True``.
Returns
-------
If return_stored=True and load_stored=False
out
If return_stored=True and load_stored=True
out[index]
If return_stored=False and compute=False
None
Examples
--------
>>> a = np.ones((5, 6))
>>> b = np.empty(a.shape)
>>> load_store_chunk(a, b, (slice(None), slice(None)), False, False, False)
"""
if lock:
lock.acquire()
try:
if x is not None and x.size != 0:
if is_arraylike(x):
out[index] = x
else:
out[index] = np.asanyarray(x)
if return_stored and load_stored:
return out[index]
elif return_stored and not load_stored:
return out
else:
return None
finally:
if lock:
lock.release()
def store_chunk(
x: ArrayLike, out: ArrayLike, index: slice, lock: Any, return_stored: bool
):
return load_store_chunk(x, out, index, lock, return_stored, False)
A = TypeVar("A", bound=ArrayLike)
def load_chunk(out: A, index: slice, lock: Any) -> A:
return load_store_chunk(None, out, index, lock, True, True)
def insert_to_ooc(
keys: list,
chunks: tuple[tuple[int, ...], ...],
out: ArrayLike,
name: str,
*,
lock: Lock | bool = True,
region: tuple[slice, ...] | slice | None = None,
return_stored: bool = False,
load_stored: bool = False,
) -> dict:
"""
Creates a Dask graph for storing chunks from ``arr`` in ``out``.
Parameters
----------
keys: list
Dask keys of the input array
chunks: tuple
Dask chunks of the input array
out: array-like
Where to store results to
name: str
First element of dask keys
lock: Lock-like or bool, optional
Whether to lock or with what (default is ``True``,
which means a :class:`threading.Lock` instance).
region: slice-like, optional
Where in ``out`` to store ``arr``'s results
(default is ``None``, meaning all of ``out``).
return_stored: bool, optional
Whether to return ``out``
(default is ``False``, meaning ``None`` is returned).
load_stored: bool, optional
Whether to handling loading from ``out`` at the same time.
Ignored if ``return_stored`` is not ``True``.
(default is ``False``, meaning defer to ``return_stored``).
Returns
-------
dask graph of store operation
Examples
--------
>>> import dask.array as da
>>> d = da.ones((5, 6), chunks=(2, 3))
>>> a = np.empty(d.shape)
>>> insert_to_ooc(d.__dask_keys__(), d.chunks, a, "store-123") # doctest: +SKIP
"""
if lock is True:
lock = Lock()
slices = slices_from_chunks(chunks)
if region:
slices = [fuse_slice(region, slc) for slc in slices]
if return_stored and load_stored:
func = load_store_chunk
args = (load_stored,)
else:
func = store_chunk # type: ignore
args = () # type: ignore
dsk = {
(name,) + t[1:]: (func, t, out, slc, lock, return_stored) + args
for t, slc in zip(core.flatten(keys), slices)
}
return dsk
def retrieve_from_ooc(
keys: Collection[Key], dsk_pre: Graph, dsk_post: Graph
) -> dict[tuple, Any]:
"""
Creates a Dask graph for loading stored ``keys`` from ``dsk``.
Parameters
----------
keys: Collection
A sequence containing Dask graph keys to load
dsk_pre: Mapping
A Dask graph corresponding to a Dask Array before computation
dsk_post: Mapping
A Dask graph corresponding to a Dask Array after computation
Examples
--------
>>> import dask.array as da
>>> d = da.ones((5, 6), chunks=(2, 3))
>>> a = np.empty(d.shape)
>>> g = insert_to_ooc(d.__dask_keys__(), d.chunks, a, "store-123")
>>> retrieve_from_ooc(g.keys(), g, {k: k for k in g.keys()}) # doctest: +SKIP
"""
load_dsk = {
("load-" + k[0],) + k[1:]: (load_chunk, dsk_post[k]) + dsk_pre[k][3:-1] # type: ignore
for k in keys
}
return load_dsk
def _as_dtype(a, dtype):
if dtype is None:
return a
else:
return a.astype(dtype)
def asarray(
a, allow_unknown_chunksizes=False, dtype=None, order=None, *, like=None, **kwargs
):
"""Convert the input to a dask array.
Parameters
----------
a : array-like
Input data, in any form that can be converted to a dask array. This
includes lists, lists of tuples, tuples, tuples of tuples, tuples of
lists and ndarrays.
allow_unknown_chunksizes: bool
Allow unknown chunksizes, such as come from converting from dask
dataframes. Dask.array is unable to verify that chunks line up. If
data comes from differently aligned sources then this can cause
unexpected results.
dtype : data-type, optional
By default, the data-type is inferred from the input data.
order : {‘C’, ‘F’, ‘A’, ‘K’}, optional
Memory layout. ‘A’ and ‘K’ depend on the order of input array a.
‘C’ row-major (C-style), ‘F’ column-major (Fortran-style) memory
representation. ‘A’ (any) means ‘F’ if a is Fortran contiguous, ‘C’
otherwise ‘K’ (keep) preserve input order. Defaults to ‘C’.
like: array-like
Reference object to allow the creation of Dask arrays with chunks
that are not NumPy arrays. If an array-like passed in as ``like``
supports the ``__array_function__`` protocol, the chunk type of the
resulting array will be defined by it. In this case, it ensures the
creation of a Dask array compatible with that passed in via this
argument. If ``like`` is a Dask array, the chunk type of the
resulting array will be defined by the chunk type of ``like``.
Requires NumPy 1.20.0 or higher.
Returns
-------
out : dask array
Dask array interpretation of a.
Examples
--------
>>> import dask.array as da
>>> import numpy as np
>>> x = np.arange(3)
>>> da.asarray(x)
dask.array<array, shape=(3,), dtype=int64, chunksize=(3,), chunktype=numpy.ndarray>
>>> y = [[1, 2, 3], [4, 5, 6]]
>>> da.asarray(y)
dask.array<array, shape=(2, 3), dtype=int64, chunksize=(2, 3), chunktype=numpy.ndarray>
.. warning::
`order` is ignored if `a` is an `Array`, has the attribute ``to_dask_array``,
or is a list or tuple of `Array`'s.
"""
if like is None:
if isinstance(a, Array):
return _as_dtype(a, dtype)
elif hasattr(a, "to_dask_array"):
return _as_dtype(a.to_dask_array(), dtype)
elif type(a).__module__.split(".")[0] == "xarray" and hasattr(a, "data"):
return _as_dtype(asarray(a.data, order=order), dtype)
elif isinstance(a, (list, tuple)) and any(isinstance(i, Array) for i in a):
return _as_dtype(
stack(a, allow_unknown_chunksizes=allow_unknown_chunksizes), dtype
)
elif not isinstance(getattr(a, "shape", None), Iterable):
a = np.asarray(a, dtype=dtype, order=order)
else:
like_meta = meta_from_array(like)
if isinstance(a, Array):
return a.map_blocks(np.asarray, like=like_meta, dtype=dtype, order=order)
else:
a = np.asarray(a, like=like_meta, dtype=dtype, order=order)
return from_array(a, getitem=getter_inline, **kwargs)
def asanyarray(a, dtype=None, order=None, *, like=None, inline_array=False):
"""Convert the input to a dask array.
Subclasses of ``np.ndarray`` will be passed through as chunks unchanged.
Parameters
----------
a : array-like
Input data, in any form that can be converted to a dask array. This
includes lists, lists of tuples, tuples, tuples of tuples, tuples of
lists and ndarrays.
dtype : data-type, optional
By default, the data-type is inferred from the input data.
order : {‘C’, ‘F’, ‘A’, ‘K’}, optional
Memory layout. ‘A’ and ‘K’ depend on the order of input array a.
‘C’ row-major (C-style), ‘F’ column-major (Fortran-style) memory
representation. ‘A’ (any) means ‘F’ if a is Fortran contiguous, ‘C’
otherwise ‘K’ (keep) preserve input order. Defaults to ‘C’.
like: array-like
Reference object to allow the creation of Dask arrays with chunks
that are not NumPy arrays. If an array-like passed in as ``like``
supports the ``__array_function__`` protocol, the chunk type of the
resulting array will be defined by it. In this case, it ensures the
creation of a Dask array compatible with that passed in via this
argument. If ``like`` is a Dask array, the chunk type of the
resulting array will be defined by the chunk type of ``like``.
Requires NumPy 1.20.0 or higher.
inline_array:
Whether to inline the array in the resulting dask graph. For more information,
see the documentation for ``dask.array.from_array()``.
Returns
-------
out : dask array
Dask array interpretation of a.
Examples
--------
>>> import dask.array as da
>>> import numpy as np
>>> x = np.arange(3)
>>> da.asanyarray(x)
dask.array<array, shape=(3,), dtype=int64, chunksize=(3,), chunktype=numpy.ndarray>
>>> y = [[1, 2, 3], [4, 5, 6]]
>>> da.asanyarray(y)
dask.array<array, shape=(2, 3), dtype=int64, chunksize=(2, 3), chunktype=numpy.ndarray>
.. warning::
`order` is ignored if `a` is an `Array`, has the attribute ``to_dask_array``,
or is a list or tuple of `Array`'s.
"""
if like is None:
if isinstance(a, Array):
return _as_dtype(a, dtype)
elif hasattr(a, "to_dask_array"):
return _as_dtype(a.to_dask_array(), dtype)
elif type(a).__module__.split(".")[0] == "xarray" and hasattr(a, "data"):
return _as_dtype(asarray(a.data, order=order), dtype)
elif isinstance(a, (list, tuple)) and any(isinstance(i, Array) for i in a):
return _as_dtype(stack(a), dtype)
elif not isinstance(getattr(a, "shape", None), Iterable):
a = np.asanyarray(a, dtype=dtype, order=order)
else:
like_meta = meta_from_array(like)
if isinstance(a, Array):
return a.map_blocks(np.asanyarray, like=like_meta, dtype=dtype, order=order)
else:
a = np.asanyarray(a, like=like_meta, dtype=dtype, order=order)
return from_array(
a,
chunks=a.shape,
getitem=getter_inline,
asarray=False,
inline_array=inline_array,
)
def is_scalar_for_elemwise(arg):
"""
>>> is_scalar_for_elemwise(42)
True
>>> is_scalar_for_elemwise('foo')
True
>>> is_scalar_for_elemwise(True)
True
>>> is_scalar_for_elemwise(np.array(42))
True
>>> is_scalar_for_elemwise([1, 2, 3])
True
>>> is_scalar_for_elemwise(np.array([1, 2, 3]))
False
>>> is_scalar_for_elemwise(from_array(np.array(0), chunks=()))
False
>>> is_scalar_for_elemwise(np.dtype('i4'))
True
"""
# the second half of shape_condition is essentially just to ensure that
# dask series / frame are treated as scalars in elemwise.
maybe_shape = getattr(arg, "shape", None)
shape_condition = not isinstance(maybe_shape, Iterable) or any(
is_dask_collection(x) for x in maybe_shape
)
return (
np.isscalar(arg)
or shape_condition
or isinstance(arg, np.dtype)
or (isinstance(arg, np.ndarray) and arg.ndim == 0)
)
def broadcast_shapes(*shapes):
"""
Determines output shape from broadcasting arrays.
Parameters
----------
shapes : tuples
The shapes of the arguments.
Returns
-------
output_shape : tuple
Raises
------
ValueError
If the input shapes cannot be successfully broadcast together.
"""
if len(shapes) == 1:
return shapes[0]
out = []
for sizes in zip_longest(*map(reversed, shapes), fillvalue=-1):
if np.isnan(sizes).any():
dim = np.nan
else:
dim = 0 if 0 in sizes else np.max(sizes).item()
if any(i not in [-1, 0, 1, dim] and not np.isnan(i) for i in sizes):
raise ValueError(
"operands could not be broadcast together with "
"shapes {}".format(" ".join(map(str, shapes)))
)
out.append(dim)
return tuple(reversed(out))
def elemwise(op, *args, out=None, where=True, dtype=None, name=None, **kwargs):
"""Apply an elementwise ufunc-like function blockwise across arguments.
Like numpy ufuncs, broadcasting rules are respected.
Parameters
----------
op : callable
The function to apply. Should be numpy ufunc-like in the parameters
that it accepts.
*args : Any
Arguments to pass to `op`. Non-dask array-like objects are first
converted to dask arrays, then all arrays are broadcast together before
applying the function blockwise across all arguments. Any scalar
arguments are passed as-is following normal numpy ufunc behavior.
out : dask array, optional
If out is a dask.array then this overwrites the contents of that array
with the result.
where : array_like, optional
An optional boolean mask marking locations where the ufunc should be
applied. Can be a scalar, dask array, or any other array-like object.
Mirrors the ``where`` argument to numpy ufuncs, see e.g. ``numpy.add``
for more information.
dtype : dtype, optional
If provided, overrides the output array dtype.
name : str, optional
A unique key name to use when building the backing dask graph. If not
provided, one will be automatically generated based on the input
arguments.
Examples
--------
>>> elemwise(add, x, y) # doctest: +SKIP
>>> elemwise(sin, x) # doctest: +SKIP
>>> elemwise(sin, x, out=dask_array) # doctest: +SKIP
See Also
--------
blockwise
"""
if kwargs:
raise TypeError(
f"{op.__name__} does not take the following keyword arguments "
f"{sorted(kwargs)}"
)
out = _elemwise_normalize_out(out)
where = _elemwise_normalize_where(where)
args = [np.asarray(a) if isinstance(a, (list, tuple)) else a for a in args]
shapes = []
for arg in args:
shape = getattr(arg, "shape", ())
if any(is_dask_collection(x) for x in shape):
# Want to exclude Delayed shapes and dd.Scalar
shape = ()
shapes.append(shape)
if isinstance(where, Array):
shapes.append(where.shape)
if isinstance(out, Array):
shapes.append(out.shape)
shapes = [s if isinstance(s, Iterable) else () for s in shapes]
out_ndim = len(
broadcast_shapes(*shapes)
) # Raises ValueError if dimensions mismatch
expr_inds = tuple(range(out_ndim))[::-1]
if dtype is not None:
need_enforce_dtype = True
else:
# We follow NumPy's rules for dtype promotion, which special cases
# scalars and 0d ndarrays (which it considers equivalent) by using
# their values to compute the result dtype:
# https://github.com/numpy/numpy/issues/6240
# We don't inspect the values of 0d dask arrays, because these could
# hold potentially very expensive calculations. Instead, we treat
# them just like other arrays, and if necessary cast the result of op
# to match.
vals = [
(
np.empty((1,) * max(1, a.ndim), dtype=a.dtype)
if not is_scalar_for_elemwise(a)
else a
)
for a in args
]
try:
dtype = apply_infer_dtype(op, vals, {}, "elemwise", suggest_dtype=False)
except Exception:
return NotImplemented
need_enforce_dtype = any(
not is_scalar_for_elemwise(a) and a.ndim == 0 for a in args
)
if not name:
name = f"{funcname(op)}-{tokenize(op, dtype, *args, where)}"
blockwise_kwargs = dict(dtype=dtype, name=name, token=funcname(op).strip("_"))
if where is not True:
blockwise_kwargs["elemwise_where_function"] = op
op = _elemwise_handle_where
args.extend([where, out])
if need_enforce_dtype:
blockwise_kwargs["enforce_dtype"] = dtype
blockwise_kwargs["enforce_dtype_function"] = op
op = _enforce_dtype
result = blockwise(
op,
expr_inds,
*concat(
(a, tuple(range(a.ndim)[::-1]) if not is_scalar_for_elemwise(a) else None)
for a in args
),
**blockwise_kwargs,
)
return handle_out(out, result)
def _elemwise_normalize_where(where):
if where is True:
return True
elif where is False or where is None:
return False
return asarray(where)
def _elemwise_handle_where(*args, **kwargs):
function = kwargs.pop("elemwise_where_function")
*args, where, out = args
if hasattr(out, "copy"):
out = out.copy()
return function(*args, where=where, out=out, **kwargs)
def _elemwise_normalize_out(out):
if isinstance(out, tuple):
if len(out) == 1:
out = out[0]
elif len(out) > 1:
raise NotImplementedError("The out parameter is not fully supported")
else:
out = None
if not (out is None or isinstance(out, Array)):
raise NotImplementedError(
f"The out parameter is not fully supported."
f" Received type {type(out).__name__}, expected Dask Array"
)
return out
def handle_out(out, result):
"""Handle out parameters
If out is a dask.array then this overwrites the contents of that array with
the result
"""
out = _elemwise_normalize_out(out)
if isinstance(out, Array):
if out.shape != result.shape:
raise ValueError(
"Mismatched shapes between result and out parameter. "
"out=%s, result=%s" % (str(out.shape), str(result.shape))
)
out._chunks = result.chunks
out.dask = result.dask
out._meta = result._meta
out._name = result.name
return out
else:
return result
def _enforce_dtype(*args, **kwargs):
"""Calls a function and converts its result to the given dtype.
The parameters have deliberately been given unwieldy names to avoid
clashes with keyword arguments consumed by blockwise
A dtype of `object` is treated as a special case and not enforced,
because it is used as a dummy value in some places when the result will
not be a block in an Array.
Parameters
----------
enforce_dtype : dtype
Result dtype
enforce_dtype_function : callable
The wrapped function, which will be passed the remaining arguments
"""
dtype = kwargs.pop("enforce_dtype")
function = kwargs.pop("enforce_dtype_function")
result = function(*args, **kwargs)
if hasattr(result, "dtype") and dtype != result.dtype and dtype != object:
if not np.can_cast(result, dtype, casting="same_kind"):
raise ValueError(
"Inferred dtype from function %r was %r "
"but got %r, which can't be cast using "
"casting='same_kind'"
% (funcname(function), str(dtype), str(result.dtype))
)
if np.isscalar(result):
# scalar astype method doesn't take the keyword arguments, so
# have to convert via 0-dimensional array and back.
result = result.astype(dtype)
else:
try:
result = result.astype(dtype, copy=False)
except TypeError:
# Missing copy kwarg
result = result.astype(dtype)
return result
def broadcast_to(x, shape, chunks=None, meta=None):
"""Broadcast an array to a new shape.
Parameters
----------
x : array_like
The array to broadcast.
shape : tuple
The shape of the desired array.
chunks : tuple, optional
If provided, then the result will use these chunks instead of the same
chunks as the source array. Setting chunks explicitly as part of
broadcast_to is more efficient than rechunking afterwards. Chunks are
only allowed to differ from the original shape along dimensions that
are new on the result or have size 1 the input array.
meta : empty ndarray
empty ndarray created with same NumPy backend, ndim and dtype as the
Dask Array being created (overrides dtype)
Returns
-------
broadcast : dask array
See Also
--------
:func:`numpy.broadcast_to`
"""
x = asarray(x)
shape = tuple(shape)
if meta is None:
meta = meta_from_array(x)
if x.shape == shape and (chunks is None or chunks == x.chunks):
return x
ndim_new = len(shape) - x.ndim
if ndim_new < 0 or any(
new != old for new, old in zip(shape[ndim_new:], x.shape) if old != 1
):
raise ValueError(f"cannot broadcast shape {x.shape} to shape {shape}")
if chunks is None:
chunks = tuple((s,) for s in shape[:ndim_new]) + tuple(
bd if old > 1 else (new,)
for bd, old, new in zip(x.chunks, x.shape, shape[ndim_new:])
)
else:
chunks = normalize_chunks(
chunks, shape, dtype=x.dtype, previous_chunks=x.chunks
)
for old_bd, new_bd in zip(x.chunks, chunks[ndim_new:]):
if old_bd != new_bd and old_bd != (1,):
raise ValueError(
"cannot broadcast chunks %s to chunks %s: "
"new chunks must either be along a new "
"dimension or a dimension of size 1" % (x.chunks, chunks)
)
name = "broadcast_to-" + tokenize(x, shape, chunks)
dsk = {}
enumerated_chunks = product(*(enumerate(bds) for bds in chunks))
for new_index, chunk_shape in (zip(*ec) for ec in enumerated_chunks):
old_index = tuple(
0 if bd == (1,) else i for bd, i in zip(x.chunks, new_index[ndim_new:])
)
old_key = (x.name,) + old_index
new_key = (name,) + new_index
dsk[new_key] = (np.broadcast_to, old_key, quote(chunk_shape))
graph = HighLevelGraph.from_collections(name, dsk, dependencies=[x])
return Array(graph, name, chunks, dtype=x.dtype, meta=meta)
@derived_from(np)
def broadcast_arrays(*args, subok=False):
subok = bool(subok)
to_array = asanyarray if subok else asarray
args = tuple(to_array(e) for e in args)
# Unify uneven chunking
inds = [list(reversed(range(x.ndim))) for x in args]
uc_args = concat(zip(args, inds))
_, args = unify_chunks(*uc_args, warn=False)
shape = broadcast_shapes(*(e.shape for e in args))
chunks = broadcast_chunks(*(e.chunks for e in args))
if NUMPY_GE_200:
result = tuple(broadcast_to(e, shape=shape, chunks=chunks) for e in args)
else:
result = [broadcast_to(e, shape=shape, chunks=chunks) for e in args]
return result
def offset_func(func, offset, *args):
"""Offsets inputs by offset
>>> double = lambda x: x * 2
>>> f = offset_func(double, (10,))
>>> f(1)
22
>>> f(300)
620
"""
def _offset(*args):
args2 = list(map(add, args, offset))
return func(*args2)
with contextlib.suppress(Exception):
_offset.__name__ = "offset_" + func.__name__
return _offset
def chunks_from_arrays(arrays):
"""Chunks tuple from nested list of arrays
>>> x = np.array([1, 2])
>>> chunks_from_arrays([x, x])
((2, 2),)
>>> x = np.array([[1, 2]])
>>> chunks_from_arrays([[x], [x]])
((1, 1), (2,))
>>> x = np.array([[1, 2]])
>>> chunks_from_arrays([[x, x]])
((1,), (2, 2))
>>> chunks_from_arrays([1, 1])
((1, 1),)
"""
if not arrays:
return ()
result = []
dim = 0
def shape(x):
try:
return x.shape if x.shape else (1,)
except AttributeError:
return (1,)
while isinstance(arrays, (list, tuple)):
> result.append(tuple(shape(deepfirst(a))[dim] for a in arrays))
E IndexError: tuple index out of range
../../../miniconda3/envs/dask-distributed/lib/python3.10/site-packages/dask/array/core.py:5237: IndexError
Check warning on line 0 in distributed.tests.test_client
github-actions / Unit Test Results
1 out of 12 runs failed: test_call_stack_future (distributed.tests.test_client)
artifacts/windows-latest-3.12-default-ci1/pytest.xml [took 1s]
Raw output
KeyError: 'slowinc-1ea6f50d354d90f0a53d5f5250e2c25f'
c = <Client: No scheduler connected>
s = <Scheduler 'tcp://127.0.0.1:49356', workers: 0, cores: 0, tasks: 0>
a = <Worker 'tcp://127.0.0.1:49357', name: 0, status: closed, stored: 0, running: 1/4, ready: 0, comm: 0, waiting: 0>
b = <Worker 'tcp://127.0.0.1:49360', name: 1, status: closed, stored: 0, running: 1/4, ready: 0, comm: 0, waiting: 0>
@gen_cluster([("127.0.0.1", 4)] * 2, client=True)
async def test_call_stack_future(c, s, a, b):
x = c.submit(slowdec, 1, delay=0.5)
future = c.submit(slowinc, 1, delay=0.5)
await asyncio.sleep(0.1)
> results = await asyncio.gather(
c.call_stack(future), c.call_stack(keys=[future.key])
)
distributed\tests\test_client.py:5467:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
distributed\core.py:1259: in send_recv_from_rpc
return await send_recv(comm=comm, op=key, **kwargs)
distributed\core.py:1043: in send_recv
raise exc.with_traceback(tb)
distributed\core.py:834: in _handle_comm
result = await result
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
from __future__ import annotations
import asyncio
import contextlib
import dataclasses
import heapq
import inspect
import itertools
import json
import logging
import math
import operator
import os
import pickle
import random
import textwrap
import uuid
import warnings
import weakref
from abc import abstractmethod
from collections import defaultdict, deque
from collections.abc import (
Callable,
Collection,
Container,
Hashable,
Iterable,
Iterator,
Mapping,
Sequence,
Set,
)
from contextlib import suppress
from functools import partial
from typing import TYPE_CHECKING, Any, ClassVar, Literal, NamedTuple, cast, overload
import psutil
import tornado.web
from sortedcontainers import SortedDict, SortedSet
from tlz import (
concat,
first,
groupby,
merge,
merge_sorted,
merge_with,
partition,
pluck,
second,
take,
valmap,
)
from tornado.ioloop import IOLoop
import dask
import dask.utils
from dask._task_spec import DependenciesMapping, GraphNode, convert_legacy_graph
from dask.base import TokenizationError, normalize_token, tokenize
from dask.core import istask, validate_key
from dask.typing import Key, no_default
from dask.utils import (
_deprecated,
_deprecated_kwarg,
ensure_dict,
format_bytes,
format_time,
key_split,
parse_bytes,
parse_timedelta,
tmpfile,
)
from dask.widgets import get_template
from distributed import cluster_dump, preloading, profile
from distributed import versions as version_module
from distributed._asyncio import RLock
from distributed._stories import scheduler_story
from distributed.active_memory_manager import ActiveMemoryManagerExtension, RetireWorker
from distributed.batched import BatchedSend
from distributed.broker import Broker
from distributed.client import SourceCode
from distributed.collections import HeapSet
from distributed.comm import (
Comm,
CommClosedError,
get_address_host,
normalize_address,
resolve_address,
unparse_host_port,
)
from distributed.comm.addressing import addresses_from_user_args
from distributed.compatibility import PeriodicCallback
from distributed.core import (
ErrorMessage,
OKMessage,
Status,
clean_exception,
error_message,
rpc,
send_recv,
)
from distributed.diagnostics.memory_sampler import MemorySamplerExtension
from distributed.diagnostics.plugin import SchedulerPlugin, _get_plugin_name
from distributed.event import EventExtension
from distributed.gc import disable_gc_diagnosis, enable_gc_diagnosis
from distributed.http import get_handlers
from distributed.metrics import monotonic, time
from distributed.multi_lock import MultiLockExtension
from distributed.node import ServerNode
from distributed.proctitle import setproctitle
from distributed.protocol import deserialize
from distributed.protocol.pickle import dumps, loads
from distributed.protocol.serialize import Serialized, ToPickle, serialize
from distributed.publish import PublishExtension
from distributed.pubsub import PubSubSchedulerExtension
from distributed.queues import QueueExtension
from distributed.recreate_tasks import ReplayTaskScheduler
from distributed.security import Security
from distributed.semaphore import SemaphoreExtension
from distributed.shuffle import ShuffleSchedulerPlugin
from distributed.spans import SpanMetadata, SpansSchedulerExtension
from distributed.stealing import WorkStealing
from distributed.utils import (
All,
Deadline,
TimeoutError,
format_dashboard_link,
get_fileno_limit,
key_split_group,
log_errors,
offload,
recursive_to_dict,
wait_for,
)
from distributed.utils_comm import (
gather_from_workers,
retry_operation,
scatter_to_workers,
)
from distributed.variable import VariableExtension
if TYPE_CHECKING:
# TODO import from typing (requires Python >=3.10)
# TODO import from typing (requires Python >=3.11)
from typing_extensions import Self, TypeAlias
from dask.highlevelgraph import HighLevelGraph
# Not to be confused with distributed.worker_state_machine.TaskStateState
TaskStateState: TypeAlias = Literal[
"released",
"waiting",
"no-worker",
"queued",
"processing",
"memory",
"erred",
"forgotten",
]
ALL_TASK_STATES: Set[TaskStateState] = set(TaskStateState.__args__) # type: ignore
# {task key -> finish state}
# Not to be confused with distributed.worker_state_machine.Recs
Recs: TypeAlias = dict[Key, TaskStateState]
# {client or worker address: [{op: <key>, ...}, ...]}
Msgs: TypeAlias = dict[str, list[dict[str, Any]]]
# (recommendations, client messages, worker messages)
RecsMsgs: TypeAlias = tuple[Recs, Msgs, Msgs]
T_runspec: TypeAlias = GraphNode
logger = logging.getLogger(__name__)
LOG_PDB = dask.config.get("distributed.admin.pdb-on-err")
DEFAULT_DATA_SIZE = parse_bytes(
dask.config.get("distributed.scheduler.default-data-size")
)
STIMULUS_ID_UNSET = "<stimulus_id unset>"
DEFAULT_EXTENSIONS = {
"multi_locks": MultiLockExtension,
"publish": PublishExtension,
"replay-tasks": ReplayTaskScheduler,
"queues": QueueExtension,
"variables": VariableExtension,
"pubsub": PubSubSchedulerExtension,
"semaphores": SemaphoreExtension,
"events": EventExtension,
"amm": ActiveMemoryManagerExtension,
"memory_sampler": MemorySamplerExtension,
"shuffle": ShuffleSchedulerPlugin,
"spans": SpansSchedulerExtension,
"stealing": WorkStealing,
}
class ClientState:
"""A simple object holding information about a client."""
#: A unique identifier for this client. This is generally an opaque
#: string generated by the client itself.
client_key: str
#: Cached hash of :attr:`~ClientState.client_key`
_hash: int
#: A set of tasks this client wants to be kept in memory, so that it can download
#: its result when desired. This is the reverse mapping of
#: :class:`TaskState.who_wants`. Tasks are typically removed from this set when the
#: corresponding object in the client's space (for example a ``Future`` or a Dask
#: collection) gets garbage-collected.
wants_what: set[TaskState]
#: The last time we received a heartbeat from this client, in local scheduler time.
last_seen: float
#: Output of :func:`distributed.versions.get_versions` on the client
versions: dict[str, Any]
__slots__ = tuple(__annotations__)
def __init__(self, client: str, *, versions: dict[str, Any] | None = None):
self.client_key = client
self._hash = hash(client)
self.wants_what = set()
self.last_seen = time()
self.versions = versions or {}
def __hash__(self) -> int:
return self._hash
def __eq__(self, other: object) -> bool:
if not isinstance(other, ClientState):
return False
return self.client_key == other.client_key
def __repr__(self) -> str:
return f"<Client {self.client_key!r}>"
def __str__(self) -> str:
return self.client_key
def _to_dict_no_nest(self, *, exclude: Container[str] = ()) -> dict:
"""Dictionary representation for debugging purposes.
Not type stable and not intended for roundtrips.
See also
--------
Client.dump_cluster_state
distributed.utils.recursive_to_dict
TaskState._to_dict
"""
return recursive_to_dict(
self,
exclude=set(exclude) | {"versions"}, # type: ignore
members=True,
)
class MemoryState:
"""Memory readings on a worker or on the whole cluster.
See :doc:`worker-memory`.
Attributes / properties:
managed_total
Sum of the output of sizeof() for all dask keys held by the worker in memory,
plus number of bytes spilled to disk
managed
Sum of the output of sizeof() for the dask keys held in RAM. Note that this may
be inaccurate, which may cause inaccurate unmanaged memory (see below).
spilled
Number of bytes for the dask keys spilled to the hard drive.
Note that this is the size on disk; size in memory may be different due to
compression and inaccuracies in sizeof(). In other words, given the same keys,
'managed' will change depending on the keys being in memory or spilled.
process
Total RSS memory measured by the OS on the worker process.
This is always exactly equal to managed + unmanaged.
unmanaged
process - managed. This is the sum of
- Python interpreter and modules
- global variables
- memory temporarily allocated by the dask tasks that are currently running
- memory fragmentation
- memory leaks
- memory not yet garbage collected
- memory not yet free()'d by the Python memory manager to the OS
unmanaged_old
Minimum of the 'unmanaged' measures over the last
``distributed.memory.recent-to-old-time`` seconds
unmanaged_recent
unmanaged - unmanaged_old; in other words process memory that has been recently
allocated but is not accounted for by dask; hopefully it's mostly a temporary
spike.
optimistic
managed + unmanaged_old; in other words the memory held long-term by
the process under the hopeful assumption that all unmanaged_recent memory is a
temporary spike
"""
process: int
unmanaged_old: int
managed: int
spilled: int
__slots__ = tuple(__annotations__)
def __init__(
self,
*,
process: int,
unmanaged_old: int,
managed: int,
spilled: int,
):
# Some data arrives with the heartbeat, some other arrives in realtime as the
# tasks progress. Also, sizeof() is not guaranteed to return correct results.
# This can cause glitches where a partial measure is larger than the whole, so
# we need to force all numbers to add up exactly by definition.
self.process = process
self.managed = min(self.process, managed)
self.spilled = spilled
# Subtractions between unsigned ints guaranteed by construction to be >= 0
self.unmanaged_old = min(unmanaged_old, process - self.managed)
@staticmethod
def sum(*infos: MemoryState) -> MemoryState:
process = 0
unmanaged_old = 0
managed = 0
spilled = 0
for ms in infos:
process += ms.process
unmanaged_old += ms.unmanaged_old
spilled += ms.spilled
managed += ms.managed
return MemoryState(
process=process,
unmanaged_old=unmanaged_old,
managed=managed,
spilled=spilled,
)
@property
def managed_total(self) -> int:
return self.managed + self.spilled
@property
def unmanaged(self) -> int:
# This is never negative thanks to __init__
return self.process - self.managed
@property
def unmanaged_recent(self) -> int:
# This is never negative thanks to __init__
return self.process - self.managed - self.unmanaged_old
@property
def optimistic(self) -> int:
return self.managed + self.unmanaged_old
@property
def managed_in_memory(self) -> int:
warnings.warn("managed_in_memory has been renamed to managed", FutureWarning)
return self.managed
@property
def managed_spilled(self) -> int:
warnings.warn("managed_spilled has been renamed to spilled", FutureWarning)
return self.spilled
def __repr__(self) -> str:
return (
f"Process memory (RSS) : {format_bytes(self.process)}\n"
f" - managed by Dask : {format_bytes(self.managed)}\n"
f" - unmanaged (old) : {format_bytes(self.unmanaged_old)}\n"
f" - unmanaged (recent): {format_bytes(self.unmanaged_recent)}\n"
f"Spilled to disk : {format_bytes(self.spilled)}\n"
)
def _to_dict(self, *, exclude: Container[str] = ()) -> dict:
"""Dictionary representation for debugging purposes.
See also
--------
Client.dump_cluster_state
distributed.utils.recursive_to_dict
"""
return {
k: getattr(self, k)
for k in dir(self)
if not k.startswith("_")
and k not in {"sum", "managed_in_memory", "managed_spilled"}
}
class WorkerState:
"""A simple object holding information about a worker.
Not to be confused with :class:`distributed.worker_state_machine.WorkerState`.
"""
#: This worker's unique key. This can be its connected address
#: (such as ``"tcp://127.0.0.1:8891"``) or an alias (such as ``"alice"``).
address: str
pid: int
name: Hashable
#: The number of CPU threads made available on this worker
nthreads: int
#: Memory available to the worker, in bytes
memory_limit: int
local_directory: str
services: dict[str, int]
#: Output of :meth:`distributed.versions.get_versions` on the worker
versions: dict[str, Any]
#: Address of the associated :class:`~distributed.nanny.Nanny`, if present
nanny: str | None
#: Read-only worker status, synced one way from the remote Worker object
status: Status
#: Cached hash of :attr:`~WorkerState.server_id`
_hash: int
#: The total memory size, in bytes, used by the tasks this worker holds in memory
#: (i.e. the tasks in this worker's :attr:`~WorkerState.has_what`).
nbytes: int
#: Worker memory unknown to the worker, in bytes, which has been there for more than
#: 30 seconds. See :class:`MemoryState`.
_memory_unmanaged_old: int
#: History of the last 30 seconds' worth of unmanaged memory. Used to differentiate
#: between "old" and "new" unmanaged memory.
#: Format: ``[(timestamp, bytes), (timestamp, bytes), ...]``
_memory_unmanaged_history: deque[tuple[float, int]]
metrics: dict[str, Any]
#: The last time we received a heartbeat from this worker, in local scheduler time.
last_seen: float
time_delay: float
bandwidth: float
#: A set of all TaskStates on this worker that are actors. This only includes those
#: actors whose state actually lives on this worker, not actors to which this worker
#: has a reference.
actors: set[TaskState]
#: Underlying data of :meth:`WorkerState.has_what`
_has_what: dict[TaskState, None]
#: A set of tasks that have been submitted to this worker. Multiple tasks may be
# submitted to a worker in advance and the worker will run them eventually,
# depending on its execution resources (but see :doc:`work-stealing`).
#:
#: All the tasks here are in the "processing" state.
#: This attribute is kept in sync with :attr:`TaskState.processing_on`.
processing: set[TaskState]
#: Running tasks that invoked :func:`distributed.secede`
long_running: set[TaskState]
#: A dictionary of tasks that are currently being run on this worker.
#: Each task state is associated with the duration in seconds which the task has
#: been running.
executing: dict[TaskState, float]
#: The available resources on this worker, e.g. ``{"GPU": 2}``.
#: These are abstract quantities that constrain certain tasks from running at the
#: same time on this worker.
resources: dict[str, float]
#: The sum of each resource used by all tasks allocated to this worker.
#: The numbers in this dictionary can only be less or equal than those in this
#: worker's :attr:`~WorkerState.resources`.
used_resources: dict[str, float]
#: Arbitrary additional metadata to be added to :meth:`~WorkerState.identity`
extra: dict[str, Any]
# The unique server ID this WorkerState is referencing
server_id: str
# Reference to scheduler task_groups
scheduler_ref: weakref.ref[SchedulerState] | None
task_prefix_count: defaultdict[str, int]
_network_occ: float
_occupancy_cache: float | None
#: Keys that may need to be fetched to this worker, and the number of tasks that need them.
#: All tasks are currently in `memory` on a worker other than this one.
#: Much like `processing`, this does not exactly reflect worker state:
#: keys here may be queued to fetch, in flight, or already in memory
#: on the worker.
needs_what: dict[TaskState, int]
__slots__ = tuple(__annotations__)
def __init__(
self,
*,
address: str,
status: Status,
pid: int,
name: object,
nthreads: int = 0,
memory_limit: int,
local_directory: str,
nanny: str | None,
server_id: str,
services: dict[str, int] | None = None,
versions: dict[str, Any] | None = None,
extra: dict[str, Any] | None = None,
scheduler: SchedulerState | None = None,
):
self.server_id = server_id
self.address = address
self.pid = pid
self.name = name
self.nthreads = nthreads
self.memory_limit = memory_limit
self.local_directory = local_directory
self.services = services or {}
self.versions = versions or {}
self.nanny = nanny
self.status = status
self._hash = hash(self.server_id)
self.nbytes = 0
self._memory_unmanaged_old = 0
self._memory_unmanaged_history = deque()
self.metrics = {}
self.last_seen = time()
self.time_delay = 0
self.bandwidth = parse_bytes(dask.config.get("distributed.scheduler.bandwidth"))
self.actors = set()
self._has_what = {}
self.processing = set()
self.long_running = set()
self.executing = {}
self.resources = {}
self.used_resources = {}
self.extra = extra or {}
self.scheduler_ref = weakref.ref(scheduler) if scheduler else None
self.task_prefix_count = defaultdict(int)
self.needs_what = {}
self._network_occ = 0
self._occupancy_cache = None
def __hash__(self) -> int:
return self._hash
def __eq__(self, other: object) -> bool:
return self is other or (
isinstance(other, WorkerState) and other.server_id == self.server_id
)
@property
def has_what(self) -> Set[TaskState]:
"""An insertion-sorted set-like of tasks which currently reside on this worker.
All the tasks here are in the "memory" state.
This is the reverse mapping of :attr:`TaskState.who_has`.
This is a read-only public accessor. The data is implemented as a dict without
values, because rebalance() relies on dicts being insertion-sorted.
"""
return self._has_what.keys()
@property
def host(self) -> str:
return get_address_host(self.address)
@property
def memory(self) -> MemoryState:
"""Polished memory metrics for the worker.
**Design note on managed memory**
There are two measures available for managed memory:
- ``self.nbytes``
- ``self.metrics["managed_bytes"]``
At rest, the two numbers must be identical. However, ``self.nbytes`` is
immediately updated through the batched comms as soon as each task lands in
memory on the worker; ``self.metrics["managed_bytes"]`` instead is updated by
the heartbeat, which can lag several seconds behind.
Below we are mixing likely newer managed memory info from ``self.nbytes`` with
process and spilled memory from the heartbeat. This is deliberate, so that
managed memory total is updated more frequently.
Managed memory directly and immediately contributes to optimistic memory, which
is in turn used in Active Memory Manager heuristics (at the moment of writing;
more uses will likely be added in the future). So it's important to have it
up to date; much more than it is for process memory.
Having up-to-date managed memory info as soon as the scheduler learns about
task completion also substantially simplifies unit tests.
The flip side of this design is that it may cause some noise in the
unmanaged_recent measure. e.g.:
1. Delete 100MB of managed data
2. The updated managed memory reaches the scheduler faster than the
updated process memory
3. There's a blip where the scheduler thinks that there's a sudden 100MB
increase in unmanaged_recent, since process memory hasn't changed but managed
memory has decreased by 100MB
4. When the heartbeat arrives, process memory goes down and so does the
unmanaged_recent.
This is OK - one of the main reasons for the unmanaged_recent / unmanaged_old
split is exactly to concentrate all the noise in unmanaged_recent and exclude it
from optimistic memory, which is used for heuristics.
Something that is less OK, but also less frequent, is that the sudden deletion
of spilled keys will cause a negative blip in managed memory:
1. Delete 100MB of spilled data
2. The updated managed memory *total* reaches the scheduler faster than the
updated spilled portion
3. This causes the managed memory to temporarily plummet and be replaced by
unmanaged_recent, while spilled memory remains unaltered
4. When the heartbeat arrives, managed goes back up, unmanaged_recent
goes back down, and spilled goes down by 100MB as it should have to
begin with.
:issue:`6002` will let us solve this.
"""
return MemoryState(
process=self.metrics["memory"],
managed=max(0, self.nbytes - self.metrics["spilled_bytes"]["memory"]),
spilled=self.metrics["spilled_bytes"]["disk"],
unmanaged_old=self._memory_unmanaged_old,
)
def clean(self) -> WorkerState:
"""Return a version of this object that is appropriate for serialization"""
ws = WorkerState(
address=self.address,
status=self.status,
pid=self.pid,
name=self.name,
nthreads=self.nthreads,
memory_limit=self.memory_limit,
local_directory=self.local_directory,
services=self.services,
nanny=self.nanny,
extra=self.extra,
server_id=self.server_id,
)
ws._occupancy_cache = self.occupancy
ws.executing = {ts.key: duration for ts, duration in self.executing.items()} # type: ignore
return ws
def __repr__(self) -> str:
name = f", name: {self.name}" if self.name != self.address else ""
return (
f"<WorkerState {self.address!r}{name}, "
f"status: {self.status.name}, "
f"memory: {len(self.has_what)}, "
f"processing: {len(self.processing)}>"
)
def _repr_html_(self) -> str:
return get_template("worker_state.html.j2").render(
address=self.address,
name=self.name,
status=self.status.name,
has_what=self.has_what,
processing=self.processing,
)
def identity(self) -> dict[str, Any]:
return {
"type": "Worker",
"id": self.name,
"host": self.host,
"resources": self.resources,
"local_directory": self.local_directory,
"name": self.name,
"nthreads": self.nthreads,
"memory_limit": self.memory_limit,
"last_seen": self.last_seen,
"services": self.services,
"metrics": self.metrics,
"status": self.status.name,
"nanny": self.nanny,
**self.extra,
}
def _to_dict_no_nest(self, *, exclude: Container[str] = ()) -> dict[str, Any]:
"""Dictionary representation for debugging purposes.
Not type stable and not intended for roundtrips.
See also
--------
Client.dump_cluster_state
distributed.utils.recursive_to_dict
TaskState._to_dict
"""
return recursive_to_dict(
self,
exclude=set(exclude) | {"versions"}, # type: ignore
members=True,
)
@property
def scheduler(self) -> SchedulerState:
assert self.scheduler_ref
s = self.scheduler_ref()
assert s
return s
def add_to_processing(self, ts: TaskState) -> None:
"""Assign a task to this worker for compute."""
if self.scheduler.validate:
assert ts not in self.processing
tp = ts.prefix
self.task_prefix_count[tp.name] += 1
self.scheduler._task_prefix_count_global[tp.name] += 1
self.processing.add(ts)
for dts in ts.dependencies:
assert dts.who_has
if self not in dts.who_has:
self._inc_needs_replica(dts)
def add_to_long_running(self, ts: TaskState) -> None:
if self.scheduler.validate:
assert ts in self.processing
assert ts not in self.long_running
self._remove_from_task_prefix_count(ts)
# Cannot remove from processing since we're using this for things like
# idleness detection. Idle workers are typically targeted for
# downscaling but we should not downscale workers with long running
# tasks
self.long_running.add(ts)
def remove_from_processing(self, ts: TaskState) -> None:
"""Remove a task from a workers processing"""
if self.scheduler.validate:
assert ts in self.processing
if ts in self.long_running:
self.long_running.discard(ts)
else:
self._remove_from_task_prefix_count(ts)
self.processing.remove(ts)
for dts in ts.dependencies:
if dts in self.needs_what:
self._dec_needs_replica(dts)
def _remove_from_task_prefix_count(self, ts: TaskState) -> None:
prefix_name = ts.prefix.name
count = self.task_prefix_count[prefix_name] - 1
tp_count = self.task_prefix_count
tp_count_global = self.scheduler._task_prefix_count_global
if count:
tp_count[prefix_name] = count
else:
del tp_count[prefix_name]
count = tp_count_global[prefix_name] - 1
if count:
tp_count_global[prefix_name] = count
else:
del tp_count_global[prefix_name]
def remove_replica(self, ts: TaskState) -> None:
"""The worker no longer has a task in memory"""
if self.scheduler.validate:
assert ts.who_has
assert self in ts.who_has
assert ts in self.has_what
assert ts not in self.needs_what
self.nbytes -= ts.get_nbytes()
del self._has_what[ts]
ts.who_has.remove(self) # type: ignore
if not ts.who_has:
ts.who_has = None
def _inc_needs_replica(self, ts: TaskState) -> None:
"""Assign a task fetch to this worker and update network occupancies"""
if self.scheduler.validate:
assert ts.who_has
assert self not in ts.who_has
assert ts not in self.has_what
if ts not in self.needs_what:
self.needs_what[ts] = 1
nbyte… # See definition of recipients above
heapq.heapreplace(
recipients,
(rec_bytes_max, rec_bytes_min, id(rec_ws), rec_ws),
)
else:
heapq.heappop(recipients)
# Move to next sender with the most data to lose.
# It may or may not be the same sender again.
break
else: # for ts in ts_iter
# Exhausted tasks on this sender
heapq.heappop(senders)
return msgs
async def _rebalance_move_data(
self, msgs: list[tuple[WorkerState, WorkerState, TaskState]], stimulus_id: str
) -> dict:
"""Perform the actual transfer of data across the network in rebalance().
Takes in input the output of _rebalance_find_msgs(), that is a list of tuples:
- sender worker
- recipient worker
- task to be transferred
FIXME this method is not robust when the cluster is not idle.
"""
# {recipient address: {key: [sender address, ...]}}
to_recipients: defaultdict[str, defaultdict[Key, list[str]]] = defaultdict(
lambda: defaultdict(list)
)
for snd_ws, rec_ws, ts in msgs:
to_recipients[rec_ws.address][ts.key].append(snd_ws.address)
failed_keys_by_recipient = dict(
zip(
to_recipients,
await asyncio.gather(
*(
# Note: this never raises exceptions
self.gather_on_worker(w, who_has)
for w, who_has in to_recipients.items()
)
),
)
)
to_senders = defaultdict(list)
for snd_ws, rec_ws, ts in msgs:
if ts.key not in failed_keys_by_recipient[rec_ws.address]:
to_senders[snd_ws.address].append(ts.key)
# Note: this never raises exceptions
await asyncio.gather(
*(self.delete_worker_data(r, v, stimulus_id) for r, v in to_senders.items())
)
for r, v in to_recipients.items():
self.log_event(r, {"action": "rebalance", "who_has": v})
self.log_event(
"all",
{
"action": "rebalance",
"senders": valmap(len, to_senders),
"recipients": valmap(len, to_recipients),
"moved_keys": len(msgs),
},
)
missing_keys = {k for r in failed_keys_by_recipient.values() for k in r}
if missing_keys:
return {"status": "partial-fail", "keys": list(missing_keys)}
else:
return {"status": "OK"}
async def replicate(
self,
comm=None,
keys=None,
n=None,
workers=None,
branching_factor=2,
delete=True,
stimulus_id=None,
):
"""Replicate data throughout cluster
This performs a tree copy of the data throughout the network
individually on each piece of data.
Parameters
----------
keys: Iterable
list of keys to replicate
n: int
Number of replications we expect to see within the cluster
branching_factor: int, optional
The number of workers that can copy data in each generation.
The larger the branching factor, the more data we copy in
a single step, but the more a given worker risks being
swamped by data requests.
See also
--------
Scheduler.rebalance
"""
stimulus_id = stimulus_id or f"replicate-{time()}"
assert branching_factor > 0
# Downgrade reentrant lock to non-reentrant
async with self._replica_lock(("replicate", object())):
if workers is not None:
workers = {self.workers[w] for w in self.workers_list(workers)}
workers = {ws for ws in workers if ws.status == Status.running}
else:
workers = self.running
if n is None:
n = len(workers)
else:
n = min(n, len(workers))
if n == 0:
raise ValueError("Can not use replicate to delete data")
tasks = {self.tasks[k] for k in keys}
missing_data = [ts.key for ts in tasks if not ts.who_has]
if missing_data:
return {"status": "partial-fail", "keys": missing_data}
# Delete extraneous data
if delete:
del_worker_tasks = defaultdict(set)
for ts in tasks:
del_candidates = tuple(ts.who_has & workers)
if len(del_candidates) > n:
for ws in random.sample(
del_candidates, len(del_candidates) - n
):
del_worker_tasks[ws].add(ts)
# Note: this never raises exceptions
await asyncio.gather(
*[
self.delete_worker_data(
ws.address, [t.key for t in tasks], stimulus_id
)
for ws, tasks in del_worker_tasks.items()
]
)
# Copy not-yet-filled data
while tasks:
gathers = defaultdict(dict)
for ts in list(tasks):
if ts.state == "forgotten":
# task is no longer needed by any client or dependent task
tasks.remove(ts)
continue
assert ts.who_has is not None
n_missing = n - len(ts.who_has & workers)
if n_missing <= 0:
# Already replicated enough
tasks.remove(ts)
continue
count = min(n_missing, branching_factor * len(ts.who_has))
assert count > 0
for ws in random.sample(tuple(workers - ts.who_has), count):
gathers[ws.address][ts.key] = [
wws.address for wws in ts.who_has
]
await asyncio.gather(
*(
# Note: this never raises exceptions
self.gather_on_worker(w, who_has)
for w, who_has in gathers.items()
)
)
for r, v in gathers.items():
self.log_event(r, {"action": "replicate-add", "who_has": v})
self.log_event(
"all",
{
"action": "replicate",
"workers": list(workers),
"key-count": len(keys),
"branching-factor": branching_factor,
},
)
@log_errors
def workers_to_close(
self,
memory_ratio: int | float | None = None,
n: int | None = None,
key: Callable[[WorkerState], Hashable] | bytes | None = None,
minimum: int | None = None,
target: int | None = None,
attribute: str = "address",
) -> list[str]:
"""
Find workers that we can close with low cost
This returns a list of workers that are good candidates to retire.
These workers are not running anything and are storing
relatively little data relative to their peers. If all workers are
idle then we still maintain enough workers to have enough RAM to store
our data, with a comfortable buffer.
This is for use with systems like ``distributed.deploy.adaptive``.
Parameters
----------
memory_ratio : Number
Amount of extra space we want to have for our stored data.
Defaults to 2, or that we want to have twice as much memory as we
currently have data.
n : int
Number of workers to close
minimum : int
Minimum number of workers to keep around
key : Callable(WorkerState)
An optional callable mapping a WorkerState object to a group
affiliation. Groups will be closed together. This is useful when
closing workers must be done collectively, such as by hostname.
target : int
Target number of workers to have after we close
attribute : str
The attribute of the WorkerState object to return, like "address"
or "name". Defaults to "address".
Examples
--------
>>> scheduler.workers_to_close()
['tcp://192.168.0.1:1234', 'tcp://192.168.0.2:1234']
Group workers by hostname prior to closing
>>> scheduler.workers_to_close(key=lambda ws: ws.host)
['tcp://192.168.0.1:1234', 'tcp://192.168.0.1:4567']
Remove two workers
>>> scheduler.workers_to_close(n=2)
Keep enough workers to have twice as much memory as we we need.
>>> scheduler.workers_to_close(memory_ratio=2)
Returns
-------
to_close: list of worker addresses that are OK to close
See Also
--------
Scheduler.retire_workers
"""
if target is not None and n is None:
n = len(self.workers) - target
if n is not None:
if n < 0:
n = 0
target = len(self.workers) - n
if n is None and memory_ratio is None:
memory_ratio = 2
if not n and all([ws.processing for ws in self.workers.values()]):
return []
if key is None:
key = operator.attrgetter("address")
if isinstance(key, bytes):
key = pickle.loads(key)
# Long running tasks typically use a worker_client to schedule
# other tasks. We should never shut down the worker they're
# running on, as it would cause them to restart from scratch
# somewhere else.
valid_workers = [ws for ws in self.workers.values() if not ws.long_running]
for plugin in list(self.plugins.values()):
valid_workers = plugin.valid_workers_downscaling(self, valid_workers)
groups = groupby(key, valid_workers)
limit_bytes = {k: sum(ws.memory_limit for ws in v) for k, v in groups.items()}
group_bytes = {k: sum(ws.nbytes for ws in v) for k, v in groups.items()}
limit = sum(limit_bytes.values())
total = sum(group_bytes.values())
def _key(group):
is_idle = not any([wws.processing for wws in groups[group]])
bytes = -group_bytes[group]
return is_idle, bytes
idle = sorted(groups, key=_key)
to_close = []
n_remain = len(self.workers)
while idle:
group = idle.pop()
if n is None and any([ws.processing for ws in groups[group]]):
break
if minimum and n_remain - len(groups[group]) < minimum:
break
limit -= limit_bytes[group]
if (n is not None and n_remain - len(groups[group]) >= (target or 0)) or (
memory_ratio is not None and limit >= memory_ratio * total
):
to_close.append(group)
n_remain -= len(groups[group])
else:
break
result = [getattr(ws, attribute) for g in to_close for ws in groups[g]]
if result:
logger.debug("Suggest closing workers: %s", result)
return result
@overload
async def retire_workers(
self,
workers: list[str],
*,
close_workers: bool = False,
remove: bool = True,
stimulus_id: str | None = None,
) -> list[str]: ...
@overload
async def retire_workers(
self,
*,
names: list,
close_workers: bool = False,
remove: bool = True,
stimulus_id: str | None = None,
) -> list[str]: ...
@overload
async def retire_workers(
self,
*,
close_workers: bool = False,
remove: bool = True,
stimulus_id: str | None = None,
# Parameters for workers_to_close()
memory_ratio: int | float | None = None,
n: int | None = None,
key: Callable[[WorkerState], Hashable] | bytes | None = None,
minimum: int | None = None,
target: int | None = None,
attribute: str = "address",
) -> list[str]: ...
@log_errors
async def retire_workers(
self,
workers: list[str] | None = None,
*,
names: list | None = None,
close_workers: bool = False,
remove: bool = True,
stimulus_id: str | None = None,
**kwargs: Any,
) -> list[str]:
"""Gracefully retire workers from cluster. Any key that is in memory exclusively
on the retired workers is replicated somewhere else.
Parameters
----------
workers: list[str] (optional)
List of worker addresses to retire.
names: list (optional)
List of worker names to retire.
Mutually exclusive with ``workers``.
If neither ``workers`` nor ``names`` are provided, we call
``workers_to_close`` which finds a good set.
close_workers: bool (defaults to False)
Whether to actually close the worker explicitly from here.
Otherwise, we expect some external job scheduler to finish off the worker.
remove: bool (defaults to True)
Whether to remove the worker metadata immediately or else wait for the
worker to contact us.
If close_workers=False and remove=False, this method just flushes the tasks
in memory out of the workers and then returns.
If close_workers=True and remove=False, this method will return while the
workers are still in the cluster, although they won't accept new tasks.
If close_workers=False or for whatever reason a worker doesn't accept the
close command, it will be left permanently unable to accept new tasks and
it is expected to be closed in some other way.
**kwargs: dict
Extra options to pass to workers_to_close to determine which
workers we should drop. Only accepted if ``workers`` and ``names`` are
omitted.
Returns
-------
Dictionary mapping worker ID/address to dictionary of information about
that worker for each retired worker.
If there are keys that exist in memory only on the workers being retired and it
was impossible to replicate them somewhere else (e.g. because there aren't
any other running workers), the workers holding such keys won't be retired and
won't appear in the returned dict.
See Also
--------
Scheduler.workers_to_close
"""
if names is not None and workers is not None:
raise TypeError("names and workers are mutually exclusive")
if (names is not None or workers is not None) and kwargs:
raise TypeError(
"Parameters for workers_to_close() are mutually exclusive with "
f"names and workers: {kwargs}"
)
stimulus_id = stimulus_id or f"retire-workers-{time()}"
# This lock makes retire_workers, rebalance, and replicate mutually
# exclusive and will no longer be necessary once rebalance and replicate are
# migrated to the Active Memory Manager.
# However, it allows multiple instances of retire_workers to run in parallel.
async with self._replica_lock("retire-workers"):
if names is not None:
logger.info("Retire worker names %s", names)
# Support cases where names are passed through a CLI and become strings
names_set = {str(name) for name in names}
wss = {ws for ws in self.workers.values() if str(ws.name) in names_set}
elif workers is not None:
logger.info(
"Retire worker addresses (stimulus_id='%s') %s",
stimulus_id,
workers,
)
wss = {
self.workers[address]
for address in workers
if address in self.workers
}
else:
wss = {
self.workers[address] for address in self.workers_to_close(**kwargs)
}
if not wss:
return []
stop_amm = False
amm: ActiveMemoryManagerExtension | None = self.extensions.get("amm")
if not amm or not amm.running:
amm = ActiveMemoryManagerExtension(
self, policies=set(), register=False, start=True, interval=2.0
)
stop_amm = True
try:
coros = []
for ws in wss:
policy = RetireWorker(ws.address)
amm.add_policy(policy)
# Change Worker.status to closing_gracefully. Immediately set
# the same on the scheduler to prevent race conditions.
prev_status = ws.status
self.handle_worker_status_change(
Status.closing_gracefully, ws, stimulus_id
)
# FIXME: We should send a message to the nanny first;
# eventually workers won't be able to close their own nannies.
self.stream_comms[ws.address].send(
{
"op": "worker-status-change",
"status": ws.status.name,
"stimulus_id": stimulus_id,
}
)
coros.append(
self._track_retire_worker(
ws,
policy,
prev_status=prev_status,
close=close_workers,
remove=remove,
stimulus_id=stimulus_id,
)
)
# Give the AMM a kick, in addition to its periodic running. This is
# to avoid unnecessarily waiting for a potentially arbitrarily long
# time (depending on interval settings)
amm.run_once()
workers_info_ok = []
workers_info_abort = []
for addr, result in await asyncio.gather(*coros):
if result == "OK":
workers_info_ok.append(addr)
else:
workers_info_abort.append(addr)
finally:
if stop_amm:
amm.stop()
self.log_event(
"all",
{
"action": "retire-workers",
"retired": list(workers_info_ok),
"could-not-retire": list(workers_info_abort),
"stimulus_id": stimulus_id,
},
)
self.log_event(
list(workers_info_ok),
{"action": "retired", "stimulus_id": stimulus_id},
)
self.log_event(
list(workers_info_abort),
{"action": "could-not-retire", "stimulus_id": stimulus_id},
)
return workers_info_ok
async def _track_retire_worker(
self,
ws: WorkerState,
policy: RetireWorker,
prev_status: Status,
close: bool,
remove: bool,
stimulus_id: str,
) -> tuple[str, Literal["OK", "no-recipients"]]:
while not policy.done():
# Sleep 0.01s when there are 4 tasks or less
# Sleep 0.5s when there are 200 or more
poll_interval = max(0.01, min(0.5, len(ws.has_what) / 400))
await asyncio.sleep(poll_interval)
if policy.no_recipients:
# Abort retirement. This time we don't need to worry about race
# conditions and we can wait for a scheduler->worker->scheduler
# round-trip.
self.stream_comms[ws.address].send(
{
"op": "worker-status-change",
"status": prev_status.name,
"stimulus_id": stimulus_id,
}
)
logger.warning(
f"Could not retire worker {ws.address!r}: unique data could not be "
f"moved to any other worker ({stimulus_id=!r})"
)
return ws.address, "no-recipients"
logger.debug(
f"All unique keys on worker {ws.address!r} have been replicated elsewhere"
)
if remove:
await self.remove_worker(
ws.address, expected=True, close=close, stimulus_id=stimulus_id
)
elif close:
self.close_worker(ws.address)
logger.info(f"Retired worker {ws.address!r} ({stimulus_id=!r})")
return ws.address, "OK"
def add_keys(
self, worker: str, keys: Collection[Key] = (), stimulus_id: str | None = None
) -> Literal["OK", "not found"]:
"""
Learn that a worker has certain keys
This should not be used in practice and is mostly here for legacy
reasons. However, it is sent by workers from time to time.
"""
if worker not in self.workers:
return "not found"
ws = self.workers[worker]
redundant_replicas = []
for key in keys:
ts = self.tasks.get(key)
if ts is not None and ts.state == "memory":
self.add_replica(ts, ws)
else:
redundant_replicas.append(key)
if redundant_replicas:
if not stimulus_id:
stimulus_id = f"redundant-replicas-{time()}"
self.worker_send(
worker,
{
"op": "remove-replicas",
"keys": redundant_replicas,
"stimulus_id": stimulus_id,
},
)
return "OK"
@log_errors
def update_data(
self,
*,
who_has: dict[Key, list[str]],
nbytes: dict[Key, int],
client: str | None = None,
) -> None:
"""Learn that new data has entered the network from an external source"""
who_has = {k: [self.coerce_address(vv) for vv in v] for k, v in who_has.items()}
logger.debug("Update data %s", who_has)
for key, workers in who_has.items():
ts = self.tasks.get(key)
if ts is None:
ts = self.new_task(key, None, "memory")
ts.state = "memory"
ts_nbytes = nbytes.get(key, -1)
if ts_nbytes >= 0:
ts.set_nbytes(ts_nbytes)
for w in workers:
ws = self.workers[w]
self.add_replica(ts, ws)
self.report({"op": "key-in-memory", "key": key, "workers": list(workers)})
if client:
self.client_desires_keys(keys=list(who_has), client=client)
@overload
def report_on_key(self, key: Key, *, client: str | None = None) -> None: ...
@overload
def report_on_key(self, *, ts: TaskState, client: str | None = None) -> None: ...
def report_on_key(self, key=None, *, ts=None, client=None):
if (ts is None) == (key is None):
raise ValueError( # pragma: nocover
f"ts and key are mutually exclusive; received {key=!r}, {ts=!r}"
)
if ts is None:
assert key is not None
ts = self.tasks.get(key)
else:
key = ts.key
if ts is not None:
report_msg = _task_to_report_msg(ts)
else:
report_msg = {"op": "cancelled-keys", "keys": [key]}
if report_msg is not None:
self.report(report_msg, ts=ts, client=client)
@log_errors
async def feed(
self,
comm: Comm,
function: bytes | None = None,
setup: bytes | None = None,
teardown: bytes | None = None,
interval: str | float = "1s",
**kwargs: Any,
) -> None:
"""
Provides a data Comm to external requester
Caution: this runs arbitrary Python code on the scheduler. This should
eventually be phased out. It is mostly used by diagnostics.
"""
interval = parse_timedelta(interval)
if function:
function = pickle.loads(function)
if setup:
setup = pickle.loads(setup)
if teardown:
teardown = pickle.loads(teardown)
state = setup(self) if setup else None # type: ignore
if inspect.isawaitable(state):
state = await state
try:
while self.status == Status.running:
if state is None:
response = function(self) # type: ignore
else:
response = function(self, state) # type: ignore
await comm.write(response)
await asyncio.sleep(interval)
except OSError:
pass
finally:
if teardown:
teardown(self, state) # type: ignore
def log_worker_event(
self, worker: str, topic: str | Collection[str], msg: Any
) -> None:
if isinstance(msg, dict) and worker != topic:
msg["worker"] = worker
self.log_event(topic, msg)
def subscribe_worker_status(self, comm: Comm) -> dict[str, Any]:
WorkerStatusPlugin(self, comm)
ident = self.identity()
for v in ident["workers"].values():
del v["metrics"]
del v["last_seen"]
return ident
def get_processing(
self, workers: Iterable[str] | None = None
) -> dict[str, list[Key]]:
if workers is not None:
workers = set(map(self.coerce_address, workers))
return {w: [ts.key for ts in self.workers[w].processing] for w in workers}
else:
return {
w: [ts.key for ts in ws.processing] for w, ws in self.workers.items()
}
def get_who_has(self, keys: Iterable[Key] | None = None) -> dict[Key, list[str]]:
if keys is not None:
return {
key: (
[ws.address for ws in self.tasks[key].who_has or ()]
if key in self.tasks
else []
)
for key in keys
}
else:
return {
key: [ws.address for ws in ts.who_has or ()]
for key, ts in self.tasks.items()
}
def get_has_what(
self, workers: Iterable[str] | None = None
) -> dict[str, list[Key]]:
if workers is not None:
workers = map(self.coerce_address, workers)
return {
w: (
[ts.key for ts in self.workers[w].has_what]
if w in self.workers
else []
)
for w in workers
}
else:
return {w: [ts.key for ts in ws.has_what] for w, ws in self.workers.items()}
def get_ncores(self, workers: Iterable[str] | None = None) -> dict[str, int]:
if workers is not None:
workers = map(self.coerce_address, workers)
return {w: self.workers[w].nthreads for w in workers if w in self.workers}
else:
return {w: ws.nthreads for w, ws in self.workers.items()}
def get_ncores_running(
self, workers: Iterable[str] | None = None
) -> dict[str, int]:
ncores = self.get_ncores(workers=workers)
return {
w: n for w, n in ncores.items() if self.workers[w].status == Status.running
}
async def get_call_stack(self, keys: Iterable[Key] | None = None) -> dict[str, Any]:
workers: dict[str, list[Key] | None]
if keys is not None:
stack = list(keys)
processing = set()
while stack:
key = stack.pop()
> ts = self.tasks[key]
E KeyError: 'slowinc-1ea6f50d354d90f0a53d5f5250e2c25f'
distributed\scheduler.py:7903: KeyError
Check warning on line 0 in distributed.tests.test_client
github-actions / Unit Test Results
11 out of 12 runs failed: test_release_persisted_collection (distributed.tests.test_client)
artifacts/macos-latest-3.12-default-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-3.10-default-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-3.10-no_expr-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-3.10-no_queue-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-3.11-default-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-3.12-default-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-mindeps-numpy-ci1/pytest.xml [took 0s]
artifacts/ubuntu-latest-mindeps-pandas-ci1/pytest.xml [took 0s]
artifacts/windows-latest-3.10-default-ci1/pytest.xml [took 0s]
artifacts/windows-latest-3.11-default-ci1/pytest.xml [took 0s]
artifacts/windows-latest-3.12-default-ci1/pytest.xml [took 0s]
Raw output
IndexError: tuple index out of range
c = <Client: No scheduler connected>
s = <Scheduler 'tcp://127.0.0.1:44465', workers: 0, cores: 0, tasks: 0>
a = <Worker 'tcp://127.0.0.1:43505', name: 0, status: closed, stored: 0, running: 0/1, ready: 0, comm: 0, waiting: 0>
b = <Worker 'tcp://127.0.0.1:46153', name: 1, status: closed, stored: 0, running: 0/2, ready: 0, comm: 0, waiting: 0>
@gen_cluster(client=True)
async def test_release_persisted_collection(c, s, a, b):
np = pytest.importorskip("numpy")
da = pytest.importorskip("dask.array")
arr = c.persist(da.random.random((10,), chunks=(10,)))
await wait(arr)
_release_persisted(arr)
while s.tasks:
await asyncio.sleep(0.01)
with pytest.raises(CancelledError):
> await c.compute(arr)
distributed/tests/test_client.py:8235:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
distributed/client.py:410: in _result
raise exc.with_traceback(tb)
../../../miniconda3/envs/dask-distributed/lib/python3.10/site-packages/dask/array/core.py:1284: in finalize
return concatenate3(results)
../../../miniconda3/envs/dask-distributed/lib/python3.10/site-packages/dask/array/core.py:5452: in concatenate3
chunks = chunks_from_arrays(arrays)
../../../miniconda3/envs/dask-distributed/lib/python3.10/site-packages/dask/array/core.py:5237: in chunks_from_arrays
result.append(tuple(shape(deepfirst(a))[dim] for a in arrays))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
from __future__ import annotations
import contextlib
import math
import operator
import os
import pickle
import re
import sys
import traceback
import uuid
import warnings
from bisect import bisect
from collections import defaultdict
from collections.abc import Collection, Iterable, Iterator, Mapping, Sequence
from functools import lru_cache, partial, reduce, wraps
from itertools import product, zip_longest
from numbers import Integral, Number
from operator import add, mul
from threading import Lock
from typing import Any, Literal, TypeVar, Union, cast
import numpy as np
from numpy.typing import ArrayLike
from packaging.version import Version
from tlz import accumulate, concat, first, groupby, partition
from tlz.curried import pluck
from toolz import frequencies
from dask import compute, config, core
from dask.array import chunk
from dask.array.chunk import getitem
from dask.array.chunk_types import is_valid_array_chunk, is_valid_chunk_type
# Keep einsum_lookup and tensordot_lookup here for backwards compatibility
from dask.array.dispatch import ( # noqa: F401
concatenate_lookup,
einsum_lookup,
tensordot_lookup,
)
from dask.array.numpy_compat import NUMPY_GE_200, _Recurser
from dask.array.slicing import replace_ellipsis, setitem_array, slice_array
from dask.array.utils import compute_meta, meta_from_array
from dask.base import (
DaskMethodsMixin,
compute_as_if_collection,
dont_optimize,
is_dask_collection,
named_schedulers,
persist,
tokenize,
)
from dask.blockwise import blockwise as core_blockwise
from dask.blockwise import broadcast_dimensions
from dask.context import globalmethod
from dask.core import quote
from dask.delayed import Delayed, delayed
from dask.highlevelgraph import HighLevelGraph, MaterializedLayer
from dask.layers import ArrayBlockIdDep, ArraySliceDep, ArrayValuesDep, reshapelist
from dask.sizeof import sizeof
from dask.typing import Graph, Key, NestedKeys
from dask.utils import (
IndexCallable,
SerializableLock,
cached_cumsum,
cached_property,
concrete,
derived_from,
format_bytes,
funcname,
has_keyword,
is_arraylike,
is_dataframe_like,
is_index_like,
is_integer,
is_series_like,
maybe_pluralize,
ndeepmap,
ndimlist,
parse_bytes,
typename,
)
from dask.widgets import get_template
T_IntOrNaN = Union[int, float] # Should be Union[int, Literal[np.nan]]
DEFAULT_GET = named_schedulers.get("threads", named_schedulers["sync"])
unknown_chunk_message = (
"\n\n"
"A possible solution: "
"https://docs.dask.org/en/latest/array-chunks.html#unknown-chunks\n"
"Summary: to compute chunks sizes, use\n\n"
" x.compute_chunk_sizes() # for Dask Array `x`\n"
" ddf.to_dask_array(lengths=True) # for Dask DataFrame `ddf`"
)
class PerformanceWarning(Warning):
"""A warning given when bad chunking may cause poor performance"""
def getter(a, b, asarray=True, lock=None):
if isinstance(b, tuple) and any(x is None for x in b):
b2 = tuple(x for x in b if x is not None)
b3 = tuple(
None if x is None else slice(None, None)
for x in b
if not isinstance(x, Integral)
)
return getter(a, b2, asarray=asarray, lock=lock)[b3]
if lock:
lock.acquire()
try:
c = a[b]
# Below we special-case `np.matrix` to force a conversion to
# `np.ndarray` and preserve original Dask behavior for `getter`,
# as for all purposes `np.matrix` is array-like and thus
# `is_arraylike` evaluates to `True` in that case.
if asarray and (not is_arraylike(c) or isinstance(c, np.matrix)):
c = np.asarray(c)
finally:
if lock:
lock.release()
return c
def getter_nofancy(a, b, asarray=True, lock=None):
"""A simple wrapper around ``getter``.
Used to indicate to the optimization passes that the backend doesn't
support fancy indexing.
"""
return getter(a, b, asarray=asarray, lock=lock)
def getter_inline(a, b, asarray=True, lock=None):
"""A getter function that optimizations feel comfortable inlining
Slicing operations with this function may be inlined into a graph, such as
in the following rewrite
**Before**
>>> a = x[:10] # doctest: +SKIP
>>> b = a + 1 # doctest: +SKIP
>>> c = a * 2 # doctest: +SKIP
**After**
>>> b = x[:10] + 1 # doctest: +SKIP
>>> c = x[:10] * 2 # doctest: +SKIP
This inlining can be relevant to operations when running off of disk.
"""
return getter(a, b, asarray=asarray, lock=lock)
from dask.array.optimization import fuse_slice, optimize
# __array_function__ dict for mapping aliases and mismatching names
_HANDLED_FUNCTIONS = {}
def implements(*numpy_functions):
"""Register an __array_function__ implementation for dask.array.Array
Register that a function implements the API of a NumPy function (or several
NumPy functions in case of aliases) which is handled with
``__array_function__``.
Parameters
----------
\\*numpy_functions : callables
One or more NumPy functions that are handled by ``__array_function__``
and will be mapped by `implements` to a `dask.array` function.
"""
def decorator(dask_func):
for numpy_function in numpy_functions:
_HANDLED_FUNCTIONS[numpy_function] = dask_func
return dask_func
return decorator
def _should_delegate(self, other) -> bool:
"""Check whether Dask should delegate to the other.
This implementation follows NEP-13:
https://numpy.org/neps/nep-0013-ufunc-overrides.html#behavior-in-combination-with-python-s-binary-operations
"""
if hasattr(other, "__array_ufunc__") and other.__array_ufunc__ is None:
return True
elif (
hasattr(other, "__array_ufunc__")
and not is_valid_array_chunk(other)
# don't delegate to our own parent classes
and not isinstance(self, type(other))
and type(self) is not type(other)
):
return True
return False
def check_if_handled_given_other(f):
"""Check if method is handled by Dask given type of other
Ensures proper deferral to upcast types in dunder operations without
assuming unknown types are automatically downcast types.
"""
@wraps(f)
def wrapper(self, other):
if _should_delegate(self, other):
return NotImplemented
else:
return f(self, other)
return wrapper
def slices_from_chunks(chunks):
"""Translate chunks tuple to a set of slices in product order
>>> slices_from_chunks(((2, 2), (3, 3, 3))) # doctest: +NORMALIZE_WHITESPACE
[(slice(0, 2, None), slice(0, 3, None)),
(slice(0, 2, None), slice(3, 6, None)),
(slice(0, 2, None), slice(6, 9, None)),
(slice(2, 4, None), slice(0, 3, None)),
(slice(2, 4, None), slice(3, 6, None)),
(slice(2, 4, None), slice(6, 9, None))]
"""
cumdims = [cached_cumsum(bds, initial_zero=True) for bds in chunks]
slices = [
[slice(s, s + dim) for s, dim in zip(starts, shapes)]
for starts, shapes in zip(cumdims, chunks)
]
return list(product(*slices))
def graph_from_arraylike(
arr, # Any array-like which supports slicing
chunks,
shape,
name,
getitem=getter,
lock=False,
asarray=True,
dtype=None,
inline_array=False,
) -> HighLevelGraph:
"""
HighLevelGraph for slicing chunks from an array-like according to a chunk pattern.
If ``inline_array`` is True, this make a Blockwise layer of slicing tasks where the
array-like is embedded into every task.,
If ``inline_array`` is False, this inserts the array-like as a standalone value in
a MaterializedLayer, then generates a Blockwise layer of slicing tasks that refer
to it.
>>> dict(graph_from_arraylike(arr, chunks=(2, 3), shape=(4, 6), name="X", inline_array=True)) # doctest: +SKIP
{(arr, 0, 0): (getter, arr, (slice(0, 2), slice(0, 3))),
(arr, 1, 0): (getter, arr, (slice(2, 4), slice(0, 3))),
(arr, 1, 1): (getter, arr, (slice(2, 4), slice(3, 6))),
(arr, 0, 1): (getter, arr, (slice(0, 2), slice(3, 6)))}
>>> dict( # doctest: +SKIP
graph_from_arraylike(arr, chunks=((2, 2), (3, 3)), shape=(4,6), name="X", inline_array=False)
)
{"original-X": arr,
('X', 0, 0): (getter, 'original-X', (slice(0, 2), slice(0, 3))),
('X', 1, 0): (getter, 'original-X', (slice(2, 4), slice(0, 3))),
('X', 1, 1): (getter, 'original-X', (slice(2, 4), slice(3, 6))),
('X', 0, 1): (getter, 'original-X', (slice(0, 2), slice(3, 6)))}
"""
chunks = normalize_chunks(chunks, shape, dtype=dtype)
out_ind = tuple(range(len(shape)))
if (
has_keyword(getitem, "asarray")
and has_keyword(getitem, "lock")
and (not asarray or lock)
):
kwargs = {"asarray": asarray, "lock": lock}
else:
# Common case, drop extra parameters
kwargs = {}
if inline_array:
layer = core_blockwise(
getitem,
name,
out_ind,
arr,
None,
ArraySliceDep(chunks),
out_ind,
numblocks={},
**kwargs,
)
return HighLevelGraph.from_collections(name, layer)
else:
original_name = "original-" + name
layers = {}
layers[original_name] = MaterializedLayer({original_name: arr})
layers[name] = core_blockwise(
getitem,
name,
out_ind,
original_name,
None,
ArraySliceDep(chunks),
out_ind,
numblocks={},
**kwargs,
)
deps = {
original_name: set(),
name: {original_name},
}
return HighLevelGraph(layers, deps)
def dotmany(A, B, leftfunc=None, rightfunc=None, **kwargs):
"""Dot product of many aligned chunks
>>> x = np.array([[1, 2], [1, 2]])
>>> y = np.array([[10, 20], [10, 20]])
>>> dotmany([x, x, x], [y, y, y])
array([[ 90, 180],
[ 90, 180]])
Optionally pass in functions to apply to the left and right chunks
>>> dotmany([x, x, x], [y, y, y], rightfunc=np.transpose)
array([[150, 150],
[150, 150]])
"""
if leftfunc:
A = map(leftfunc, A)
if rightfunc:
B = map(rightfunc, B)
return sum(map(partial(np.dot, **kwargs), A, B))
def _concatenate2(arrays, axes=None):
"""Recursively concatenate nested lists of arrays along axes
Each entry in axes corresponds to each level of the nested list. The
length of axes should correspond to the level of nesting of arrays.
If axes is an empty list or tuple, return arrays, or arrays[0] if
arrays is a list.
>>> x = np.array([[1, 2], [3, 4]])
>>> _concatenate2([x, x], axes=[0])
array([[1, 2],
[3, 4],
[1, 2],
[3, 4]])
>>> _concatenate2([x, x], axes=[1])
array([[1, 2, 1, 2],
[3, 4, 3, 4]])
>>> _concatenate2([[x, x], [x, x]], axes=[0, 1])
array([[1, 2, 1, 2],
[3, 4, 3, 4],
[1, 2, 1, 2],
[3, 4, 3, 4]])
Supports Iterators
>>> _concatenate2(iter([x, x]), axes=[1])
array([[1, 2, 1, 2],
[3, 4, 3, 4]])
Special Case
>>> _concatenate2([x, x], axes=())
array([[1, 2],
[3, 4]])
"""
if axes is None:
axes = []
if axes == ():
if isinstance(arrays, list):
return arrays[0]
else:
return arrays
if isinstance(arrays, Iterator):
arrays = list(arrays)
if not isinstance(arrays, (list, tuple)):
return arrays
if len(axes) > 1:
arrays = [_concatenate2(a, axes=axes[1:]) for a in arrays]
concatenate = concatenate_lookup.dispatch(
type(max(arrays, key=lambda x: getattr(x, "__array_priority__", 0)))
)
if isinstance(arrays[0], dict):
# Handle concatenation of `dict`s, used as a replacement for structured
# arrays when that's not supported by the array library (e.g., CuPy).
keys = list(arrays[0].keys())
assert all(list(a.keys()) == keys for a in arrays)
ret = dict()
for k in keys:
ret[k] = concatenate(list(a[k] for a in arrays), axis=axes[0])
return ret
else:
return concatenate(arrays, axis=axes[0])
def apply_infer_dtype(func, args, kwargs, funcname, suggest_dtype="dtype", nout=None):
"""
Tries to infer output dtype of ``func`` for a small set of input arguments.
Parameters
----------
func: Callable
Function for which output dtype is to be determined
args: List of array like
Arguments to the function, which would usually be used. Only attributes
``ndim`` and ``dtype`` are used.
kwargs: dict
Additional ``kwargs`` to the ``func``
funcname: String
Name of calling function to improve potential error messages
suggest_dtype: None/False or String
If not ``None`` adds suggestion to potential error message to specify a dtype
via the specified kwarg. Defaults to ``'dtype'``.
nout: None or Int
``None`` if function returns single output, integer if many.
Defaults to ``None``.
Returns
-------
: dtype or List of dtype
One or many dtypes (depending on ``nout``)
"""
from dask.array.utils import meta_from_array
# make sure that every arg is an evaluated array
args = [
(
np.ones_like(meta_from_array(x), shape=((1,) * x.ndim), dtype=x.dtype)
if is_arraylike(x)
else x
)
for x in args
]
try:
with np.errstate(all="ignore"):
o = func(*args, **kwargs)
except Exception as e:
exc_type, exc_value, exc_traceback = sys.exc_info()
tb = "".join(traceback.format_tb(exc_traceback))
suggest = (
(
"Please specify the dtype explicitly using the "
"`{dtype}` kwarg.\n\n".format(dtype=suggest_dtype)
)
if suggest_dtype
else ""
)
msg = (
f"`dtype` inference failed in `{funcname}`.\n\n"
f"{suggest}"
"Original error is below:\n"
"------------------------\n"
f"{e!r}\n\n"
"Traceback:\n"
"---------\n"
f"{tb}"
)
else:
msg = None
if msg is not None:
raise ValueError(msg)
return getattr(o, "dtype", type(o)) if nout is None else tuple(e.dtype for e in o)
def normalize_arg(x):
"""Normalize user provided arguments to blockwise or map_blocks
We do a few things:
1. If they are string literals that might collide with blockwise_token then we
quote them
2. IF they are large (as defined by sizeof) then we put them into the
graph on their own by using dask.delayed
"""
if is_dask_collection(x):
return x
elif isinstance(x, str) and re.match(r"_\d+", x):
return delayed(x)
elif isinstance(x, list) and len(x) >= 10:
return delayed(x)
elif sizeof(x) > 1e6:
return delayed(x)
else:
return x
def _pass_extra_kwargs(func, keys, *args, **kwargs):
"""Helper for :func:`dask.array.map_blocks` to pass `block_info` or `block_id`.
For each element of `keys`, a corresponding element of args is changed
to a keyword argument with that key, before all arguments re passed on
to `func`.
"""
kwargs.update(zip(keys, args))
return func(*args[len(keys) :], **kwargs)
def map_blocks(
func,
*args,
name=None,
token=None,
dtype=None,
chunks=None,
drop_axis=None,
new_axis=None,
enforce_ndim=False,
meta=None,
**kwargs,
):
"""Map a function across all blocks of a dask array.
Note that ``map_blocks`` will attempt to automatically determine the output
array type by calling ``func`` on 0-d versions of the inputs. Please refer to
the ``meta`` keyword argument below if you expect that the function will not
succeed when operating on 0-d arrays.
Parameters
----------
func : callable
Function to apply to every block in the array.
If ``func`` accepts ``block_info=`` or ``block_id=``
as keyword arguments, these will be passed dictionaries
containing information about input and output chunks/arrays
during computation. See examples for details.
args : dask arrays or other objects
dtype : np.dtype, optional
The ``dtype`` of the output array. It is recommended to provide this.
If not provided, will be inferred by applying the function to a small
set of fake data.
chunks : tuple, optional
Chunk shape of resulting blocks if the function does not preserve
shape. If not provided, the resulting array is assumed to have the same
block structure as the first input array.
drop_axis : number or iterable, optional
Dimensions lost by the function.
new_axis : number or iterable, optional
New dimensions created by the function. Note that these are applied
after ``drop_axis`` (if present). The size of each chunk along this
dimension will be set to 1. Please specify ``chunks`` if the individual
chunks have a different size.
enforce_ndim : bool, default False
Whether to enforce at runtime that the dimensionality of the array
produced by ``func`` actually matches that of the array returned by
``map_blocks``.
If True, this will raise an error when there is a mismatch.
token : string, optional
The key prefix to use for the output array. If not provided, will be
determined from the function name.
name : string, optional
The key name to use for the output array. Note that this fully
specifies the output key name, and must be unique. If not provided,
will be determined by a hash of the arguments.
meta : array-like, optional
The ``meta`` of the output array, when specified is expected to be an
array of the same type and dtype of that returned when calling ``.compute()``
on the array returned by this function. When not provided, ``meta`` will be
inferred by applying the function to a small set of fake data, usually a
0-d array. It's important to ensure that ``func`` can successfully complete
computation without raising exceptions when 0-d is passed to it, providing
``meta`` will be required otherwise. If the output type is known beforehand
(e.g., ``np.ndarray``, ``cupy.ndarray``), an empty array of such type dtype
can be passed, for example: ``meta=np.array((), dtype=np.int32)``.
**kwargs :
Other keyword arguments to pass to function. Values must be constants
(not dask.arrays)
See Also
--------
dask.array.map_overlap : Generalized operation with overlap between neighbors.
dask.array.blockwise : Generalized operation with control over block alignment.
Examples
--------
>>> import dask.array as da
>>> x = da.arange(6, chunks=3)
>>> x.map_blocks(lambda x: x * 2).compute()
array([ 0, 2, 4, 6, 8, 10])
The ``da.map_blocks`` function can also accept multiple arrays.
>>> d = da.arange(5, chunks=2)
>>> e = da.arange(5, chunks=2)
>>> f = da.map_blocks(lambda a, b: a + b**2, d, e)
>>> f.compute()
array([ 0, 2, 6, 12, 20])
If the function changes shape of the blocks then you must provide chunks
explicitly.
>>> y = x.map_blocks(lambda x: x[::2], chunks=((2, 2),))
You have a bit of freedom in specifying chunks. If all of the output chunk
sizes are the same, you can provide just that chunk size as a single tuple.
>>> a = da.arange(18, chunks=(6,))
>>> b = a.map_blocks(lambda x: x[:3], chunks=(3,))
If the function changes the dimension of the blocks you must specify the
created or destroyed dimensions.
>>> b = a.map_blocks(lambda x: x[None, :, None], chunks=(1, 6, 1),
... new_axis=[0, 2])
If ``chunks`` is specified but ``new_axis`` is not, then it is inferred to
add the necessary number of axes on the left.
Note that ``map_blocks()`` will concatenate chunks along axes specified by
the keyword parameter ``drop_axis`` prior to applying the function.
This is illustrated in the figure below:
.. image:: /images/map_blocks_drop_axis.png
Due to memory-size-constraints, it is often not advisable to use ``drop_axis``
on an axis that is chunked. In that case, it is better not to use
``map_blocks`` but rather
``dask.array.reduction(..., axis=dropped_axes, concatenate=False)`` which
maintains a leaner memory footprint while it drops any axis.
Map_blocks aligns blocks by block positions without regard to shape. In the
following example we have two arrays with the same number of blocks but
with different shape and chunk sizes.
>>> x = da.arange(1000, chunks=(100,))
>>> y = da.arange(100, chunks=(10,))
The relevant attribute to match is numblocks.
>>> x.numblocks
(10,)
>>> y.numblocks
(10,)
If these match (up to broadcasting rules) then we can map arbitrary
functions across blocks
>>> def func(a, b):
... return np.array([a.max(), b.max()])
>>> da.map_blocks(func, x, y, chunks=(2,), dtype='i8')
dask.array<func, shape=(20,), dtype=int64, chunksize=(2,), chunktype=numpy.ndarray>
>>> _.compute()
array([ 99, 9, 199, 19, 299, 29, 399, 39, 499, 49, 599, 59, 699,
69, 799, 79, 899, 89, 999, 99])
Your block function can get information about where it is in the array by
accepting a special ``block_info`` or ``block_id`` keyword argument.
During computation, they will contain information about each of the input
and output chunks (and dask arrays) relevant to each call of ``func``.
>>> def func(block_info=None):
... pass
This will receive the following information:
>>> block_info # doctest: +SKIP
{0: {'shape': (1000,),
'num-chunks': (10,),
'chunk-location': (4,),
'array-location': [(400, 500)]},
None: {'shape': (1000,),
'num-chunks': (10,),
'chunk-location': (4,),
'array-location': [(400, 500)],
'chunk-shape': (100,),
'dtype': dtype('float64')}}
The keys to the ``block_info`` dictionary indicate which is the input and
output Dask array:
- **Input Dask array(s):** ``block_info[0]`` refers to the first input Dask array.
The dictionary key is ``0`` because that is the argument index corresponding
to the first input Dask array.
In cases where multiple Dask arrays have been passed as input to the function,
you can access them with the number corresponding to the input argument,
eg: ``block_info[1]``, ``block_info[2]``, etc.
(Note that if you pass multiple Dask arrays as input to map_blocks,
the arrays must match each other by having matching numbers of chunks,
along corresponding dimensions up to broadcasting rules.)
- **Output Dask array:** ``block_info[None]`` refers to the output Dask array,
and contains information about the output chunks.
The output chunk shape and dtype may may be different than the input chunks.
For each dask array, ``block_info`` describes:
- ``shape``: the shape of the full Dask array,
- ``num-chunks``: the number of chunks of the full array in each dimension,
- ``chunk-location``: the chunk location (for example the fourth chunk over
in the first dimension), and
- ``array-location``: the array location within the full Dask array
(for example the slice corresponding to ``40:50``).
In addition to these, there are two extra parameters described by
``block_info`` for the output array (in ``block_info[None]``):
- ``chunk-shape``: the output chunk shape, and
- ``dtype``: the output dtype.
These features can be combined to synthesize an array from scratch, for
example:
>>> def func(block_info=None):
... loc = block_info[None]['array-location'][0]
... return np.arange(loc[0], loc[1])
>>> da.map_blocks(func, chunks=((4, 4),), dtype=np.float64)
dask.array<func, shape=(8,), dtype=float64, chunksize=(4,), chunktype=numpy.ndarray>
>>> _.compute()
array([0, 1, 2, 3, 4, 5, 6, 7])
``block_id`` is similar to ``block_info`` but contains only the ``chunk_location``:
>>> def func(block_id=None):
... pass
This will receive the following information:
>>> block_id # doctest: +SKIP
(4, 3)
You may specify the key name prefix of the resulting task in the graph with
the optional ``token`` keyword argument.
>>> x.map_blocks(lambda x: x + 1, name='increment')
dask.array<increment, shape=(1000,), dtype=int64, chunksize=(100,), chunktype=numpy.ndarray>
For functions that may not handle 0-d arrays, it's also possible to specify
``meta`` with an empty array matching the type of the expected result. In
the example below, ``func`` will result in an ``IndexError`` when computing
``meta``:
>>> rng = da.random.default_rng()
>>> da.map_blocks(lambda x: x[2], rng.random(5), meta=np.array(()))
dask.array<lambda, shape=(5,), dtype=float64, chunksize=(5,), chunktype=numpy.ndarray>
Similarly, it's possible to specify a non-NumPy array to ``meta``, and provide
a ``dtype``:
>>> import cupy # doctest: +SKIP
>>> rng = da.random.default_rng(cupy.random.default_rng()) # doctest: +SKIP
>>> dt = np.float32
>>> da.map_blocks(lambda x: x[2], rng.random(5, dtype=dt), meta=cupy.array((), dtype=dt)) # doctest: +SKIP
dask.array<lambda, shape=(5,), dtype=float32, chunksize=(5,), chunktype=cupy.ndarray>
"""
if drop_axis is None:
drop_axis = []
if not callable(func):
msg = (
"First argument must be callable function, not %s\n"
"Usage: da.map_blocks(function, x)\n"
" or: da.map_blocks(function, x, y, z)"
)
raise TypeError(msg % type(func).__name__)
if token:
warnings.warn(
"The `token=` keyword to `map_blocks` has been moved to `name=`. "
"Please use `name=` instead as the `token=` keyword will be removed "
"in a future release.",
category=FutureWarning,
)
name = token
name = f"{name or funcname(func)}-{tokenize(func, dtype, chunks, drop_axis, new_axis, *args, **kwargs)}"
new_axes = {}
if isinstance(drop_axis, Number):
drop_axis = [drop_axis]
if isinstance(new_axis, Number):
new_axis = [new_axis] # TODO: handle new_axis
arrs = [a for a in args if isinsta…tack
"""
from dask.array import wrap
seq = [asarray(a, allow_unknown_chunksizes=allow_unknown_chunksizes) for a in seq]
if not seq:
raise ValueError("Need array(s) to concatenate")
if axis is None:
seq = [a.flatten() for a in seq]
axis = 0
seq_metas = [meta_from_array(s) for s in seq]
_concatenate = concatenate_lookup.dispatch(
type(max(seq_metas, key=lambda x: getattr(x, "__array_priority__", 0)))
)
meta = _concatenate(seq_metas, axis=axis)
# Promote types to match meta
seq = [a.astype(meta.dtype) for a in seq]
# Find output array shape
ndim = len(seq[0].shape)
shape = tuple(
sum(a.shape[i] for a in seq) if i == axis else seq[0].shape[i]
for i in range(ndim)
)
# Drop empty arrays
seq2 = [a for a in seq if a.size]
if not seq2:
seq2 = seq
if axis < 0:
axis = ndim + axis
if axis >= ndim:
msg = (
"Axis must be less than than number of dimensions"
"\nData has %d dimensions, but got axis=%d"
)
raise ValueError(msg % (ndim, axis))
n = len(seq2)
if n == 0:
try:
return wrap.empty_like(meta, shape=shape, chunks=shape, dtype=meta.dtype)
except TypeError:
return wrap.empty(shape, chunks=shape, dtype=meta.dtype)
elif n == 1:
return seq2[0]
if not allow_unknown_chunksizes and not all(
i == axis or all(x.shape[i] == seq2[0].shape[i] for x in seq2)
for i in range(ndim)
):
if any(map(np.isnan, seq2[0].shape)):
raise ValueError(
"Tried to concatenate arrays with unknown"
" shape %s.\n\nTwo solutions:\n"
" 1. Force concatenation pass"
" allow_unknown_chunksizes=True.\n"
" 2. Compute shapes with "
"[x.compute_chunk_sizes() for x in seq]" % str(seq2[0].shape)
)
raise ValueError("Shapes do not align: %s", [x.shape for x in seq2])
inds = [list(range(ndim)) for i in range(n)]
for i, ind in enumerate(inds):
ind[axis] = -(i + 1)
uc_args = list(concat(zip(seq2, inds)))
_, seq2 = unify_chunks(*uc_args, warn=False)
bds = [a.chunks for a in seq2]
chunks = (
seq2[0].chunks[:axis]
+ (sum((bd[axis] for bd in bds), ()),)
+ seq2[0].chunks[axis + 1 :]
)
cum_dims = [0] + list(accumulate(add, [len(a.chunks[axis]) for a in seq2]))
names = [a.name for a in seq2]
name = "concatenate-" + tokenize(names, axis)
keys = list(product([name], *[range(len(bd)) for bd in chunks]))
values = [
(names[bisect(cum_dims, key[axis + 1]) - 1],)
+ key[1 : axis + 1]
+ (key[axis + 1] - cum_dims[bisect(cum_dims, key[axis + 1]) - 1],)
+ key[axis + 2 :]
for key in keys
]
dsk = dict(zip(keys, values))
graph = HighLevelGraph.from_collections(name, dsk, dependencies=seq2)
return Array(graph, name, chunks, meta=meta)
def load_store_chunk(
x: Any,
out: Any,
index: slice,
lock: Any,
return_stored: bool,
load_stored: bool,
):
"""
A function inserted in a Dask graph for storing a chunk.
Parameters
----------
x: array-like
An array (potentially a NumPy one)
out: array-like
Where to store results.
index: slice-like
Where to store result from ``x`` in ``out``.
lock: Lock-like or False
Lock to use before writing to ``out``.
return_stored: bool
Whether to return ``out``.
load_stored: bool
Whether to return the array stored in ``out``.
Ignored if ``return_stored`` is not ``True``.
Returns
-------
If return_stored=True and load_stored=False
out
If return_stored=True and load_stored=True
out[index]
If return_stored=False and compute=False
None
Examples
--------
>>> a = np.ones((5, 6))
>>> b = np.empty(a.shape)
>>> load_store_chunk(a, b, (slice(None), slice(None)), False, False, False)
"""
if lock:
lock.acquire()
try:
if x is not None and x.size != 0:
if is_arraylike(x):
out[index] = x
else:
out[index] = np.asanyarray(x)
if return_stored and load_stored:
return out[index]
elif return_stored and not load_stored:
return out
else:
return None
finally:
if lock:
lock.release()
def store_chunk(
x: ArrayLike, out: ArrayLike, index: slice, lock: Any, return_stored: bool
):
return load_store_chunk(x, out, index, lock, return_stored, False)
A = TypeVar("A", bound=ArrayLike)
def load_chunk(out: A, index: slice, lock: Any) -> A:
return load_store_chunk(None, out, index, lock, True, True)
def insert_to_ooc(
keys: list,
chunks: tuple[tuple[int, ...], ...],
out: ArrayLike,
name: str,
*,
lock: Lock | bool = True,
region: tuple[slice, ...] | slice | None = None,
return_stored: bool = False,
load_stored: bool = False,
) -> dict:
"""
Creates a Dask graph for storing chunks from ``arr`` in ``out``.
Parameters
----------
keys: list
Dask keys of the input array
chunks: tuple
Dask chunks of the input array
out: array-like
Where to store results to
name: str
First element of dask keys
lock: Lock-like or bool, optional
Whether to lock or with what (default is ``True``,
which means a :class:`threading.Lock` instance).
region: slice-like, optional
Where in ``out`` to store ``arr``'s results
(default is ``None``, meaning all of ``out``).
return_stored: bool, optional
Whether to return ``out``
(default is ``False``, meaning ``None`` is returned).
load_stored: bool, optional
Whether to handling loading from ``out`` at the same time.
Ignored if ``return_stored`` is not ``True``.
(default is ``False``, meaning defer to ``return_stored``).
Returns
-------
dask graph of store operation
Examples
--------
>>> import dask.array as da
>>> d = da.ones((5, 6), chunks=(2, 3))
>>> a = np.empty(d.shape)
>>> insert_to_ooc(d.__dask_keys__(), d.chunks, a, "store-123") # doctest: +SKIP
"""
if lock is True:
lock = Lock()
slices = slices_from_chunks(chunks)
if region:
slices = [fuse_slice(region, slc) for slc in slices]
if return_stored and load_stored:
func = load_store_chunk
args = (load_stored,)
else:
func = store_chunk # type: ignore
args = () # type: ignore
dsk = {
(name,) + t[1:]: (func, t, out, slc, lock, return_stored) + args
for t, slc in zip(core.flatten(keys), slices)
}
return dsk
def retrieve_from_ooc(
keys: Collection[Key], dsk_pre: Graph, dsk_post: Graph
) -> dict[tuple, Any]:
"""
Creates a Dask graph for loading stored ``keys`` from ``dsk``.
Parameters
----------
keys: Collection
A sequence containing Dask graph keys to load
dsk_pre: Mapping
A Dask graph corresponding to a Dask Array before computation
dsk_post: Mapping
A Dask graph corresponding to a Dask Array after computation
Examples
--------
>>> import dask.array as da
>>> d = da.ones((5, 6), chunks=(2, 3))
>>> a = np.empty(d.shape)
>>> g = insert_to_ooc(d.__dask_keys__(), d.chunks, a, "store-123")
>>> retrieve_from_ooc(g.keys(), g, {k: k for k in g.keys()}) # doctest: +SKIP
"""
load_dsk = {
("load-" + k[0],) + k[1:]: (load_chunk, dsk_post[k]) + dsk_pre[k][3:-1] # type: ignore
for k in keys
}
return load_dsk
def _as_dtype(a, dtype):
if dtype is None:
return a
else:
return a.astype(dtype)
def asarray(
a, allow_unknown_chunksizes=False, dtype=None, order=None, *, like=None, **kwargs
):
"""Convert the input to a dask array.
Parameters
----------
a : array-like
Input data, in any form that can be converted to a dask array. This
includes lists, lists of tuples, tuples, tuples of tuples, tuples of
lists and ndarrays.
allow_unknown_chunksizes: bool
Allow unknown chunksizes, such as come from converting from dask
dataframes. Dask.array is unable to verify that chunks line up. If
data comes from differently aligned sources then this can cause
unexpected results.
dtype : data-type, optional
By default, the data-type is inferred from the input data.
order : {‘C’, ‘F’, ‘A’, ‘K’}, optional
Memory layout. ‘A’ and ‘K’ depend on the order of input array a.
‘C’ row-major (C-style), ‘F’ column-major (Fortran-style) memory
representation. ‘A’ (any) means ‘F’ if a is Fortran contiguous, ‘C’
otherwise ‘K’ (keep) preserve input order. Defaults to ‘C’.
like: array-like
Reference object to allow the creation of Dask arrays with chunks
that are not NumPy arrays. If an array-like passed in as ``like``
supports the ``__array_function__`` protocol, the chunk type of the
resulting array will be defined by it. In this case, it ensures the
creation of a Dask array compatible with that passed in via this
argument. If ``like`` is a Dask array, the chunk type of the
resulting array will be defined by the chunk type of ``like``.
Requires NumPy 1.20.0 or higher.
Returns
-------
out : dask array
Dask array interpretation of a.
Examples
--------
>>> import dask.array as da
>>> import numpy as np
>>> x = np.arange(3)
>>> da.asarray(x)
dask.array<array, shape=(3,), dtype=int64, chunksize=(3,), chunktype=numpy.ndarray>
>>> y = [[1, 2, 3], [4, 5, 6]]
>>> da.asarray(y)
dask.array<array, shape=(2, 3), dtype=int64, chunksize=(2, 3), chunktype=numpy.ndarray>
.. warning::
`order` is ignored if `a` is an `Array`, has the attribute ``to_dask_array``,
or is a list or tuple of `Array`'s.
"""
if like is None:
if isinstance(a, Array):
return _as_dtype(a, dtype)
elif hasattr(a, "to_dask_array"):
return _as_dtype(a.to_dask_array(), dtype)
elif type(a).__module__.split(".")[0] == "xarray" and hasattr(a, "data"):
return _as_dtype(asarray(a.data, order=order), dtype)
elif isinstance(a, (list, tuple)) and any(isinstance(i, Array) for i in a):
return _as_dtype(
stack(a, allow_unknown_chunksizes=allow_unknown_chunksizes), dtype
)
elif not isinstance(getattr(a, "shape", None), Iterable):
a = np.asarray(a, dtype=dtype, order=order)
else:
like_meta = meta_from_array(like)
if isinstance(a, Array):
return a.map_blocks(np.asarray, like=like_meta, dtype=dtype, order=order)
else:
a = np.asarray(a, like=like_meta, dtype=dtype, order=order)
return from_array(a, getitem=getter_inline, **kwargs)
def asanyarray(a, dtype=None, order=None, *, like=None, inline_array=False):
"""Convert the input to a dask array.
Subclasses of ``np.ndarray`` will be passed through as chunks unchanged.
Parameters
----------
a : array-like
Input data, in any form that can be converted to a dask array. This
includes lists, lists of tuples, tuples, tuples of tuples, tuples of
lists and ndarrays.
dtype : data-type, optional
By default, the data-type is inferred from the input data.
order : {‘C’, ‘F’, ‘A’, ‘K’}, optional
Memory layout. ‘A’ and ‘K’ depend on the order of input array a.
‘C’ row-major (C-style), ‘F’ column-major (Fortran-style) memory
representation. ‘A’ (any) means ‘F’ if a is Fortran contiguous, ‘C’
otherwise ‘K’ (keep) preserve input order. Defaults to ‘C’.
like: array-like
Reference object to allow the creation of Dask arrays with chunks
that are not NumPy arrays. If an array-like passed in as ``like``
supports the ``__array_function__`` protocol, the chunk type of the
resulting array will be defined by it. In this case, it ensures the
creation of a Dask array compatible with that passed in via this
argument. If ``like`` is a Dask array, the chunk type of the
resulting array will be defined by the chunk type of ``like``.
Requires NumPy 1.20.0 or higher.
inline_array:
Whether to inline the array in the resulting dask graph. For more information,
see the documentation for ``dask.array.from_array()``.
Returns
-------
out : dask array
Dask array interpretation of a.
Examples
--------
>>> import dask.array as da
>>> import numpy as np
>>> x = np.arange(3)
>>> da.asanyarray(x)
dask.array<array, shape=(3,), dtype=int64, chunksize=(3,), chunktype=numpy.ndarray>
>>> y = [[1, 2, 3], [4, 5, 6]]
>>> da.asanyarray(y)
dask.array<array, shape=(2, 3), dtype=int64, chunksize=(2, 3), chunktype=numpy.ndarray>
.. warning::
`order` is ignored if `a` is an `Array`, has the attribute ``to_dask_array``,
or is a list or tuple of `Array`'s.
"""
if like is None:
if isinstance(a, Array):
return _as_dtype(a, dtype)
elif hasattr(a, "to_dask_array"):
return _as_dtype(a.to_dask_array(), dtype)
elif type(a).__module__.split(".")[0] == "xarray" and hasattr(a, "data"):
return _as_dtype(asarray(a.data, order=order), dtype)
elif isinstance(a, (list, tuple)) and any(isinstance(i, Array) for i in a):
return _as_dtype(stack(a), dtype)
elif not isinstance(getattr(a, "shape", None), Iterable):
a = np.asanyarray(a, dtype=dtype, order=order)
else:
like_meta = meta_from_array(like)
if isinstance(a, Array):
return a.map_blocks(np.asanyarray, like=like_meta, dtype=dtype, order=order)
else:
a = np.asanyarray(a, like=like_meta, dtype=dtype, order=order)
return from_array(
a,
chunks=a.shape,
getitem=getter_inline,
asarray=False,
inline_array=inline_array,
)
def is_scalar_for_elemwise(arg):
"""
>>> is_scalar_for_elemwise(42)
True
>>> is_scalar_for_elemwise('foo')
True
>>> is_scalar_for_elemwise(True)
True
>>> is_scalar_for_elemwise(np.array(42))
True
>>> is_scalar_for_elemwise([1, 2, 3])
True
>>> is_scalar_for_elemwise(np.array([1, 2, 3]))
False
>>> is_scalar_for_elemwise(from_array(np.array(0), chunks=()))
False
>>> is_scalar_for_elemwise(np.dtype('i4'))
True
"""
# the second half of shape_condition is essentially just to ensure that
# dask series / frame are treated as scalars in elemwise.
maybe_shape = getattr(arg, "shape", None)
shape_condition = not isinstance(maybe_shape, Iterable) or any(
is_dask_collection(x) for x in maybe_shape
)
return (
np.isscalar(arg)
or shape_condition
or isinstance(arg, np.dtype)
or (isinstance(arg, np.ndarray) and arg.ndim == 0)
)
def broadcast_shapes(*shapes):
"""
Determines output shape from broadcasting arrays.
Parameters
----------
shapes : tuples
The shapes of the arguments.
Returns
-------
output_shape : tuple
Raises
------
ValueError
If the input shapes cannot be successfully broadcast together.
"""
if len(shapes) == 1:
return shapes[0]
out = []
for sizes in zip_longest(*map(reversed, shapes), fillvalue=-1):
if np.isnan(sizes).any():
dim = np.nan
else:
dim = 0 if 0 in sizes else np.max(sizes).item()
if any(i not in [-1, 0, 1, dim] and not np.isnan(i) for i in sizes):
raise ValueError(
"operands could not be broadcast together with "
"shapes {}".format(" ".join(map(str, shapes)))
)
out.append(dim)
return tuple(reversed(out))
def elemwise(op, *args, out=None, where=True, dtype=None, name=None, **kwargs):
"""Apply an elementwise ufunc-like function blockwise across arguments.
Like numpy ufuncs, broadcasting rules are respected.
Parameters
----------
op : callable
The function to apply. Should be numpy ufunc-like in the parameters
that it accepts.
*args : Any
Arguments to pass to `op`. Non-dask array-like objects are first
converted to dask arrays, then all arrays are broadcast together before
applying the function blockwise across all arguments. Any scalar
arguments are passed as-is following normal numpy ufunc behavior.
out : dask array, optional
If out is a dask.array then this overwrites the contents of that array
with the result.
where : array_like, optional
An optional boolean mask marking locations where the ufunc should be
applied. Can be a scalar, dask array, or any other array-like object.
Mirrors the ``where`` argument to numpy ufuncs, see e.g. ``numpy.add``
for more information.
dtype : dtype, optional
If provided, overrides the output array dtype.
name : str, optional
A unique key name to use when building the backing dask graph. If not
provided, one will be automatically generated based on the input
arguments.
Examples
--------
>>> elemwise(add, x, y) # doctest: +SKIP
>>> elemwise(sin, x) # doctest: +SKIP
>>> elemwise(sin, x, out=dask_array) # doctest: +SKIP
See Also
--------
blockwise
"""
if kwargs:
raise TypeError(
f"{op.__name__} does not take the following keyword arguments "
f"{sorted(kwargs)}"
)
out = _elemwise_normalize_out(out)
where = _elemwise_normalize_where(where)
args = [np.asarray(a) if isinstance(a, (list, tuple)) else a for a in args]
shapes = []
for arg in args:
shape = getattr(arg, "shape", ())
if any(is_dask_collection(x) for x in shape):
# Want to exclude Delayed shapes and dd.Scalar
shape = ()
shapes.append(shape)
if isinstance(where, Array):
shapes.append(where.shape)
if isinstance(out, Array):
shapes.append(out.shape)
shapes = [s if isinstance(s, Iterable) else () for s in shapes]
out_ndim = len(
broadcast_shapes(*shapes)
) # Raises ValueError if dimensions mismatch
expr_inds = tuple(range(out_ndim))[::-1]
if dtype is not None:
need_enforce_dtype = True
else:
# We follow NumPy's rules for dtype promotion, which special cases
# scalars and 0d ndarrays (which it considers equivalent) by using
# their values to compute the result dtype:
# https://github.com/numpy/numpy/issues/6240
# We don't inspect the values of 0d dask arrays, because these could
# hold potentially very expensive calculations. Instead, we treat
# them just like other arrays, and if necessary cast the result of op
# to match.
vals = [
(
np.empty((1,) * max(1, a.ndim), dtype=a.dtype)
if not is_scalar_for_elemwise(a)
else a
)
for a in args
]
try:
dtype = apply_infer_dtype(op, vals, {}, "elemwise", suggest_dtype=False)
except Exception:
return NotImplemented
need_enforce_dtype = any(
not is_scalar_for_elemwise(a) and a.ndim == 0 for a in args
)
if not name:
name = f"{funcname(op)}-{tokenize(op, dtype, *args, where)}"
blockwise_kwargs = dict(dtype=dtype, name=name, token=funcname(op).strip("_"))
if where is not True:
blockwise_kwargs["elemwise_where_function"] = op
op = _elemwise_handle_where
args.extend([where, out])
if need_enforce_dtype:
blockwise_kwargs["enforce_dtype"] = dtype
blockwise_kwargs["enforce_dtype_function"] = op
op = _enforce_dtype
result = blockwise(
op,
expr_inds,
*concat(
(a, tuple(range(a.ndim)[::-1]) if not is_scalar_for_elemwise(a) else None)
for a in args
),
**blockwise_kwargs,
)
return handle_out(out, result)
def _elemwise_normalize_where(where):
if where is True:
return True
elif where is False or where is None:
return False
return asarray(where)
def _elemwise_handle_where(*args, **kwargs):
function = kwargs.pop("elemwise_where_function")
*args, where, out = args
if hasattr(out, "copy"):
out = out.copy()
return function(*args, where=where, out=out, **kwargs)
def _elemwise_normalize_out(out):
if isinstance(out, tuple):
if len(out) == 1:
out = out[0]
elif len(out) > 1:
raise NotImplementedError("The out parameter is not fully supported")
else:
out = None
if not (out is None or isinstance(out, Array)):
raise NotImplementedError(
f"The out parameter is not fully supported."
f" Received type {type(out).__name__}, expected Dask Array"
)
return out
def handle_out(out, result):
"""Handle out parameters
If out is a dask.array then this overwrites the contents of that array with
the result
"""
out = _elemwise_normalize_out(out)
if isinstance(out, Array):
if out.shape != result.shape:
raise ValueError(
"Mismatched shapes between result and out parameter. "
"out=%s, result=%s" % (str(out.shape), str(result.shape))
)
out._chunks = result.chunks
out.dask = result.dask
out._meta = result._meta
out._name = result.name
return out
else:
return result
def _enforce_dtype(*args, **kwargs):
"""Calls a function and converts its result to the given dtype.
The parameters have deliberately been given unwieldy names to avoid
clashes with keyword arguments consumed by blockwise
A dtype of `object` is treated as a special case and not enforced,
because it is used as a dummy value in some places when the result will
not be a block in an Array.
Parameters
----------
enforce_dtype : dtype
Result dtype
enforce_dtype_function : callable
The wrapped function, which will be passed the remaining arguments
"""
dtype = kwargs.pop("enforce_dtype")
function = kwargs.pop("enforce_dtype_function")
result = function(*args, **kwargs)
if hasattr(result, "dtype") and dtype != result.dtype and dtype != object:
if not np.can_cast(result, dtype, casting="same_kind"):
raise ValueError(
"Inferred dtype from function %r was %r "
"but got %r, which can't be cast using "
"casting='same_kind'"
% (funcname(function), str(dtype), str(result.dtype))
)
if np.isscalar(result):
# scalar astype method doesn't take the keyword arguments, so
# have to convert via 0-dimensional array and back.
result = result.astype(dtype)
else:
try:
result = result.astype(dtype, copy=False)
except TypeError:
# Missing copy kwarg
result = result.astype(dtype)
return result
def broadcast_to(x, shape, chunks=None, meta=None):
"""Broadcast an array to a new shape.
Parameters
----------
x : array_like
The array to broadcast.
shape : tuple
The shape of the desired array.
chunks : tuple, optional
If provided, then the result will use these chunks instead of the same
chunks as the source array. Setting chunks explicitly as part of
broadcast_to is more efficient than rechunking afterwards. Chunks are
only allowed to differ from the original shape along dimensions that
are new on the result or have size 1 the input array.
meta : empty ndarray
empty ndarray created with same NumPy backend, ndim and dtype as the
Dask Array being created (overrides dtype)
Returns
-------
broadcast : dask array
See Also
--------
:func:`numpy.broadcast_to`
"""
x = asarray(x)
shape = tuple(shape)
if meta is None:
meta = meta_from_array(x)
if x.shape == shape and (chunks is None or chunks == x.chunks):
return x
ndim_new = len(shape) - x.ndim
if ndim_new < 0 or any(
new != old for new, old in zip(shape[ndim_new:], x.shape) if old != 1
):
raise ValueError(f"cannot broadcast shape {x.shape} to shape {shape}")
if chunks is None:
chunks = tuple((s,) for s in shape[:ndim_new]) + tuple(
bd if old > 1 else (new,)
for bd, old, new in zip(x.chunks, x.shape, shape[ndim_new:])
)
else:
chunks = normalize_chunks(
chunks, shape, dtype=x.dtype, previous_chunks=x.chunks
)
for old_bd, new_bd in zip(x.chunks, chunks[ndim_new:]):
if old_bd != new_bd and old_bd != (1,):
raise ValueError(
"cannot broadcast chunks %s to chunks %s: "
"new chunks must either be along a new "
"dimension or a dimension of size 1" % (x.chunks, chunks)
)
name = "broadcast_to-" + tokenize(x, shape, chunks)
dsk = {}
enumerated_chunks = product(*(enumerate(bds) for bds in chunks))
for new_index, chunk_shape in (zip(*ec) for ec in enumerated_chunks):
old_index = tuple(
0 if bd == (1,) else i for bd, i in zip(x.chunks, new_index[ndim_new:])
)
old_key = (x.name,) + old_index
new_key = (name,) + new_index
dsk[new_key] = (np.broadcast_to, old_key, quote(chunk_shape))
graph = HighLevelGraph.from_collections(name, dsk, dependencies=[x])
return Array(graph, name, chunks, dtype=x.dtype, meta=meta)
@derived_from(np)
def broadcast_arrays(*args, subok=False):
subok = bool(subok)
to_array = asanyarray if subok else asarray
args = tuple(to_array(e) for e in args)
# Unify uneven chunking
inds = [list(reversed(range(x.ndim))) for x in args]
uc_args = concat(zip(args, inds))
_, args = unify_chunks(*uc_args, warn=False)
shape = broadcast_shapes(*(e.shape for e in args))
chunks = broadcast_chunks(*(e.chunks for e in args))
if NUMPY_GE_200:
result = tuple(broadcast_to(e, shape=shape, chunks=chunks) for e in args)
else:
result = [broadcast_to(e, shape=shape, chunks=chunks) for e in args]
return result
def offset_func(func, offset, *args):
"""Offsets inputs by offset
>>> double = lambda x: x * 2
>>> f = offset_func(double, (10,))
>>> f(1)
22
>>> f(300)
620
"""
def _offset(*args):
args2 = list(map(add, args, offset))
return func(*args2)
with contextlib.suppress(Exception):
_offset.__name__ = "offset_" + func.__name__
return _offset
def chunks_from_arrays(arrays):
"""Chunks tuple from nested list of arrays
>>> x = np.array([1, 2])
>>> chunks_from_arrays([x, x])
((2, 2),)
>>> x = np.array([[1, 2]])
>>> chunks_from_arrays([[x], [x]])
((1, 1), (2,))
>>> x = np.array([[1, 2]])
>>> chunks_from_arrays([[x, x]])
((1,), (2, 2))
>>> chunks_from_arrays([1, 1])
((1, 1),)
"""
if not arrays:
return ()
result = []
dim = 0
def shape(x):
try:
return x.shape if x.shape else (1,)
except AttributeError:
return (1,)
while isinstance(arrays, (list, tuple)):
> result.append(tuple(shape(deepfirst(a))[dim] for a in arrays))
E IndexError: tuple index out of range
../../../miniconda3/envs/dask-distributed/lib/python3.10/site-packages/dask/array/core.py:5237: IndexError
Check warning on line 0 in distributed.tests.test_stress
github-actions / Unit Test Results
11 out of 12 runs failed: test_stress_creation_and_deletion (distributed.tests.test_stress)
artifacts/macos-latest-3.12-default-ci1/pytest.xml [took 7s]
artifacts/ubuntu-latest-3.10-default-ci1/pytest.xml [took 8s]
artifacts/ubuntu-latest-3.10-no_expr-ci1/pytest.xml [took 8s]
artifacts/ubuntu-latest-3.10-no_queue-ci1/pytest.xml [took 8s]
artifacts/ubuntu-latest-3.11-default-ci1/pytest.xml [took 7s]
artifacts/ubuntu-latest-3.12-default-ci1/pytest.xml [took 8s]
artifacts/ubuntu-latest-mindeps-numpy-ci1/pytest.xml [took 11s]
artifacts/ubuntu-latest-mindeps-pandas-ci1/pytest.xml [took 8s]
artifacts/windows-latest-3.10-default-ci1/pytest.xml [took 8s]
artifacts/windows-latest-3.11-default-ci1/pytest.xml [took 8s]
artifacts/windows-latest-3.12-default-ci1/pytest.xml [took 7s]
Raw output
AssertionError: assert 'round-b89fc6a0c237768ce10a9bb2612b8163' == 8000884.93
c = <Client: No scheduler connected>
s = <Scheduler 'tcp://127.0.0.1:45607', workers: 0, cores: 0, tasks: 0>
@pytest.mark.slow
@gen_cluster(
nthreads=[],
client=True,
scheduler_kwargs={"allowed_failures": 100_000},
)
async def test_stress_creation_and_deletion(c, s):
# Assertions are handled by the validate mechanism in the scheduler
pytest.importorskip("numpy")
da = pytest.importorskip("dask.array")
rng = da.random.RandomState(0)
x = rng.random(size=(2000, 2000), chunks=(100, 100))
y = ((x + 1).T + (x * 2) - x.mean(axis=1)).sum().round(2)
z = c.persist(y)
async def create_and_destroy_worker(delay):
start = time()
while time() < start + 5:
async with Worker(s.address, nthreads=2) as n:
await asyncio.sleep(delay)
await asyncio.gather(*(create_and_destroy_worker(0.1 * i) for i in range(20)))
async with Worker(s.address, nthreads=2):
> assert await c.compute(z) == 8000884.93
E AssertionError: assert 'round-b89fc6a0c237768ce10a9bb2612b8163' == 8000884.93
distributed/tests/test_stress.py:125: AssertionError
Check notice on line 0 in .github
github-actions / Unit Test Results
110 skipped tests found
There are 110 skipped tests, see "Raw output" for the full list of skipped tests.
Raw output
distributed.cli.tests.test_dask_scheduler
distributed.cli.tests.test_dask_ssh
distributed.cli.tests.test_dask_worker ‑ test_listen_address_ipv6[tcp://:---nanny]
distributed.cli.tests.test_dask_worker ‑ test_listen_address_ipv6[tcp://:---no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_listen_address_ipv6[tcp://[::1]:---nanny]
distributed.cli.tests.test_dask_worker ‑ test_listen_address_ipv6[tcp://[::1]:---no-nanny]
distributed.comm.tests.test_comms ‑ test_default_client_server_ipv6[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_client_server_ipv6[tornado]
distributed.comm.tests.test_comms ‑ test_tls_client_server_ipv6[tornado]
distributed.comm.tests.test_comms ‑ test_ucx_client_server
distributed.comm.tests.test_ucx
distributed.comm.tests.test_ucx_config
distributed.dashboard.tests.test_components
distributed.dashboard.tests.test_scheduler_bokeh
distributed.dashboard.tests.test_worker_bokeh
distributed.deploy.tests.test_old_ssh
distributed.deploy.tests.test_ssh
distributed.diagnostics.tests.test_cudf_diagnostics
distributed.diagnostics.tests.test_memory_sampler ‑ test_pandas[False]
distributed.diagnostics.tests.test_memory_sampler ‑ test_pandas[True]
distributed.diagnostics.tests.test_memray
distributed.diagnostics.tests.test_nvml
distributed.diagnostics.tests.test_nvml ‑ test_1_visible_devices
distributed.diagnostics.tests.test_nvml ‑ test_2_visible_devices[0,1]
distributed.diagnostics.tests.test_nvml ‑ test_2_visible_devices[1,0]
distributed.diagnostics.tests.test_nvml ‑ test_gpu_metrics
distributed.diagnostics.tests.test_nvml ‑ test_gpu_monitoring_range_query
distributed.diagnostics.tests.test_nvml ‑ test_gpu_monitoring_recent
distributed.diagnostics.tests.test_nvml ‑ test_has_cuda_context
distributed.diagnostics.tests.test_nvml ‑ test_one_time
distributed.diagnostics.tests.test_nvml ‑ test_visible_devices_bad_uuid
distributed.diagnostics.tests.test_nvml ‑ test_visible_devices_uuid
distributed.diagnostics.tests.test_nvml ‑ test_visible_devices_uuid_2[0]
distributed.diagnostics.tests.test_nvml ‑ test_visible_devices_uuid_2[1]
distributed.diagnostics.tests.test_progress_stream
distributed.diagnostics.tests.test_progress_widgets
distributed.diagnostics.tests.test_rmm_diagnostics
distributed.protocol.tests.test_arrow
distributed.protocol.tests.test_collection
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_cupy[50-cuda-dict]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_cupy[50-cuda-tuple]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_cupy[None-pickle-dict]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_cupy[None-pickle-tuple]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_pandas_pandas[None-pickle-dict]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_pandas_pandas[None-pickle-tuple]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_pandas_pandas[df20-cuda-dict]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_pandas_pandas[df20-cuda-tuple]
distributed.protocol.tests.test_cupy
distributed.protocol.tests.test_h5py
distributed.protocol.tests.test_highlevelgraph
distributed.protocol.tests.test_keras
distributed.protocol.tests.test_netcdf4
distributed.protocol.tests.test_numba
distributed.protocol.tests.test_numpy
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy_custom_dtype
distributed.protocol.tests.test_pandas
distributed.protocol.tests.test_rmm
distributed.protocol.tests.test_scipy
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data7-True]
distributed.protocol.tests.test_sparse
distributed.protocol.tests.test_torch
distributed.shuffle.tests.test_graph
distributed.shuffle.tests.test_graph ‑ test_raise_on_custom_objects
distributed.shuffle.tests.test_merge
distributed.shuffle.tests.test_merge_column_and_index
distributed.shuffle.tests.test_rechunk
distributed.shuffle.tests.test_shuffle
distributed.shuffle.tests.test_shuffle ‑ test_basic_cudf_support
distributed.shuffle.tests.test_shuffle_plugins
distributed.tests.test_actor ‑ test_linear_access
distributed.tests.test_client ‑ test_annotations_survive_optimization
distributed.tests.test_client ‑ test_badly_serialized_input_stderr
distributed.tests.test_client ‑ test_balance_tasks_by_stacks
distributed.tests.test_client ‑ test_client_repr_closed_sync
distributed.tests.test_client ‑ test_contiguous_load
distributed.tests.test_client ‑ test_dont_hold_on_to_large_messages
distributed.tests.test_client ‑ test_interleave_computations_map
distributed.tests.test_client ‑ test_multiple_clients
distributed.tests.test_config ‑ test_uvloop_event_loop
distributed.tests.test_counter ‑ test_digest[None-<lambda>]
distributed.tests.test_dask_collections
distributed.tests.test_dask_collections ‑ test_sparse_arrays
distributed.tests.test_gc ‑ test_gc_diagnosis_rss_win
distributed.tests.test_jupyter
distributed.tests.test_nanny ‑ test_nanny_closed_by_keyboard_interrupt[tcp]
distributed.tests.test_nanny ‑ test_nanny_closed_by_keyboard_interrupt[ucx]
distributed.tests.test_preload ‑ test_client_preload_click
distributed.tests.test_preload ‑ test_client_preload_text
distributed.tests.test_profile ‑ test_basic_low_level
distributed.tests.test_resources ‑ test_balance_resources
distributed.tests.test_resources ‑ test_collections_get[True]
distributed.tests.test_resources ‑ test_dont_optimize_out
distributed.tests.test_resources ‑ test_full_collections
distributed.tests.test_scheduler ‑ test_rebalance_raises_missing_data3[True]
distributed.tests.test_steal ‑ test_correct_bad_time_estimate
distributed.tests.test_steal ‑ test_steal_related_tasks
distributed.tests.test_stress ‑ test_no_delay_during_large_transfer
distributed.tests.test_stress ‑ test_stress_steal
distributed.tests.test_utils_test ‑ test_gen_cluster_cleans_up_client
distributed.tests.test_utils_test ‑ test_gen_test
distributed.tests.test_utils_test ‑ test_gen_test_legacy_explicit
distributed.tests.test_utils_test ‑ test_gen_test_legacy_implicit
distributed.tests.test_worker ‑ test_dont_overlap_communications_to_same_worker
distributed.tests.test_worker ‑ test_get_client_coroutine_sync
distributed.tests.test_worker ‑ test_protocol_from_scheduler_address[Nanny]
distributed.tests.test_worker ‑ test_protocol_from_scheduler_address[Worker]
distributed.tests.test_worker ‑ test_share_communication
distributed.tests.test_worker ‑ test_upload_file_pyc
distributed.tests.test_worker ‑ test_upload_large_file
distributed.tests.test_worker ‑ test_wait_for_outgoing
Check notice on line 0 in .github
github-actions / Unit Test Results
4130 tests found (test 1 to 855)
There are 4130 tests, see "Raw output" for the list of tests 1 to 855.
Raw output
distributed.cli.tests.test_dask_scheduler
distributed.cli.tests.test_dask_scheduler ‑ test_dashboard
distributed.cli.tests.test_dask_scheduler ‑ test_dashboard_allowlist
distributed.cli.tests.test_dask_scheduler ‑ test_dashboard_non_standard_ports
distributed.cli.tests.test_dask_scheduler ‑ test_dashboard_port_zero
distributed.cli.tests.test_dask_scheduler ‑ test_defaults
distributed.cli.tests.test_dask_scheduler ‑ test_hostport
distributed.cli.tests.test_dask_scheduler ‑ test_idle_timeout
distributed.cli.tests.test_dask_scheduler ‑ test_interface
distributed.cli.tests.test_dask_scheduler ‑ test_multiple_protocols
distributed.cli.tests.test_dask_scheduler ‑ test_multiple_workers
distributed.cli.tests.test_dask_scheduler ‑ test_multiple_workers_2
distributed.cli.tests.test_dask_scheduler ‑ test_no_dashboard
distributed.cli.tests.test_dask_scheduler ‑ test_pid_file
distributed.cli.tests.test_dask_scheduler ‑ test_preload_command
distributed.cli.tests.test_dask_scheduler ‑ test_preload_command_default
distributed.cli.tests.test_dask_scheduler ‑ test_preload_config
distributed.cli.tests.test_dask_scheduler ‑ test_preload_file
distributed.cli.tests.test_dask_scheduler ‑ test_preload_module
distributed.cli.tests.test_dask_scheduler ‑ test_preload_remote_module
distributed.cli.tests.test_dask_scheduler ‑ test_restores_signal_handler
distributed.cli.tests.test_dask_scheduler ‑ test_scheduler_port_zero
distributed.cli.tests.test_dask_scheduler ‑ test_signal_handling[15]
distributed.cli.tests.test_dask_scheduler ‑ test_signal_handling[2]
distributed.cli.tests.test_dask_scheduler ‑ test_signal_handling[Signals.SIGINT]
distributed.cli.tests.test_dask_scheduler ‑ test_signal_handling[Signals.SIGTERM]
distributed.cli.tests.test_dask_scheduler ‑ test_single_executable_deprecated
distributed.cli.tests.test_dask_scheduler ‑ test_version_option
distributed.cli.tests.test_dask_spec ‑ test_errors
distributed.cli.tests.test_dask_spec ‑ test_file
distributed.cli.tests.test_dask_spec ‑ test_signal_handling_scheduler[15]
distributed.cli.tests.test_dask_spec ‑ test_signal_handling_scheduler[2]
distributed.cli.tests.test_dask_spec ‑ test_signal_handling_scheduler[Signals.SIGINT]
distributed.cli.tests.test_dask_spec ‑ test_signal_handling_scheduler[Signals.SIGTERM]
distributed.cli.tests.test_dask_spec ‑ test_signal_handling_worker[15-Nanny]
distributed.cli.tests.test_dask_spec ‑ test_signal_handling_worker[15-Worker]
distributed.cli.tests.test_dask_spec ‑ test_signal_handling_worker[2-Nanny]
distributed.cli.tests.test_dask_spec ‑ test_signal_handling_worker[2-Worker]
distributed.cli.tests.test_dask_spec ‑ test_signal_handling_worker[Signals.SIGINT-Nanny]
distributed.cli.tests.test_dask_spec ‑ test_signal_handling_worker[Signals.SIGINT-Worker]
distributed.cli.tests.test_dask_spec ‑ test_signal_handling_worker[Signals.SIGTERM-Nanny]
distributed.cli.tests.test_dask_spec ‑ test_signal_handling_worker[Signals.SIGTERM-Worker]
distributed.cli.tests.test_dask_spec ‑ test_text
distributed.cli.tests.test_dask_ssh
distributed.cli.tests.test_dask_ssh ‑ test_version_option
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args0-expect0]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args1-expect1]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args10-expect10]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args11-expect11]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args12-expect12]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args13-expect13]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args14-expect14]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args15-expect15]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args16-expect16]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args17-expect17]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args2-expect2]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args3-expect3]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args4-expect4]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args5-expect5]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args6-expect6]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args7-expect7]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args8-expect8]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports[args9-expect9]
distributed.cli.tests.test_dask_worker ‑ test_apportion_ports_bad
distributed.cli.tests.test_dask_worker ‑ test_contact_listen_address[tcp://0.0.0.0:---nanny]
distributed.cli.tests.test_dask_worker ‑ test_contact_listen_address[tcp://0.0.0.0:---no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_contact_listen_address[tcp://127.0.0.2:---nanny]
distributed.cli.tests.test_dask_worker ‑ test_contact_listen_address[tcp://127.0.0.2:---no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_dashboard_non_standard_ports
distributed.cli.tests.test_dask_worker ‑ test_error_during_startup[--nanny]
distributed.cli.tests.test_dask_worker ‑ test_error_during_startup[--no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_integer_names
distributed.cli.tests.test_dask_worker ‑ test_listen_address_ipv6[tcp://:---nanny]
distributed.cli.tests.test_dask_worker ‑ test_listen_address_ipv6[tcp://:---no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_listen_address_ipv6[tcp://[::1]:---nanny]
distributed.cli.tests.test_dask_worker ‑ test_listen_address_ipv6[tcp://[::1]:---no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_local_directory[--nanny]
distributed.cli.tests.test_dask_worker ‑ test_local_directory[--no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_memory_limit
distributed.cli.tests.test_dask_worker ‑ test_nanny_worker_port_range
distributed.cli.tests.test_dask_worker ‑ test_nanny_worker_port_range_too_many_workers_raises
distributed.cli.tests.test_dask_worker ‑ test_nanny_worker_ports
distributed.cli.tests.test_dask_worker ‑ test_no_nanny
distributed.cli.tests.test_dask_worker ‑ test_nworkers_auto
distributed.cli.tests.test_dask_worker ‑ test_nworkers_expands_name
distributed.cli.tests.test_dask_worker ‑ test_nworkers_negative
distributed.cli.tests.test_dask_worker ‑ test_nworkers_requires_nanny
distributed.cli.tests.test_dask_worker ‑ test_preload_config
distributed.cli.tests.test_dask_worker ‑ test_resources
distributed.cli.tests.test_dask_worker ‑ test_respect_host_listen_address[0.0.0.0---nanny]
distributed.cli.tests.test_dask_worker ‑ test_respect_host_listen_address[0.0.0.0---no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_respect_host_listen_address[127.0.0.2---nanny]
distributed.cli.tests.test_dask_worker ‑ test_respect_host_listen_address[127.0.0.2---no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_scheduler_address_env
distributed.cli.tests.test_dask_worker ‑ test_scheduler_file[--nanny]
distributed.cli.tests.test_dask_worker ‑ test_scheduler_file[--no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_set_lifetime_restart_via_env_var
distributed.cli.tests.test_dask_worker ‑ test_set_lifetime_stagger_via_env_var
distributed.cli.tests.test_dask_worker ‑ test_signal_handling[15---nanny]
distributed.cli.tests.test_dask_worker ‑ test_signal_handling[15---no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_signal_handling[2---nanny]
distributed.cli.tests.test_dask_worker ‑ test_signal_handling[2---no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_signal_handling[Signals.SIGINT---nanny]
distributed.cli.tests.test_dask_worker ‑ test_signal_handling[Signals.SIGINT---no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_signal_handling[Signals.SIGTERM---nanny]
distributed.cli.tests.test_dask_worker ‑ test_signal_handling[Signals.SIGTERM---no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_single_executable_deprecated
distributed.cli.tests.test_dask_worker ‑ test_single_executable_works
distributed.cli.tests.test_dask_worker ‑ test_timeout[--nanny]
distributed.cli.tests.test_dask_worker ‑ test_timeout[--no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_version_option
distributed.cli.tests.test_dask_worker ‑ test_worker_class[--nanny]
distributed.cli.tests.test_dask_worker ‑ test_worker_class[--no-nanny]
distributed.cli.tests.test_dask_worker ‑ test_worker_timeout[False]
distributed.cli.tests.test_dask_worker ‑ test_worker_timeout[True]
distributed.cli.tests.test_tls_cli ‑ test_basic
distributed.cli.tests.test_tls_cli ‑ test_nanny
distributed.cli.tests.test_tls_cli ‑ test_separate_key_cert
distributed.cli.tests.test_tls_cli ‑ test_sni
distributed.cli.tests.test_tls_cli ‑ test_use_config_file
distributed.comm.tests.test_comms ‑ test_comm_closed_on_read_error[tornado]
distributed.comm.tests.test_comms ‑ test_comm_closed_on_write_error[tornado-BufferError]
distributed.comm.tests.test_comms ‑ test_comm_closed_on_write_error[tornado-CustomBase]
distributed.comm.tests.test_comms ‑ test_comm_failure_threading[tornado]
distributed.comm.tests.test_comms ‑ test_default_client_server_ipv4[tornado]
distributed.comm.tests.test_comms ‑ test_default_client_server_ipv6[tornado]
distributed.comm.tests.test_comms ‑ test_do_not_share_buffers[tornado-OpaqueList]
distributed.comm.tests.test_comms ‑ test_do_not_share_buffers[tornado-list]
distributed.comm.tests.test_comms ‑ test_get_address_host[tornado]
distributed.comm.tests.test_comms ‑ test_get_local_address_for[tornado]
distributed.comm.tests.test_comms ‑ test_get_stream_address_raises_if_closed
distributed.comm.tests.test_comms ‑ test_handshake_slow_comm[tornado]
distributed.comm.tests.test_comms ‑ test_inproc_adresses
distributed.comm.tests.test_comms ‑ test_inproc_client_server
distributed.comm.tests.test_comms ‑ test_inproc_comm_closed_explicit
distributed.comm.tests.test_comms ‑ test_inproc_comm_closed_explicit_2
distributed.comm.tests.test_comms ‑ test_inproc_comm_closed_implicit
distributed.comm.tests.test_comms ‑ test_inproc_connect_timeout
distributed.comm.tests.test_comms ‑ test_inproc_continues_listening_after_handshake_error
distributed.comm.tests.test_comms ‑ test_inproc_deserialize
distributed.comm.tests.test_comms ‑ test_inproc_deserialize_roundtrip
distributed.comm.tests.test_comms ‑ test_inproc_handshakes_concurrently
distributed.comm.tests.test_comms ‑ test_inproc_many_listeners
distributed.comm.tests.test_comms ‑ test_inproc_repr
distributed.comm.tests.test_comms ‑ test_inproc_specific_different_threads
distributed.comm.tests.test_comms ‑ test_inproc_specific_same_thread
distributed.comm.tests.test_comms ‑ test_parse_host_port[tornado]
distributed.comm.tests.test_comms ‑ test_register_backend_entrypoint
distributed.comm.tests.test_comms ‑ test_resolve_address[tornado]
distributed.comm.tests.test_comms ‑ test_retry_connect[tornado]
distributed.comm.tests.test_comms ‑ test_share_buffer_with_header[tornado-1-0-False]
distributed.comm.tests.test_comms ‑ test_share_buffer_with_header[tornado-1-1800-False]
distributed.comm.tests.test_comms ‑ test_share_buffer_with_header[tornado-1-2100-True]
distributed.comm.tests.test_comms ‑ test_share_buffer_with_header[tornado-200000-10500-True]
distributed.comm.tests.test_comms ‑ test_share_buffer_with_header[tornado-200000-9500-False]
distributed.comm.tests.test_comms ‑ test_share_buffer_with_header[tornado-350000-0-False]
distributed.comm.tests.test_comms ‑ test_tcp_adresses[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_client_server_ipv4[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_client_server_ipv6[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_comm_closed_explicit[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_comm_closed_implicit[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_connect_timeout[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_deserialize[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_deserialize_eoferror[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_deserialize_roundtrip[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_listener_does_not_call_handler_on_handshake_error[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_many_listeners[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_repr[tornado]
distributed.comm.tests.test_comms ‑ test_tcp_specific[tornado]
distributed.comm.tests.test_comms ‑ test_tls_adresses[tornado]
distributed.comm.tests.test_comms ‑ test_tls_client_server_ipv4[tornado]
distributed.comm.tests.test_comms ‑ test_tls_client_server_ipv6[tornado]
distributed.comm.tests.test_comms ‑ test_tls_comm_closed_explicit[tornado]
distributed.comm.tests.test_comms ‑ test_tls_comm_closed_implicit[tornado]
distributed.comm.tests.test_comms ‑ test_tls_reject_certificate[tornado]
distributed.comm.tests.test_comms ‑ test_tls_repr[tornado]
distributed.comm.tests.test_comms ‑ test_tls_specific[tornado-None]
distributed.comm.tests.test_comms ‑ test_tls_specific[tornado-localhost]
distributed.comm.tests.test_comms ‑ test_ucx_client_server
distributed.comm.tests.test_comms ‑ test_unparse_host_port[tornado]
distributed.comm.tests.test_tcp ‑ test_getaddrinfo_invalid_af
distributed.comm.tests.test_ucx
distributed.comm.tests.test_ucx_config
distributed.comm.tests.test_ws ‑ test_collections
distributed.comm.tests.test_ws ‑ test_connection_made_with_extra_conn_args[ws://-False]
distributed.comm.tests.test_ws ‑ test_connection_made_with_extra_conn_args[ws://-True]
distributed.comm.tests.test_ws ‑ test_connection_made_with_extra_conn_args[wss://-False]
distributed.comm.tests.test_ws ‑ test_connection_made_with_extra_conn_args[wss://-True]
distributed.comm.tests.test_ws ‑ test_connection_made_with_sni
distributed.comm.tests.test_ws ‑ test_expect_scheduler_ssl_when_sharing_server
distributed.comm.tests.test_ws ‑ test_expect_ssl_context
distributed.comm.tests.test_ws ‑ test_http_and_comm_server[False-ws://-None-8786]
distributed.comm.tests.test_ws ‑ test_http_and_comm_server[False-ws://-None-8787]
distributed.comm.tests.test_ws ‑ test_http_and_comm_server[False-wss://-True-8786]
distributed.comm.tests.test_ws ‑ test_http_and_comm_server[False-wss://-True-8787]
distributed.comm.tests.test_ws ‑ test_http_and_comm_server[True-ws://-None-8786]
distributed.comm.tests.test_ws ‑ test_http_and_comm_server[True-ws://-None-8787]
distributed.comm.tests.test_ws ‑ test_http_and_comm_server[True-wss://-True-8786]
distributed.comm.tests.test_ws ‑ test_http_and_comm_server[True-wss://-True-8787]
distributed.comm.tests.test_ws ‑ test_large_transfer
distributed.comm.tests.test_ws ‑ test_listen_connect
distributed.comm.tests.test_ws ‑ test_listen_connect_wss
distributed.comm.tests.test_ws ‑ test_quiet_close
distributed.comm.tests.test_ws ‑ test_registered
distributed.comm.tests.test_ws ‑ test_roundtrip
distributed.comm.tests.test_ws ‑ test_ws_roundtrip
distributed.comm.tests.test_ws ‑ test_wss_roundtrip
distributed.dashboard.tests.test_bokeh ‑ test_old_import
distributed.dashboard.tests.test_components
distributed.dashboard.tests.test_components ‑ test_basic[Processing]
distributed.dashboard.tests.test_components ‑ test_profile_plot
distributed.dashboard.tests.test_components ‑ test_profile_time_plot
distributed.dashboard.tests.test_components ‑ test_profile_time_plot_disabled
distributed.dashboard.tests.test_scheduler_bokeh
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_ClusterMemory
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_CurrentLoad
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_FinePerformanceMetrics
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_FinePerformanceMetrics_no_spans
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_FinePerformanceMetrics_shuffle
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_ProcessingHistogram
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_SystemTimeseries
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_TaskGraph
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_TaskGraph_clear
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_TaskGraph_complex
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_TaskGraph_limit
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_TaskGraph_order
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_TaskGroupGraph
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_TaskGroupGraph_arrows
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_TaskProgress
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_TaskProgress_empty
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_WorkerNetworkBandwidth
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_WorkerNetworkBandwidth_metrics
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_WorkerTable
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_WorkerTable_add_and_remove_metrics
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_WorkerTable_custom_metric_overlap_with_core_metric
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_WorkerTable_custom_metrics
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_WorkerTable_different_metrics
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_WorkerTable_metrics_with_different_metric_2
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_WorkerTable_with_memory_limit_as_0
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_WorkersMemory
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_WorkersMemoryHistogram
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_aggregate_action
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_basic
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_bokeh_relative
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_compute_per_key
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_counters
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_events
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_hardware
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_hardware_endpoint
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_https_support
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_lots_of_tasks
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_memory_by_key
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_memory_color
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_prefix_bokeh
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_profile_server
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_profile_server_disabled
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_proxy_to_workers
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_root_redirect
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_shuffling
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_simple
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_stealing_events
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_task_stream
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_task_stream_clear_interval
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_task_stream_n_rectangles
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_task_stream_second_plugin
distributed.dashboard.tests.test_scheduler_bokeh ‑ test_worker_info
distributed.dashboard.tests.test_worker_bokeh
distributed.dashboard.tests.test_worker_bokeh ‑ test_CommunicatingStream
distributed.dashboard.tests.test_worker_bokeh ‑ test_basic[CommunicatingTimeSeries]
distributed.dashboard.tests.test_worker_bokeh ‑ test_basic[ExecutingTimeSeries]
distributed.dashboard.tests.test_worker_bokeh ‑ test_basic[StateTable]
distributed.dashboard.tests.test_worker_bokeh ‑ test_basic[SystemMonitor]
distributed.dashboard.tests.test_worker_bokeh ‑ test_counters
distributed.dashboard.tests.test_worker_bokeh ‑ test_prometheus
distributed.dashboard.tests.test_worker_bokeh ‑ test_routes
distributed.dashboard.tests.test_worker_bokeh ‑ test_services_kwargs
distributed.dashboard.tests.test_worker_bokeh ‑ test_simple
distributed.deploy.tests.test_adaptive ‑ test_adapt_callback_logs_error_in_scale_down
distributed.deploy.tests.test_adaptive ‑ test_adapt_cores_memory
distributed.deploy.tests.test_adaptive ‑ test_adapt_down
distributed.deploy.tests.test_adaptive ‑ test_adapt_gets_stopped_on_cluster_close
distributed.deploy.tests.test_adaptive ‑ test_adapt_logs_error_in_safe_target
distributed.deploy.tests.test_adaptive ‑ test_adapt_quickly
distributed.deploy.tests.test_adaptive ‑ test_adapt_stop_del
distributed.deploy.tests.test_adaptive ‑ test_adaptive_config
distributed.deploy.tests.test_adaptive ‑ test_adaptive_local_cluster
distributed.deploy.tests.test_adaptive ‑ test_adaptive_local_cluster_multi_workers
distributed.deploy.tests.test_adaptive ‑ test_adaptive_logs_stopping_once[False]
distributed.deploy.tests.test_adaptive ‑ test_adaptive_logs_stopping_once[True]
distributed.deploy.tests.test_adaptive ‑ test_adaptive_no_memory_limit
distributed.deploy.tests.test_adaptive ‑ test_adaptive_stopped
distributed.deploy.tests.test_adaptive ‑ test_adaptive_stops_on_cluster_status_change
distributed.deploy.tests.test_adaptive ‑ test_avoid_churn
distributed.deploy.tests.test_adaptive ‑ test_basic_no_loop
distributed.deploy.tests.test_adaptive ‑ test_interval
distributed.deploy.tests.test_adaptive ‑ test_min_max
distributed.deploy.tests.test_adaptive ‑ test_no_more_workers_than_tasks
distributed.deploy.tests.test_adaptive ‑ test_respect_average_nthreads
distributed.deploy.tests.test_adaptive ‑ test_scale_needs_to_be_awaited
distributed.deploy.tests.test_adaptive ‑ test_scale_up_large_tasks[1]
distributed.deploy.tests.test_adaptive ‑ test_scale_up_large_tasks[inf]
distributed.deploy.tests.test_adaptive ‑ test_target_duration[1]
distributed.deploy.tests.test_adaptive ‑ test_target_duration[5]
distributed.deploy.tests.test_adaptive ‑ test_update_adaptive
distributed.deploy.tests.test_adaptive ‑ test_worker_keys
distributed.deploy.tests.test_adaptive_core ‑ test_safe_target
distributed.deploy.tests.test_adaptive_core ‑ test_scale_down
distributed.deploy.tests.test_adaptive_core ‑ test_scale_up
distributed.deploy.tests.test_cluster ‑ test_cluster_wait_for_worker
distributed.deploy.tests.test_cluster ‑ test_deprecated_loop_properties
distributed.deploy.tests.test_cluster ‑ test_eq
distributed.deploy.tests.test_cluster ‑ test_exponential_backoff
distributed.deploy.tests.test_cluster ‑ test_repr
distributed.deploy.tests.test_cluster ‑ test_sync_context_manager_used_with_async_cluster
distributed.deploy.tests.test_deploy_utils ‑ test_default_process_thread_breakdown
distributed.deploy.tests.test_local ‑ test_Client_kwargs
distributed.deploy.tests.test_local ‑ test_Client_solo
distributed.deploy.tests.test_local ‑ test_Client_twice
distributed.deploy.tests.test_local ‑ test_Client_unused_kwargs_with_address
distributed.deploy.tests.test_local ‑ test_Client_unused_kwargs_with_cluster
distributed.deploy.tests.test_local ‑ test_Client_with_local
distributed.deploy.tests.test_local ‑ test_adapt
distributed.deploy.tests.test_local ‑ test_adapt_then_manual
distributed.deploy.tests.test_local ‑ test_async_with
distributed.deploy.tests.test_local ‑ test_asynchronous_property
distributed.deploy.tests.test_local ‑ test_blocks_until_full
distributed.deploy.tests.test_local ‑ test_bokeh[False]
distributed.deploy.tests.test_local ‑ test_bokeh[True]
distributed.deploy.tests.test_local ‑ test_bokeh_kwargs
distributed.deploy.tests.test_local ‑ test_capture_security[False]
distributed.deploy.tests.test_local ‑ test_capture_security[True]
distributed.deploy.tests.test_local ‑ test_cleanup
distributed.deploy.tests.test_local ‑ test_client_cluster_synchronous
distributed.deploy.tests.test_local ‑ test_client_constructor_with_temporary_security
distributed.deploy.tests.test_local ‑ test_close_twice
distributed.deploy.tests.test_local ‑ test_cluster_host_used_throughout_cluster[False-127.0.0.1]
distributed.deploy.tests.test_local ‑ test_cluster_host_used_throughout_cluster[False-None]
distributed.deploy.tests.test_local ‑ test_cluster_host_used_throughout_cluster[True-127.0.0.1]
distributed.deploy.tests.test_local ‑ test_cluster_host_used_throughout_cluster[True-None]
distributed.deploy.tests.test_local ‑ test_cluster_info_sync
distributed.deploy.tests.test_local ‑ test_cluster_info_sync_is_robust_to_network_blips
distributed.deploy.tests.test_local ‑ test_cluster_names
distributed.deploy.tests.test_local ‑ test_connect_to_closed_cluster
distributed.deploy.tests.test_local ‑ test_context_manager
distributed.deploy.tests.test_local ‑ test_cores
distributed.deploy.tests.test_local ‑ test_death_timeout_raises
distributed.deploy.tests.test_local ‑ test_defaults
distributed.deploy.tests.test_local ‑ test_defaults_2
distributed.deploy.tests.test_local ‑ test_defaults_3
distributed.deploy.tests.test_local ‑ test_defaults_4
distributed.deploy.tests.test_local ‑ test_defaults_5
distributed.deploy.tests.test_local ‑ test_defaults_6
distributed.deploy.tests.test_local ‑ test_dont_select_closed_worker
distributed.deploy.tests.test_local ‑ test_duplicate_clients
distributed.deploy.tests.test_local ‑ test_io_loop_periodic_callbacks
distributed.deploy.tests.test_local ‑ test_ipywidgets
distributed.deploy.tests.test_local ‑ test_ipywidgets_loop
distributed.deploy.tests.test_local ‑ test_local_cluster_redundant_kwarg[False]
distributed.deploy.tests.test_local ‑ test_local_cluster_redundant_kwarg[True]
distributed.deploy.tests.test_local ‑ test_local_cluster_supports_blocked_handlers
distributed.deploy.tests.test_local ‑ test_local_tls[False]
distributed.deploy.tests.test_local ‑ test_local_tls[True]
distributed.deploy.tests.test_local ‑ test_local_tls_restart
distributed.deploy.tests.test_local ‑ test_localcluster_get_client
distributed.deploy.tests.test_local ‑ test_localcluster_start_exception
distributed.deploy.tests.test_local ‑ test_logging
distributed.deploy.tests.test_local ‑ test_memory[3]
distributed.deploy.tests.test_local ‑ test_memory[None]
distributed.deploy.tests.test_local ‑ test_memory_limit_none
distributed.deploy.tests.test_local ‑ test_memory_nanny[3]
distributed.deploy.tests.test_local ‑ test_memory_nanny[None]
distributed.deploy.tests.test_local ‑ test_move_unserializable_data
distributed.deploy.tests.test_local ‑ test_no_dangling_asyncio_tasks
distributed.deploy.tests.test_local ‑ test_no_ipywidgets
distributed.deploy.tests.test_local ‑ test_no_workers
distributed.deploy.tests.test_local ‑ test_no_workers_sync
distributed.deploy.tests.test_local ‑ test_only_local_access
distributed.deploy.tests.test_local ‑ test_procs
distributed.deploy.tests.test_local ‑ test_protocol_inproc
distributed.deploy.tests.test_local ‑ test_protocol_ip
distributed.deploy.tests.test_local ‑ test_protocol_tcp
distributed.deploy.tests.test_local ‑ test_remote_access
distributed.deploy.tests.test_local ‑ test_repeated
distributed.deploy.tests.test_local ‑ test_repr[2 GiB]
distributed.deploy.tests.test_local ‑ test_repr[None]
distributed.deploy.tests.test_local ‑ test_scale
distributed.deploy.tests.test_local ‑ test_scale_memory_cores
distributed.deploy.tests.test_local ‑ test_scale_retires_workers
distributed.deploy.tests.test_local ‑ test_scale_up_and_down
distributed.deploy.tests.test_local ‑ test_silent_startup
distributed.deploy.tests.test_local ‑ test_simple
distributed.deploy.tests.test_local ‑ test_starts_up_sync
distributed.deploy.tests.test_local ‑ test_submit
distributed.deploy.tests.test_local ‑ test_threads_per_worker_set_to_0
distributed.deploy.tests.test_local ‑ test_transports_inproc
distributed.deploy.tests.test_local ‑ test_transports_tcp
distributed.deploy.tests.test_local ‑ test_transports_tcp_port
distributed.deploy.tests.test_local ‑ test_worker_class_nanny
distributed.deploy.tests.test_local ‑ test_worker_class_nanny_async
distributed.deploy.tests.test_local ‑ test_worker_class_worker
distributed.deploy.tests.test_local ‑ test_worker_params
distributed.deploy.tests.test_old_ssh
distributed.deploy.tests.test_old_ssh ‑ test_extra_kwargs_is_an_error
distributed.deploy.tests.test_old_ssh ‑ test_nprocs_attribute_is_deprecated
distributed.deploy.tests.test_old_ssh ‑ test_old_ssh_n_workers_with_nprocs_is_an_error
distributed.deploy.tests.test_old_ssh ‑ test_old_ssh_nprocs_renamed_to_n_workers
distributed.deploy.tests.test_slow_adaptive ‑ test_adaptive
distributed.deploy.tests.test_slow_adaptive ‑ test_scale_up_down
distributed.deploy.tests.test_slow_adaptive ‑ test_startup
distributed.deploy.tests.test_spec_cluster ‑ test_MultiWorker
distributed.deploy.tests.test_spec_cluster ‑ test_ProcessInterfaceValid
distributed.deploy.tests.test_spec_cluster ‑ test_adaptive_killed_worker
distributed.deploy.tests.test_spec_cluster ‑ test_bad_close
distributed.deploy.tests.test_spec_cluster ‑ test_broken_worker
distributed.deploy.tests.test_spec_cluster ‑ test_dashboard_link
distributed.deploy.tests.test_spec_cluster ‑ test_get_logs
distributed.deploy.tests.test_spec_cluster ‑ test_logs_deprecated
distributed.deploy.tests.test_spec_cluster ‑ test_loop_started_in_constructor
distributed.deploy.tests.test_spec_cluster ‑ test_nanny_port
distributed.deploy.tests.test_spec_cluster ‑ test_new_worker_spec
distributed.deploy.tests.test_spec_cluster ‑ test_repr
distributed.deploy.tests.test_spec_cluster ‑ test_restart
distributed.deploy.tests.test_spec_cluster ‑ test_run_spec
distributed.deploy.tests.test_spec_cluster ‑ test_run_spec_cluster_worker_names
distributed.deploy.tests.test_spec_cluster ‑ test_scale
distributed.deploy.tests.test_spec_cluster ‑ test_scale_cores_memory
distributed.deploy.tests.test_spec_cluster ‑ test_scheduler_info
distributed.deploy.tests.test_spec_cluster ‑ test_spec_close_clusters
distributed.deploy.tests.test_spec_cluster ‑ test_spec_process
distributed.deploy.tests.test_spec_cluster ‑ test_spec_sync
distributed.deploy.tests.test_spec_cluster ‑ test_specification
distributed.deploy.tests.test_spec_cluster ‑ test_unexpected_closed_worker
distributed.deploy.tests.test_spec_cluster ‑ test_widget
distributed.deploy.tests.test_ssh
distributed.deploy.tests.test_ssh ‑ test_basic
distributed.deploy.tests.test_ssh ‑ test_config_inherited_by_subprocess
distributed.deploy.tests.test_ssh ‑ test_keywords
distributed.deploy.tests.test_ssh ‑ test_list_of_connect_options
distributed.deploy.tests.test_ssh ‑ test_list_of_connect_options_raises
distributed.deploy.tests.test_ssh ‑ test_list_of_remote_python_raises
distributed.deploy.tests.test_ssh ‑ test_n_workers
distributed.deploy.tests.test_ssh ‑ test_nprocs_attribute_is_deprecated
distributed.deploy.tests.test_ssh ‑ test_remote_python
distributed.deploy.tests.test_ssh ‑ test_remote_python_as_dict
distributed.deploy.tests.test_ssh ‑ test_ssh_cluster_raises_if_asyncssh_not_installed
distributed.deploy.tests.test_ssh ‑ test_ssh_hosts_None
distributed.deploy.tests.test_ssh ‑ test_ssh_hosts_empty_list
distributed.deploy.tests.test_ssh ‑ test_ssh_n_workers_with_nprocs_is_an_error
distributed.deploy.tests.test_ssh ‑ test_ssh_nprocs_renamed_to_n_workers
distributed.deploy.tests.test_subprocess ‑ test_basic
distributed.deploy.tests.test_subprocess ‑ test_n_workers
distributed.deploy.tests.test_subprocess ‑ test_raise_if_scheduler_fails_to_start
distributed.deploy.tests.test_subprocess ‑ test_raise_on_windows
distributed.deploy.tests.test_subprocess ‑ test_scale_up_and_down
distributed.deploy.tests.test_subprocess ‑ test_subprocess_cluster_does_not_depend_on_logging
distributed.diagnostics.tests.test_cluster_dump_plugin ‑ test_cluster_dump_plugin
distributed.diagnostics.tests.test_cudf_diagnostics
distributed.diagnostics.tests.test_eventstream ‑ test_eventstream
distributed.diagnostics.tests.test_eventstream ‑ test_eventstream_remote
distributed.diagnostics.tests.test_graph_layout ‑ test_basic
distributed.diagnostics.tests.test_graph_layout ‑ test_construct_after_call
distributed.diagnostics.tests.test_graph_layout ‑ test_forget
distributed.diagnostics.tests.test_graph_layout ‑ test_layout_scatter
distributed.diagnostics.tests.test_graph_layout ‑ test_release_tasks
distributed.diagnostics.tests.test_graph_layout ‑ test_states
distributed.diagnostics.tests.test_graph_layout ‑ test_unique_positions
distributed.diagnostics.tests.test_install_plugin ‑ test_conda_install
distributed.diagnostics.tests.test_install_plugin ‑ test_conda_install_fails_on_returncode
distributed.diagnostics.tests.test_install_plugin ‑ test_conda_install_fails_when_conda_not_found
distributed.diagnostics.tests.test_install_plugin ‑ test_conda_install_fails_when_conda_raises
distributed.diagnostics.tests.test_install_plugin ‑ test_package_install_failing_does_not_restart_on_nanny
distributed.diagnostics.tests.test_install_plugin ‑ test_package_install_on_nanny
distributed.diagnostics.tests.test_install_plugin ‑ test_package_install_on_worker
distributed.diagnostics.tests.test_install_plugin ‑ test_package_install_restarts_on_nanny
distributed.diagnostics.tests.test_install_plugin ‑ test_pip_install
distributed.diagnostics.tests.test_install_plugin ‑ test_pip_install_fails
distributed.diagnostics.tests.test_memory_sampler ‑ test_at_least_one_sample
distributed.diagnostics.tests.test_memory_sampler ‑ test_multi_sample
distributed.diagnostics.tests.test_memory_sampler ‑ test_pandas[False]
distributed.diagnostics.tests.test_memory_sampler ‑ test_pandas[True]
distributed.diagnostics.tests.test_memory_sampler ‑ test_pandas_multiseries[False]
distributed.diagnostics.tests.test_memory_sampler ‑ test_pandas_multiseries[True]
distributed.diagnostics.tests.test_memory_sampler ‑ test_sync
distributed.diagnostics.tests.test_memray
distributed.diagnostics.tests.test_memray ‑ test_basic_integration_scheduler
distributed.diagnostics.tests.test_memray ‑ test_basic_integration_scheduler_report_args[False]
distributed.diagnostics.tests.test_memray ‑ test_basic_integration_scheduler_report_args[report_args0]
distributed.diagnostics.tests.test_memray ‑ test_basic_integration_workers[1]
distributed.diagnostics.tests.test_memray ‑ test_basic_integration_workers[False]
distributed.diagnostics.tests.test_memray ‑ test_basic_integration_workers[True]
distributed.diagnostics.tests.test_memray ‑ test_basic_integration_workers_report_args[False]
distributed.diagnostics.tests.test_memray ‑ test_basic_integration_workers_report_args[report_args0]
distributed.diagnostics.tests.test_nanny_plugin ‑ test_duck_typed_register_nanny_plugin_is_deprecated
distributed.diagnostics.tests.test_nanny_plugin ‑ test_nanny_plugin_with_broken_teardown_logs_on_close
distributed.diagnostics.tests.test_nanny_plugin ‑ test_plugin_with_broken_setup_on_new_nanny_logs
distributed.diagnostics.tests.test_nanny_plugin ‑ test_register_idempotent_plugin
distributed.diagnostics.tests.test_nanny_plugin ‑ test_register_non_idempotent_plugin
distributed.diagnostics.tests.test_nanny_plugin ‑ test_register_plugin_with_broken_setup_to_existing_nannies_raises
distributed.diagnostics.tests.test_nanny_plugin ‑ test_register_plugin_with_idempotent_keyword_is_deprecated
distributed.diagnostics.tests.test_nanny_plugin ‑ test_register_worker_plugin_is_deprecated
distributed.diagnostics.tests.test_nanny_plugin ‑ test_register_worker_plugin_typing_over_nanny_keyword
distributed.diagnostics.tests.test_nanny_plugin ‑ test_unregister_nanny_plugin_with_broken_teardown_raises
distributed.diagnostics.tests.test_nvml
distributed.diagnostics.tests.test_nvml ‑ test_1_visible_devices
distributed.diagnostics.tests.test_nvml ‑ test_2_visible_devices[0,1]
distributed.diagnostics.tests.test_nvml ‑ test_2_visible_devices[1,0]
distributed.diagnostics.tests.test_nvml ‑ test_enable_disable_nvml
distributed.diagnostics.tests.test_nvml ‑ test_gpu_metrics
distributed.diagnostics.tests.test_nvml ‑ test_gpu_monitoring_range_query
distributed.diagnostics.tests.test_nvml ‑ test_gpu_monitoring_recent
distributed.diagnostics.tests.test_nvml ‑ test_has_cuda_context
distributed.diagnostics.tests.test_nvml ‑ test_one_time
distributed.diagnostics.tests.test_nvml ‑ test_visible_devices_bad_uuid
distributed.diagnostics.tests.test_nvml ‑ test_visible_devices_uuid
distributed.diagnostics.tests.test_nvml ‑ test_visible_devices_uuid_2[0]
distributed.diagnostics.tests.test_nvml ‑ test_visible_devices_uuid_2[1]
distributed.diagnostics.tests.test_nvml ‑ test_wsl_monitoring_enabled
distributed.diagnostics.tests.test_progress ‑ test_AllProgress
distributed.diagnostics.tests.test_progress ‑ test_AllProgress_lost_key
distributed.diagnostics.tests.test_progress ‑ test_group_timing
distributed.diagnostics.tests.test_progress ‑ test_many_Progress
distributed.diagnostics.tests.test_progress ‑ test_multiprogress
distributed.diagnostics.tests.test_progress ‑ test_multiprogress_cancel
distributed.diagnostics.tests.test_progress ‑ test_multiprogress_warns
distributed.diagnostics.tests.test_progress ‑ test_multiprogress_with_prefix
distributed.diagnostics.tests.test_progress ‑ test_multiprogress_with_spans
distributed.diagnostics.tests.test_progress ‑ test_robust_to_bad_plugin
distributed.diagnostics.tests.test_progress_stream
distributed.diagnostics.tests.test_progress_stream ‑ test_progress_quads
distributed.diagnostics.tests.test_progress_stream ‑ test_progress_quads_many_functions
distributed.diagnostics.tests.test_progress_stream ‑ test_progress_quads_too_many
distributed.diagnostics.tests.test_progress_stream ‑ test_progress_stream
distributed.diagnostics.tests.test_progress_widgets
distributed.diagnostics.tests.test_progress_widgets ‑ test_fast
distributed.diagnostics.tests.test_progress_widgets ‑ test_multi_progressbar_widget
distributed.diagnostics.tests.test_progress_widgets ‑ test_multibar_complete
distributed.diagnostics.tests.test_progress_widgets ‑ test_multibar_func_warns
distributed.diagnostics.tests.test_progress_widgets ‑ test_multibar_with_spans
distributed.diagnostics.tests.test_progress_widgets ‑ test_progressbar_cancel
distributed.diagnostics.tests.test_progress_widgets ‑ test_progressbar_done
distributed.diagnostics.tests.test_progress_widgets ‑ test_progressbar_widget
distributed.diagnostics.tests.test_progress_widgets ‑ test_serializers
distributed.diagnostics.tests.test_progress_widgets ‑ test_tls
distributed.diagnostics.tests.test_progress_widgets ‑ test_values
distributed.diagnostics.tests.test_progressbar ‑ test_TextProgressBar_empty
distributed.diagnostics.tests.test_progressbar ‑ test_TextProgressBar_error
distributed.diagnostics.tests.test_progressbar ‑ test_deprecated_loop_properties
distributed.diagnostics.tests.test_progressbar ‑ test_progress_function
distributed.diagnostics.tests.test_progressbar ‑ test_progress_function_raises
distributed.diagnostics.tests.test_progressbar ‑ test_progress_function_w_kwargs
distributed.diagnostics.tests.test_progressbar ‑ test_progress_function_warns
distributed.diagnostics.tests.test_progressbar ‑ test_text_progressbar
distributed.diagnostics.tests.test_rmm_diagnostics
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_add_remove_worker
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_async_add_remove_worker
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_async_and_sync_add_remove_worker
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_closing_errors_ok
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_failing_async_add_remove_worker
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_failing_sync_add_remove_worker
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_lifecycle
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_register_idempotent_plugin
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_register_idempotent_plugins_directly
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_register_non_idempotent_plugin
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_register_non_idempotent_plugins_directly
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_register_plugin
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_register_plugin_on_scheduler
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_register_plugin_with_idempotent_keyword_is_deprecated
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_register_scheduler_plugin_deprecated
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_remove_worker_renamed_kwargs_allowed
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_remove_worker_without_kwargs_deprecated
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_scheduler_plugin_in_register_worker_plugin_overrides
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_scheduler_plugin_in_register_worker_plugin_overrides_nanny
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_simple
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_unregister_scheduler_plugin
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_unregister_scheduler_plugin_from_client
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_update_graph_hook_complex
distributed.diagnostics.tests.test_scheduler_plugin ‑ test_update_graph_hook_simple
distributed.diagnostics.tests.test_task_stream ‑ test_TaskStreamPlugin
distributed.diagnostics.tests.test_task_stream ‑ test_client
distributed.diagnostics.tests.test_task_stream ‑ test_client_sync
distributed.diagnostics.tests.test_task_stream ‑ test_collect
distributed.diagnostics.tests.test_task_stream ‑ test_get_task_stream_plot
distributed.diagnostics.tests.test_task_stream ‑ test_get_task_stream_save
distributed.diagnostics.tests.test_task_stream ‑ test_maxlen
distributed.diagnostics.tests.test_task_stream ‑ test_no_startstops
distributed.diagnostics.tests.test_worker_plugin ‑ test_WorkerPlugin_overwrite
distributed.diagnostics.tests.test_worker_plugin ‑ test_assert_no_warning_no_overload
distributed.diagnostics.tests.test_worker_plugin ‑ test_create_on_construction
distributed.diagnostics.tests.test_worker_plugin ‑ test_create_with_client
distributed.diagnostics.tests.test_worker_plugin ‑ test_default_name
distributed.diagnostics.tests.test_worker_plugin ‑ test_dependent_tasks
distributed.diagnostics.tests.test_worker_plugin ‑ test_duck_typed_register_worker_plugin_is_deprecated
distributed.diagnostics.tests.test_worker_plugin ‑ test_empty_plugin
distributed.diagnostics.tests.test_worker_plugin ‑ test_failing_task_transitions_called
distributed.diagnostics.tests.test_worker_plugin ‑ test_normal_task_transitions_called
distributed.diagnostics.tests.test_worker_plugin ‑ test_plugin_with_broken_setup_on_new_worker_logs
distributed.diagnostics.tests.test_worker_plugin ‑ test_plugin_with_broken_teardown_logs_on_close
distributed.diagnostics.tests.test_worker_plugin ‑ test_register_idempotent_plugin
distributed.diagnostics.tests.test_worker_plugin ‑ test_register_non_idempotent_plugin
distributed.diagnostics.tests.test_worker_plugin ‑ test_register_plugin_with_broken_setup_to_existing_workers_raises
distributed.diagnostics.tests.test_worker_plugin ‑ test_register_plugin_with_idempotent_keyword_is_deprecated
distributed.diagnostics.tests.test_worker_plugin ‑ test_register_worker_plugin_is_deprecated
distributed.diagnostics.tests.test_worker_plugin ‑ test_register_worker_plugin_typing_over_nanny_keyword
distributed.diagnostics.tests.test_worker_plugin ‑ test_remove_with_client
distributed.diagnostics.tests.test_worker_plugin ‑ test_remove_with_client_raises
distributed.diagnostics.tests.test_worker_plugin ‑ test_superseding_task_transitions_called
distributed.diagnostics.tests.test_worker_plugin ‑ test_unregister_worker_plugin_with_broken_teardown_raises
distributed.http.scheduler.tests.test_missing_bokeh ‑ test_bokeh_version_too_high
distributed.http.scheduler.tests.test_missing_bokeh ‑ test_bokeh_version_too_low
distributed.http.scheduler.tests.test_missing_bokeh ‑ test_missing_bokeh
distributed.http.scheduler.tests.test_scheduler_http ‑ test_adaptive_target
distributed.http.scheduler.tests.test_scheduler_http ‑ test_allow_websocket_origin
distributed.http.scheduler.tests.test_scheduler_http ‑ test_api
distributed.http.scheduler.tests.test_scheduler_http ‑ test_api_disabled_by_default
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page["]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[']
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[(]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[123]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[1_0]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[1_1]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[[]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[a b]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[a+b]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[key14]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[key15]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[key16]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[key17]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[key18]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[key5]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[key6]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[key7]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[key8]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_call_stack_page[x]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_check_idle
distributed.http.scheduler.tests.test_scheduler_http ‑ test_connect
distributed.http.scheduler.tests.test_scheduler_http ‑ test_eventstream
distributed.http.scheduler.tests.test_scheduler_http ‑ test_get_workers
distributed.http.scheduler.tests.test_scheduler_http ‑ test_health
distributed.http.scheduler.tests.test_scheduler_http ‑ test_metrics_when_prometheus_client_not_installed
distributed.http.scheduler.tests.test_scheduler_http ‑ test_prefix
distributed.http.scheduler.tests.test_scheduler_http ‑ test_prometheus
distributed.http.scheduler.tests.test_scheduler_http ‑ test_prometheus_collect_client_connections_totals
distributed.http.scheduler.tests.test_scheduler_http ‑ test_prometheus_collect_task_groups
distributed.http.scheduler.tests.test_scheduler_http ‑ test_prometheus_collect_task_prefix_counts
distributed.http.scheduler.tests.test_scheduler_http ‑ test_prometheus_collect_task_states
distributed.http.scheduler.tests.test_scheduler_http ‑ test_prometheus_collect_worker_states
distributed.http.scheduler.tests.test_scheduler_http ‑ test_prometheus_collect_worker_totals
distributed.http.scheduler.tests.test_scheduler_http ‑ test_retire_workers
distributed.http.scheduler.tests.test_scheduler_http ‑ test_sitemap
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page["]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[']
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[(]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[123]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[1_0]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[1_1]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[[]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[a b]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[a+b]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[key14]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[key15]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[key16]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[key17]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[key18]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[key5]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[key6]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[key7]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[key8]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_task_page[x]
distributed.http.scheduler.tests.test_scheduler_http ‑ test_worker_404
distributed.http.scheduler.tests.test_semaphore_http ‑ test_prometheus
distributed.http.scheduler.tests.test_semaphore_http ‑ test_prometheus_without_semaphore_extension
distributed.http.scheduler.tests.test_stealing_http ‑ test_prometheus
distributed.http.scheduler.tests.test_stealing_http ‑ test_prometheus_collect_cost_total_by_cost_multipliers
distributed.http.scheduler.tests.test_stealing_http ‑ test_prometheus_collect_count_total_by_cost_multipliers
distributed.http.scheduler.tests.test_stealing_http ‑ test_prometheus_without_stealing_extension
distributed.http.tests.test_core ‑ test_prometheus_api_doc
distributed.http.tests.test_core ‑ test_scheduler
distributed.http.tests.test_routing ‑ test_basic
distributed.http.worker.tests.test_worker_http ‑ test_health
distributed.http.worker.tests.test_worker_http ‑ test_metrics_when_prometheus_client_not_installed
distributed.http.worker.tests.test_worker_http ‑ test_prometheus
distributed.http.worker.tests.test_worker_http ‑ test_prometheus_collect_memory_metrics
distributed.http.worker.tests.test_worker_http ‑ test_prometheus_collect_memory_metrics_bogus_sizeof
distributed.http.worker.tests.test_worker_http ‑ test_prometheus_collect_memory_metrics_spill_disabled
distributed.http.worker.tests.test_worker_http ‑ test_prometheus_collect_task_states
distributed.http.worker.tests.test_worker_http ‑ test_sitemap
distributed.protocol.tests.test_arrow
distributed.protocol.tests.test_arrow ‑ test_dumps_compression
distributed.protocol.tests.test_arrow ‑ test_roundtrip[RecordBatch]
distributed.protocol.tests.test_arrow ‑ test_roundtrip[Table]
distributed.protocol.tests.test_arrow ‑ test_scatter[RecordBatch]
distributed.protocol.tests.test_arrow ‑ test_scatter[Table]
distributed.protocol.tests.test_collection
distributed.protocol.tests.test_collection ‑ test_large_collections_serialize_simply
distributed.protocol.tests.test_collection ‑ test_nested_types
distributed.protocol.tests.test_collection ‑ test_serialize_collection[None-pickle-dict]
distributed.protocol.tests.test_collection ‑ test_serialize_collection[None-pickle-list]
distributed.protocol.tests.test_collection ‑ test_serialize_collection[None-pickle-tuple]
distributed.protocol.tests.test_collection ‑ test_serialize_collection[y0-dask-dict]
distributed.protocol.tests.test_collection ‑ test_serialize_collection[y0-dask-list]
distributed.protocol.tests.test_collection ‑ test_serialize_collection[y0-dask-tuple]
distributed.protocol.tests.test_collection ‑ test_serialize_collection[y1-pickle-dict]
distributed.protocol.tests.test_collection ‑ test_serialize_collection[y1-pickle-list]
distributed.protocol.tests.test_collection ‑ test_serialize_collection[y1-pickle-tuple]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_cupy[50-cuda-dict]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_cupy[50-cuda-tuple]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_cupy[None-pickle-dict]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_cupy[None-pickle-tuple]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_pandas_pandas[None-pickle-dict]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_pandas_pandas[None-pickle-tuple]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_pandas_pandas[df20-cuda-dict]
distributed.protocol.tests.test_collection_cuda ‑ test_serialize_pandas_pandas[df20-cuda-tuple]
distributed.protocol.tests.test_compression ‑ test_auto_compression
distributed.protocol.tests.test_compression ‑ test_compress_remote_comms
distributed.protocol.tests.test_compression ‑ test_compression_1
distributed.protocol.tests.test_compression ‑ test_compression_2
distributed.protocol.tests.test_compression ‑ test_compression_3
distributed.protocol.tests.test_compression ‑ test_compression_thread_safety[None-bytes]
distributed.protocol.tests.test_compression ‑ test_compression_thread_safety[None-memoryview]
distributed.protocol.tests.test_compression ‑ test_compression_thread_safety[lz4-bytes]
distributed.protocol.tests.test_compression ‑ test_compression_thread_safety[lz4-memoryview]
distributed.protocol.tests.test_compression ‑ test_compression_thread_safety[snappy-bytes]
distributed.protocol.tests.test_compression ‑ test_compression_thread_safety[snappy-memoryview]
distributed.protocol.tests.test_compression ‑ test_compression_thread_safety[zlib-bytes]
distributed.protocol.tests.test_compression ‑ test_compression_thread_safety[zlib-memoryview]
distributed.protocol.tests.test_compression ‑ test_compression_thread_safety[zstd-bytes]
distributed.protocol.tests.test_compression ‑ test_compression_thread_safety[zstd-memoryview]
distributed.protocol.tests.test_compression ‑ test_compression_without_deserialization
distributed.protocol.tests.test_compression ‑ test_disable_compression_on_localhost[127.0.0.1]
distributed.protocol.tests.test_compression ‑ test_disable_compression_on_localhost[None]
distributed.protocol.tests.test_compression ‑ test_disable_compression_on_localhost[localhost]
distributed.protocol.tests.test_compression ‑ test_get_compression_settings
distributed.protocol.tests.test_compression ‑ test_large_messages[None]
distributed.protocol.tests.test_compression ‑ test_large_messages[lz4]
distributed.protocol.tests.test_compression ‑ test_large_messages[snappy]
distributed.protocol.tests.test_compression ‑ test_large_messages[zlib]
distributed.protocol.tests.test_compression ‑ test_large_messages[zstd]
distributed.protocol.tests.test_compression ‑ test_loads_without_deserialization_avoids_compression
distributed.protocol.tests.test_compression ‑ test_lz4_decompression_avoids_deep_copy
distributed.protocol.tests.test_compression ‑ test_maybe_compress[None-bytes]
distributed.protocol.tests.test_compression ‑ test_maybe_compress[None-memoryview]
distributed.protocol.tests.test_compression ‑ test_maybe_compress[lz4-bytes]
distributed.protocol.tests.test_compression ‑ test_maybe_compress[lz4-memoryview]
distributed.protocol.tests.test_compression ‑ test_maybe_compress[snappy-bytes]
distributed.protocol.tests.test_compression ‑ test_maybe_compress[snappy-memoryview]
distributed.protocol.tests.test_compression ‑ test_maybe_compress[zlib-bytes]
distributed.protocol.tests.test_compression ‑ test_maybe_compress[zlib-memoryview]
distributed.protocol.tests.test_compression ‑ test_maybe_compress[zstd-bytes]
distributed.protocol.tests.test_compression ‑ test_maybe_compress[zstd-memoryview]
distributed.protocol.tests.test_compression ‑ test_maybe_compress_auto
distributed.protocol.tests.test_compression ‑ test_maybe_compress_memoryviews[None]
distributed.protocol.tests.test_compression ‑ test_maybe_compress_memoryviews[lz4]
distributed.protocol.tests.test_compression ‑ test_maybe_compress_memoryviews[snappy]
distributed.protocol.tests.test_compression ‑ test_maybe_compress_memoryviews[zlib]
distributed.protocol.tests.test_compression ‑ test_maybe_compress_memoryviews[zstd]
distributed.protocol.tests.test_compression ‑ test_maybe_compress_sample[None]
distributed.protocol.tests.test_compression ‑ test_maybe_compress_sample[lz4]
distributed.protocol.tests.test_compression ‑ test_maybe_compress_sample[snappy]
distributed.protocol.tests.test_compression ‑ test_maybe_compress_sample[zlib]
distributed.protocol.tests.test_compression ‑ test_maybe_compress_sample[zstd]
distributed.protocol.tests.test_cupy
distributed.protocol.tests.test_h5py
distributed.protocol.tests.test_h5py ‑ test_h5py_serialize
distributed.protocol.tests.test_h5py ‑ test_h5py_serialize_2
distributed.protocol.tests.test_h5py ‑ test_raise_error_on_serialize_write_permissions
distributed.protocol.tests.test_h5py ‑ test_serialize_deserialize_dataset
distributed.protocol.tests.test_h5py ‑ test_serialize_deserialize_file
distributed.protocol.tests.test_h5py ‑ test_serialize_deserialize_group
distributed.protocol.tests.test_highlevelgraph
distributed.protocol.tests.test_highlevelgraph ‑ test_array_annotations
distributed.protocol.tests.test_highlevelgraph ‑ test_blockwise
distributed.protocol.tests.test_highlevelgraph ‑ test_combo_of_layer_types
distributed.protocol.tests.test_highlevelgraph ‑ test_dataframe_annotations
distributed.protocol.tests.test_highlevelgraph ‑ test_shuffle
distributed.protocol.tests.test_keras
distributed.protocol.tests.test_netcdf4
distributed.protocol.tests.test_netcdf4 ‑ test_netcdf4_serialize
distributed.protocol.tests.test_netcdf4 ‑ test_serialize_deserialize_dataset
distributed.protocol.tests.test_netcdf4 ‑ test_serialize_deserialize_group
distributed.protocol.tests.test_netcdf4 ‑ test_serialize_deserialize_variable
distributed.protocol.tests.test_numba
distributed.protocol.tests.test_numpy
distributed.protocol.tests.test_numpy ‑ test_compress_memoryview
distributed.protocol.tests.test_numpy ‑ test_compress_numpy
distributed.protocol.tests.test_numpy ‑ test_dumps_large
distributed.protocol.tests.test_numpy ‑ test_dumps_numpy_writable[False]
distributed.protocol.tests.test_numpy ‑ test_dumps_numpy_writable[True]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x0]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x10]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x11]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x12]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x13]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x14]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x15]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x16]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x17]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x18]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x19]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x1]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x20]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x21]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x22]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x23]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x24]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x25]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x26]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x27]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x28]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x29]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x2]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x30]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x31]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x32]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x33]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x34]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x35]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x36]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x3]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x4]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x5]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x6]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x7]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x8]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy[x9]
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy_custom_dtype
distributed.protocol.tests.test_numpy ‑ test_dumps_serialize_numpy_large
distributed.protocol.tests.test_numpy ‑ test_itemsize[M8[s]-8]
distributed.protocol.tests.test_numpy ‑ test_itemsize[M8[us]-8]
distributed.protocol.tests.test_numpy ‑ test_itemsize[S3-3]
distributed.protocol.tests.test_numpy ‑ test_itemsize[U3-12]
distributed.protocol.tests.test_numpy ‑ test_itemsize[b-1]
distributed.protocol.tests.test_numpy ‑ test_itemsize[c16-16]
distributed.protocol.tests.test_numpy ‑ test_itemsize[dt10-8]
distributed.protocol.tests.test_numpy ‑ test_itemsize[dt11-88]
distributed.protocol.tests.test_numpy ‑ test_itemsize[dt12-8]
distributed.protocol.tests.test_numpy ‑ test_itemsize[dt8-12]
distributed.protocol.tests.test_numpy ‑ test_itemsize[dt9-4]
distributed.protocol.tests.test_numpy ‑ test_itemsize[f8-8]
distributed.protocol.tests.test_numpy ‑ test_itemsize[i4-4]
distributed.protocol.tests.test_numpy ‑ test_memmap
distributed.protocol.tests.test_numpy ‑ test_non_zero_strided_array
distributed.protocol.tests.test_numpy ‑ test_serialize
distributed.protocol.tests.test_numpy ‑ test_serialize_numpy_ma_masked
distributed.protocol.tests.test_numpy ‑ test_serialize_numpy_ma_masked_array[x0]
distributed.protocol.tests.test_numpy ‑ test_serialize_numpy_ma_masked_array[x1]
distributed.protocol.tests.test_numpy ‑ test_serialize_numpy_ma_masked_array[x2]
distributed.protocol.tests.test_numpy ‑ test_serialize_numpy_ma_masked_array[x3]
distributed.protocol.tests.test_numpy ‑ test_serialize_numpy_ma_masked_array[x4]
distributed.protocol.tests.test_numpy ‑ test_serialize_numpy_ma_masked_array[x5]
distributed.protocol.tests.test_numpy ‑ test_serialize_writeable_array_readonly_base_object
distributed.protocol.tests.test_numpy ‑ test_zero_strided_numpy_array[False-x0]
distributed.protocol.tests.test_numpy ‑ test_zero_strided_numpy_array[False-x1]
distributed.protocol.tests.test_numpy ‑ test_zero_strided_numpy_array[False-x2]
distributed.protocol.tests.test_numpy ‑ test_zero_strided_numpy_array[False-x3]
distributed.protocol.tests.test_numpy ‑ test_zero_strided_numpy_array[True-x0]
Check notice on line 0 in .github
github-actions / Unit Test Results
4130 tests found (test 856 to 1654)
There are 4130 tests, see "Raw output" for the list of tests 856 to 1654.
Raw output
distributed.protocol.tests.test_numpy ‑ test_zero_strided_numpy_array[True-x1]
distributed.protocol.tests.test_numpy ‑ test_zero_strided_numpy_array[True-x2]
distributed.protocol.tests.test_numpy ‑ test_zero_strided_numpy_array[True-x3]
distributed.protocol.tests.test_pandas
distributed.protocol.tests.test_pandas ‑ test_dumps_pandas_writable
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df0]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df10]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df11]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df12]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df13]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df14]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df15]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df16]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df17]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df18]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df19]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df1]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df20]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df21]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df22]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df23]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df24]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df25]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df2]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df3]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df4]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df5]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df6]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df7]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df8]
distributed.protocol.tests.test_pandas ‑ test_dumps_serialize_pandas[df9]
distributed.protocol.tests.test_pickle ‑ test_allow_pickle_if_registered_in_dask_serialize
distributed.protocol.tests.test_pickle ‑ test_nopickle_nested
distributed.protocol.tests.test_pickle ‑ test_pickle_by_value_when_registered
distributed.protocol.tests.test_pickle ‑ test_pickle_data[4]
distributed.protocol.tests.test_pickle ‑ test_pickle_data[5]
distributed.protocol.tests.test_pickle ‑ test_pickle_empty[4]
distributed.protocol.tests.test_pickle ‑ test_pickle_empty[5]
distributed.protocol.tests.test_pickle ‑ test_pickle_functions[4]
distributed.protocol.tests.test_pickle ‑ test_pickle_functions[5]
distributed.protocol.tests.test_pickle ‑ test_pickle_functions_in_main
distributed.protocol.tests.test_pickle ‑ test_pickle_numpy[4]
distributed.protocol.tests.test_pickle ‑ test_pickle_numpy[5]
distributed.protocol.tests.test_pickle ‑ test_pickle_out_of_band[4]
distributed.protocol.tests.test_pickle ‑ test_pickle_out_of_band[5]
distributed.protocol.tests.test_pickle ‑ test_pickle_zero_copy_read_only_flag[dask]
distributed.protocol.tests.test_pickle ‑ test_pickle_zero_copy_read_only_flag[pickle]
distributed.protocol.tests.test_protocol ‑ test_deeply_nested_structures
distributed.protocol.tests.test_protocol ‑ test_dumps_loads_Serialize
distributed.protocol.tests.test_protocol ‑ test_dumps_loads_Serialized
distributed.protocol.tests.test_protocol ‑ test_fallback_to_pickle
distributed.protocol.tests.test_protocol ‑ test_large_bytes[bytes]
distributed.protocol.tests.test_protocol ‑ test_large_bytes[memoryview]
distributed.protocol.tests.test_protocol ‑ test_large_messages_map
distributed.protocol.tests.test_protocol ‑ test_large_payload[bytes]
distributed.protocol.tests.test_protocol ‑ test_large_payload[ext]
distributed.protocol.tests.test_protocol ‑ test_large_payload[str]
distributed.protocol.tests.test_protocol ‑ test_loads_deserialize_False
distributed.protocol.tests.test_protocol ‑ test_preserve_header[serializers0]
distributed.protocol.tests.test_protocol ‑ test_preserve_header[serializers1]
distributed.protocol.tests.test_protocol ‑ test_protocol
distributed.protocol.tests.test_protocol ‑ test_sizeof_serialize[Serialize-Serialized0]
distributed.protocol.tests.test_protocol ‑ test_sizeof_serialize[Serialize-Serialized1]
distributed.protocol.tests.test_protocol ‑ test_sizeof_serialize[ToPickle-Pickled]
distributed.protocol.tests.test_protocol ‑ test_small
distributed.protocol.tests.test_protocol ‑ test_small_and_big
distributed.protocol.tests.test_protocol_utils ‑ test_pack_frames
distributed.protocol.tests.test_protocol_utils ‑ test_unpack_frames_partial
distributed.protocol.tests.test_protocol_utils ‑ test_unpack_frames_remainder[456]
distributed.protocol.tests.test_protocol_utils ‑ test_unpack_frames_remainder[]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_catch_different_buffer
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_catch_different_formats
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_catch_different_non_contiguous
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_catch_gaps[slices0]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_catch_gaps[slices1]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_catch_gaps[slices2]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_catch_multidimensional
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_catch_non_memoryview
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_empty
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_one
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_parts[slices0]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_parts[slices1]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_parts[slices2]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_parts[slices3]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_parts[slices4]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_parts[slices5]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_parts[slices6]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_parts[slices7]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_parts[slices8]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_parts[slices9]
distributed.protocol.tests.test_protocol_utils.TestMergeMemroyviews ‑ test_readonly_buffer
distributed.protocol.tests.test_rmm
distributed.protocol.tests.test_scipy
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype0-bsr_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype0-coo_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype0-csc_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype0-csr_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype0-dia_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype0-dok_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype0-lil_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype1-bsr_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype1-coo_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype1-csc_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype1-csr_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype1-dia_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype1-dok_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype1-lil_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype2-bsr_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype2-coo_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype2-csc_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype2-csr_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype2-dia_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype2-dok_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype2-lil_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype3-bsr_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype3-coo_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype3-csc_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype3-csr_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype3-dia_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype3-dok_matrix]
distributed.protocol.tests.test_scipy ‑ test_serialize_scipy_sparse[dtype3-lil_matrix]
distributed.protocol.tests.test_serialize ‑ test_Serialize
distributed.protocol.tests.test_serialize ‑ test_Serialized
distributed.protocol.tests.test_serialize ‑ test__is_msgpack_serializable
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data0-False]
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data1-False]
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data10-True]
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data11-True]
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data12-True]
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data2-False]
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data3-False]
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data4-False]
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data5-True]
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data6-True]
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data7-True]
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data8-True]
distributed.protocol.tests.test_serialize ‑ test_check_dask_serializable[data9-True]
distributed.protocol.tests.test_serialize ‑ test_context_specific_serialization
distributed.protocol.tests.test_serialize ‑ test_context_specific_serialization_class
distributed.protocol.tests.test_serialize ‑ test_deeply_nested_structures[100]
distributed.protocol.tests.test_serialize ‑ test_deeply_nested_structures[150]
distributed.protocol.tests.test_serialize ‑ test_deeply_nested_structures[200]
distributed.protocol.tests.test_serialize ‑ test_deeply_nested_structures[250]
distributed.protocol.tests.test_serialize ‑ test_deeply_nested_structures[300]
distributed.protocol.tests.test_serialize ‑ test_deeply_nested_structures[350]
distributed.protocol.tests.test_serialize ‑ test_deeply_nested_structures[400]
distributed.protocol.tests.test_serialize ‑ test_deeply_nested_structures[450]
distributed.protocol.tests.test_serialize ‑ test_deeply_nested_structures[500]
distributed.protocol.tests.test_serialize ‑ test_deeply_nested_structures[550]
distributed.protocol.tests.test_serialize ‑ test_deser_memoryview[data_in0]
distributed.protocol.tests.test_serialize ‑ test_deser_memoryview[data_in1]
distributed.protocol.tests.test_serialize ‑ test_deserialize_bytes_zero_copy_read_only
distributed.protocol.tests.test_serialize ‑ test_deserialize_bytes_zero_copy_writeable
distributed.protocol.tests.test_serialize ‑ test_different_compression_families
distributed.protocol.tests.test_serialize ‑ test_dumps_serialize
distributed.protocol.tests.test_serialize ‑ test_empty
distributed.protocol.tests.test_serialize ‑ test_empty_loads
distributed.protocol.tests.test_serialize ‑ test_empty_loads_deep
distributed.protocol.tests.test_serialize ‑ test_err_on_bad_deserializer
distributed.protocol.tests.test_serialize ‑ test_errors
distributed.protocol.tests.test_serialize ‑ test_frame_split
distributed.protocol.tests.test_serialize ‑ test_inter_worker_comms
distributed.protocol.tests.test_serialize ‑ test_large_pickled_object
distributed.protocol.tests.test_serialize ‑ test_malicious_exception
distributed.protocol.tests.test_serialize ‑ test_nested_deserialize
distributed.protocol.tests.test_serialize ‑ test_object_in_graph
distributed.protocol.tests.test_serialize ‑ test_scatter
distributed.protocol.tests.test_serialize ‑ test_ser_empty_1d_memoryview
distributed.protocol.tests.test_serialize ‑ test_ser_empty_nd_memoryview
distributed.protocol.tests.test_serialize ‑ test_ser_memoryview_object
distributed.protocol.tests.test_serialize ‑ test_serialize_arrays[B]
distributed.protocol.tests.test_serialize ‑ test_serialize_arrays[H]
distributed.protocol.tests.test_serialize ‑ test_serialize_arrays[I]
distributed.protocol.tests.test_serialize ‑ test_serialize_arrays[L]
distributed.protocol.tests.test_serialize ‑ test_serialize_arrays[Q]
distributed.protocol.tests.test_serialize ‑ test_serialize_arrays[b]
distributed.protocol.tests.test_serialize ‑ test_serialize_arrays[d]
distributed.protocol.tests.test_serialize ‑ test_serialize_arrays[f]
distributed.protocol.tests.test_serialize ‑ test_serialize_arrays[h]
distributed.protocol.tests.test_serialize ‑ test_serialize_arrays[i]
distributed.protocol.tests.test_serialize ‑ test_serialize_arrays[l]
distributed.protocol.tests.test_serialize ‑ test_serialize_arrays[q]
distributed.protocol.tests.test_serialize ‑ test_serialize_bytes[kwargs0]
distributed.protocol.tests.test_serialize ‑ test_serialize_bytes[kwargs1]
distributed.protocol.tests.test_serialize ‑ test_serialize_bytes_numpy[kwargs0]
distributed.protocol.tests.test_serialize ‑ test_serialize_bytes_numpy[kwargs1]
distributed.protocol.tests.test_serialize ‑ test_serialize_bytestrings
distributed.protocol.tests.test_serialize ‑ test_serialize_empty_array
distributed.protocol.tests.test_serialize ‑ test_serialize_iterate_collection
distributed.protocol.tests.test_serialize ‑ test_serialize_list_compress
distributed.protocol.tests.test_serialize ‑ test_serialize_lists[serializers0]
distributed.protocol.tests.test_serialize ‑ test_serialize_lists[serializers1]
distributed.protocol.tests.test_serialize ‑ test_serialize_lists[serializers2]
distributed.protocol.tests.test_serialize ‑ test_serialize_lists[serializers3]
distributed.protocol.tests.test_serialize ‑ test_serialize_raises
distributed.protocol.tests.test_sparse
distributed.protocol.tests.test_to_pickle ‑ test_ToPickle
distributed.protocol.tests.test_torch
distributed.protocol.tests.test_torch ‑ test_deserialize_grad
distributed.protocol.tests.test_torch ‑ test_grad[False]
distributed.protocol.tests.test_torch ‑ test_grad[True]
distributed.protocol.tests.test_torch ‑ test_resnet
distributed.protocol.tests.test_torch ‑ test_tensor
distributed.protocol.tests.test_utils ‑ test_host_array
distributed.protocol.tests.test_utils ‑ test_host_array_from_buffers
distributed.protocol.tests.test_utils ‑ test_host_array_from_buffers_numpy
distributed.protocol.tests.test_utils_test ‑ test_get_host_array
distributed.shuffle.tests.test_buffer ‑ test_memory_limit[big_payloads0]
distributed.shuffle.tests.test_buffer ‑ test_memory_limit[big_payloads1]
distributed.shuffle.tests.test_buffer ‑ test_memory_limit[big_payloads2]
distributed.shuffle.tests.test_buffer ‑ test_memory_limit[big_payloads3]
distributed.shuffle.tests.test_buffer ‑ test_memory_limit_blocked_exception
distributed.shuffle.tests.test_comm_buffer ‑ test_basic
distributed.shuffle.tests.test_comm_buffer ‑ test_concurrent_puts
distributed.shuffle.tests.test_comm_buffer ‑ test_concurrent_puts_error
distributed.shuffle.tests.test_comm_buffer ‑ test_exceptions
distributed.shuffle.tests.test_comm_buffer ‑ test_slow_send
distributed.shuffle.tests.test_core ‑ test_mean_shard_size
distributed.shuffle.tests.test_core ‑ test_mean_shard_size_numpy
distributed.shuffle.tests.test_disk_buffer ‑ test_basic
distributed.shuffle.tests.test_disk_buffer ‑ test_exceptions
distributed.shuffle.tests.test_disk_buffer ‑ test_high_pressure_flush_with_exception
distributed.shuffle.tests.test_disk_buffer ‑ test_many[1000]
distributed.shuffle.tests.test_disk_buffer ‑ test_many[100]
distributed.shuffle.tests.test_disk_buffer ‑ test_many[2]
distributed.shuffle.tests.test_disk_buffer ‑ test_read_before_flush
distributed.shuffle.tests.test_graph
distributed.shuffle.tests.test_graph ‑ test_basic
distributed.shuffle.tests.test_graph ‑ test_basic_state
distributed.shuffle.tests.test_graph ‑ test_does_not_raise_on_stringified_numeric_column_name
distributed.shuffle.tests.test_graph ‑ test_multiple_linear
distributed.shuffle.tests.test_graph ‑ test_raise_on_complex_numbers[cdouble]
distributed.shuffle.tests.test_graph ‑ test_raise_on_complex_numbers[clongdouble]
distributed.shuffle.tests.test_graph ‑ test_raise_on_complex_numbers[csingle]
distributed.shuffle.tests.test_graph ‑ test_raise_on_custom_objects
distributed.shuffle.tests.test_graph ‑ test_raise_on_non_string_column_name
distributed.shuffle.tests.test_graph ‑ test_raise_on_sparse_data
distributed.shuffle.tests.test_limiter ‑ test_limiter_basic
distributed.shuffle.tests.test_limiter ‑ test_limiter_concurrent_decrease_releases_waiter
distributed.shuffle.tests.test_limiter ‑ test_limiter_no_limit_no_statistics
distributed.shuffle.tests.test_limiter ‑ test_limiter_statistics
distributed.shuffle.tests.test_limiter ‑ test_unlimited_limiter
distributed.shuffle.tests.test_memory_buffer ‑ test_basic
distributed.shuffle.tests.test_memory_buffer ‑ test_many[1000]
distributed.shuffle.tests.test_memory_buffer ‑ test_many[100]
distributed.shuffle.tests.test_memory_buffer ‑ test_many[2]
distributed.shuffle.tests.test_memory_buffer ‑ test_read_before_flush
distributed.shuffle.tests.test_merge
distributed.shuffle.tests.test_merge ‑ test_basic_merge[inner]
distributed.shuffle.tests.test_merge ‑ test_basic_merge[left]
distributed.shuffle.tests.test_merge ‑ test_basic_merge[outer]
distributed.shuffle.tests.test_merge ‑ test_basic_merge[right]
distributed.shuffle.tests.test_merge ‑ test_index_merge_p2p[inner]
distributed.shuffle.tests.test_merge ‑ test_index_merge_p2p[left]
distributed.shuffle.tests.test_merge ‑ test_index_merge_p2p[outer]
distributed.shuffle.tests.test_merge ‑ test_index_merge_p2p[right]
distributed.shuffle.tests.test_merge ‑ test_merge[False-inner]
distributed.shuffle.tests.test_merge ‑ test_merge[False-left]
distributed.shuffle.tests.test_merge ‑ test_merge[False-outer]
distributed.shuffle.tests.test_merge ‑ test_merge[False-right]
distributed.shuffle.tests.test_merge ‑ test_merge[True-inner]
distributed.shuffle.tests.test_merge ‑ test_merge[True-left]
distributed.shuffle.tests.test_merge ‑ test_merge[True-outer]
distributed.shuffle.tests.test_merge ‑ test_merge[True-right]
distributed.shuffle.tests.test_merge ‑ test_merge_by_multiple_columns[inner]
distributed.shuffle.tests.test_merge ‑ test_merge_by_multiple_columns[left]
distributed.shuffle.tests.test_merge ‑ test_merge_by_multiple_columns[outer]
distributed.shuffle.tests.test_merge ‑ test_merge_by_multiple_columns[right]
distributed.shuffle.tests.test_merge ‑ test_merge_does_not_deadlock_if_worker_joins
distributed.shuffle.tests.test_merge ‑ test_merge_indicator
distributed.shuffle.tests.test_merge ‑ test_merge_p2p_shuffle_reused_dataframe_with_different_parameters
distributed.shuffle.tests.test_merge ‑ test_merge_p2p_shuffle_reused_dataframe_with_same_parameters
distributed.shuffle.tests.test_merge ‑ test_merge_with_npartitions[10]
distributed.shuffle.tests.test_merge ‑ test_merge_with_npartitions[20]
distributed.shuffle.tests.test_merge ‑ test_merge_with_npartitions[4]
distributed.shuffle.tests.test_merge ‑ test_merge_with_npartitions[5]
distributed.shuffle.tests.test_merge ‑ test_minimal_version
distributed.shuffle.tests.test_merge_column_and_index
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[idx-inner]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[idx-left]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[idx-outer]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[idx-right]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[on1-inner]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[on1-left]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[on1-outer]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[on1-right]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[on2-inner]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[on2-left]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[on2-outer]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[on2-right]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[on3-inner]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[on3-left]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[on3-outer]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_known_to_unknown[on3-right]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[idx-inner]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[idx-left]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[idx-outer]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[idx-right]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[on1-inner]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[on1-left]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[on1-outer]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[on1-right]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[on2-inner]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[on2-left]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[on2-outer]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[on2-right]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[on3-inner]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[on3-left]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[on3-outer]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_known[on3-right]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[idx-inner]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[idx-left]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[idx-outer]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[idx-right]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[on1-inner]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[on1-left]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[on1-outer]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[on1-right]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[on2-inner]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[on2-left]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[on2-outer]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[on2-right]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[on3-inner]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[on3-left]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[on3-outer]
distributed.shuffle.tests.test_merge_column_and_index ‑ test_merge_unknown_to_unknown[on3-right]
distributed.shuffle.tests.test_metrics ‑ test_dataframe
distributed.shuffle.tests.test_metrics ‑ test_rechunk
distributed.shuffle.tests.test_pickle ‑ test_pickle
distributed.shuffle.tests.test_pickle ‑ test_pickle_numpy
distributed.shuffle.tests.test_pickle ‑ test_pickle_zero_copy
distributed.shuffle.tests.test_read_write_lock ‑ test_basic
distributed.shuffle.tests.test_read_write_lock ‑ test_concurrent_reads_are_allowed
distributed.shuffle.tests.test_read_write_lock ‑ test_lock_timeout
distributed.shuffle.tests.test_read_write_lock ‑ test_read_blocks_write
distributed.shuffle.tests.test_read_write_lock ‑ test_write_blocks_read
distributed.shuffle.tests.test_read_write_lock ‑ test_write_blocks_write
distributed.shuffle.tests.test_read_write_lock ‑ test_write_preferred_over_read
distributed.shuffle.tests.test_rechunk
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_1d[old0-new0-expected0]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_1d[old1-new1-expected1]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_1d[old2-new2-expected2]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_1d[old3-new3-expected3]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_1d[old4-new4-expected4]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_2d[old0-new0-expected0]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_2d[old1-new1-expected1]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_2d[old2-new2-expected2]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_2d[old3-new3-expected3]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_2d[old4-new4-expected4]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_2d[old5-new5-expected5]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_3d[old0-new0-expected0]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_3d[old1-new1-expected1]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_3d[old2-new2-expected2]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_3d[old3-new3-expected3]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_concatenation[1 B-expected0]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_concatenation[100 B-expected3]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_concatenation[20 B-expected1]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_concatenation[40 B-expected2]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_does_not_concatenate_object_type
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_splitting[old0-new0-expected0]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_splitting[old1-new1-expected1]
distributed.shuffle.tests.test_rechunk ‑ test_calculate_prechunking_splitting[old2-new2-expected2]
distributed.shuffle.tests.test_rechunk ‑ test_cull_p2p_rechunk_independent_partitions
distributed.shuffle.tests.test_rechunk ‑ test_cull_p2p_rechunk_overlapping_partitions
distributed.shuffle.tests.test_rechunk ‑ test_cull_p2p_rechunking_single_chunk
distributed.shuffle.tests.test_rechunk ‑ test_dtype
distributed.shuffle.tests.test_rechunk ‑ test_homogeneously_schedule_unpack
distributed.shuffle.tests.test_rechunk ‑ test_lowlevel_rechunk[False-False-10]
distributed.shuffle.tests.test_rechunk ‑ test_lowlevel_rechunk[False-False-1]
distributed.shuffle.tests.test_rechunk ‑ test_lowlevel_rechunk[False-True-10]
distributed.shuffle.tests.test_rechunk ‑ test_lowlevel_rechunk[False-True-1]
distributed.shuffle.tests.test_rechunk ‑ test_lowlevel_rechunk[True-False-10]
distributed.shuffle.tests.test_rechunk ‑ test_lowlevel_rechunk[True-False-1]
distributed.shuffle.tests.test_rechunk ‑ test_lowlevel_rechunk[True-True-10]
distributed.shuffle.tests.test_rechunk ‑ test_lowlevel_rechunk[True-True-1]
distributed.shuffle.tests.test_rechunk ‑ test_partial_rechunk_homogeneous_distribution
distributed.shuffle.tests.test_rechunk ‑ test_partial_rechunk_taskgroups
distributed.shuffle.tests.test_rechunk ‑ test_pick_worker_homogeneous_distribution[1]
distributed.shuffle.tests.test_rechunk ‑ test_pick_worker_homogeneous_distribution[2]
distributed.shuffle.tests.test_rechunk ‑ test_pick_worker_homogeneous_distribution[41]
distributed.shuffle.tests.test_rechunk ‑ test_pick_worker_homogeneous_distribution[50]
distributed.shuffle.tests.test_rechunk ‑ test_preserve_writeable_flag
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_0d
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_2d[False]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_2d[True]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_4d[False]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_4d[True]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_auto_1d[100-1-10-expected0]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_auto_1d[100-100-10-expected2]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_auto_1d[100-50-10-expected1]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_auto_1d[20-7-10-expected3]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_auto_1d[20-chunks4-5-expected4]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_auto_2d
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_auto_3d
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_auto_image_stack[1000]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_auto_image_stack[100]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_avoid_needless_chunking
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_bad_keys
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_blockshape
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_configuration[None-None]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_configuration[None-p2p]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_configuration[None-tasks]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_configuration[p2p-None]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_configuration[p2p-p2p]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_configuration[p2p-tasks]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_configuration[tasks-None]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_configuration[tasks-p2p]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_configuration[tasks-tasks]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_datetime[p2p]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_datetime[tasks]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_down
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_empty
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_empty_array[arr0]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_empty_array[arr1]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_empty_array[arr2]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_empty_chunks
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_expand
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_expand2
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_heuristic[new0-p2p]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_heuristic[new1-tasks]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_heuristic[new2-tasks]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_heuristic[new3-p2p]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_in_memory_shards_dont_share_buffer
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_method
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_minus_one
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_same
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_same_fully_unknown
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_same_fully_unknown_floats
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_same_partially_unknown
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_unknown_from_array
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_unknown_from_pandas
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_unknown_raises
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_warning
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_dict
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_empty_input
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension[x0-chunks0]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension[x1-chunks1]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension[x10-chunks10]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension[x11-chunks11]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension[x2-chunks2]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension[x3-chunks3]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension[x4-chunks4]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension[x5-chunks5]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension[x6-chunks6]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension[x7-chunks7]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension[x8-chunks8]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension[x9-chunks9]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension_explicit[new_chunks0]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension_explicit[new_chunks1]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_fully_unknown_dimension_explicit[new_chunks2]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_integer
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_null_dimensions
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_partially_unknown_dimension[x0-chunks0]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_partially_unknown_dimension[x1-chunks1]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_partially_unknown_dimension[x10-chunks10]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_partially_unknown_dimension[x11-chunks11]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_partially_unknown_dimension[x2-chunks2]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_partially_unknown_dimension[x3-chunks3]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_partially_unknown_dimension[x4-chunks4]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_partially_unknown_dimension[x5-chunks5]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_partially_unknown_dimension[x6-chunks6]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_partially_unknown_dimension[x7-chunks7]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_partially_unknown_dimension[x8-chunks8]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_partially_unknown_dimension[x9-chunks9]
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_zero
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_with_zero_placeholders
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_zero
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_zero_dim
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_zero_dim_array
distributed.shuffle.tests.test_rechunk ‑ test_rechunk_zero_dim_array_II
distributed.shuffle.tests.test_rechunk ‑ test_split_axes_1
distributed.shuffle.tests.test_rechunk ‑ test_split_axes_2
distributed.shuffle.tests.test_rechunk ‑ test_split_axes_nan
distributed.shuffle.tests.test_rechunk ‑ test_split_axes_nan_long
distributed.shuffle.tests.test_rechunk ‑ test_split_axes_nan_single
distributed.shuffle.tests.test_rechunk ‑ test_split_axes_with_nonzero
distributed.shuffle.tests.test_rechunk ‑ test_split_axes_with_zero
distributed.shuffle.tests.test_shuffle
distributed.shuffle.tests.test_shuffle ‑ test_add_some_results
distributed.shuffle.tests.test_shuffle ‑ test_bad_disk
distributed.shuffle.tests.test_shuffle ‑ test_barrier_handles_stale_resumed_transfer
distributed.shuffle.tests.test_shuffle ‑ test_basic_cudf_support
distributed.shuffle.tests.test_shuffle ‑ test_basic_integration[False-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_integration[False-20]
distributed.shuffle.tests.test_shuffle ‑ test_basic_integration[False-None]
distributed.shuffle.tests.test_shuffle ‑ test_basic_integration[True-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_integration[True-20]
distributed.shuffle.tests.test_shuffle ‑ test_basic_integration[True-None]
distributed.shuffle.tests.test_shuffle ‑ test_basic_integration_local_cluster[False]
distributed.shuffle.tests.test_shuffle ‑ test_basic_integration_local_cluster[True]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-False-1-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-False-1-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-False-1-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-False-1-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-False-1-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-False-1-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-False-20-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-False-20-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-False-20-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-False-20-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-False-20-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-False-20-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-True-1-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-True-1-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-True-1-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-True-1-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-True-1-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-True-1-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-True-20-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-True-20-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-True-20-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-True-20-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-True-20-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-False-True-20-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-False-1-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-False-1-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-False-1-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-False-1-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-False-1-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-False-1-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-False-20-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-False-20-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-False-20-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-False-20-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-False-20-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-False-20-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-True-1-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-True-1-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-True-1-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-True-1-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-True-1-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-True-1-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-True-20-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-True-20-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-True-20-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-True-20-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-True-20-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[False-True-True-20-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-False-1-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-False-1-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-False-1-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-False-1-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-False-1-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-False-1-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-False-20-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-False-20-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-False-20-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-False-20-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-False-20-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-False-20-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-True-1-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-True-1-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-True-1-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-True-1-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-True-1-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-True-1-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-True-20-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-True-20-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-True-20-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-True-20-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-True-20-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-False-True-20-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-False-1-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-False-1-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-False-1-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-False-1-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-False-1-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-False-1-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-False-20-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-False-20-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-False-20-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-False-20-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-False-20-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-False-20-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-True-1-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-True-1-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-True-1-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-True-1-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-True-1-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-True-1-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-True-20-1-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-True-20-1-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-True-20-10-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-True-20-10-1]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-True-20-2-10]
distributed.shuffle.tests.test_shuffle ‑ test_basic_lowlevel_shuffle[True-True-True-20-2-1]
distributed.shuffle.tests.test_shuffle ‑ test_clean_after_close
distributed.shuffle.tests.test_shuffle ‑ test_clean_after_forgotten_early
distributed.shuffle.tests.test_shuffle ‑ test_closed_bystanding_worker_during_shuffle
distributed.shuffle.tests.test_shuffle ‑ test_closed_input_only_worker_during_transfer
distributed.shuffle.tests.test_shuffle ‑ test_closed_other_worker_during_barrier
distributed.shuffle.tests.test_shuffle ‑ test_closed_worker_between_repeats
distributed.shuffle.tests.test_shuffle ‑ test_closed_worker_during_barrier
distributed.shuffle.tests.test_shuffle ‑ test_closed_worker_during_transfer
distributed.shuffle.tests.test_shuffle ‑ test_closed_worker_during_unpack
distributed.shuffle.tests.test_shuffle ‑ test_concurrent
distributed.shuffle.tests.test_shuffle ‑ test_crashed_input_only_worker_during_transfer
distributed.shuffle.tests.test_shuffle ‑ test_crashed_other_worker_during_barrier
distributed.shuffle.tests.test_shuffle ‑ test_crashed_worker_after_shuffle
distributed.shuffle.tests.test_shuffle ‑ test_crashed_worker_after_shuffle_persisted
distributed.shuffle.tests.test_shuffle ‑ test_crashed_worker_during_transfer
distributed.shuffle.tests.test_shuffle ‑ test_crashed_worker_during_unpack
distributed.shuffle.tests.test_shuffle ‑ test_deduplicate_stale_transfer[False]
distributed.shuffle.tests.test_shuffle ‑ test_deduplicate_stale_transfer[True]
distributed.shuffle.tests.test_shuffle ‑ test_delete_some_results
distributed.shuffle.tests.test_shuffle ‑ test_dont_downscale_participating_workers
distributed.shuffle.tests.test_shuffle ‑ test_drop_duplicates_stable_ordering[first-False]
distributed.shuffle.tests.test_shuffle ‑ test_drop_duplicates_stable_ordering[first-True]
distributed.shuffle.tests.test_shuffle ‑ test_drop_duplicates_stable_ordering[last-False]
distributed.shuffle.tests.test_shuffle ‑ test_drop_duplicates_stable_ordering[last-True]
distributed.shuffle.tests.test_shuffle ‑ test_erred_task_before_p2p_does_not_log_event
distributed.shuffle.tests.test_shuffle ‑ test_error_offload
distributed.shuffle.tests.test_shuffle ‑ test_error_receive[P2PConsistencyError]
distributed.shuffle.tests.test_shuffle ‑ test_error_receive[ValueError]
distributed.shuffle.tests.test_shuffle ‑ test_error_send
distributed.shuffle.tests.test_shuffle ‑ test_exception_on_close_cleans_up
distributed.shuffle.tests.test_shuffle ‑ test_fail_fetch_race
distributed.shuffle.tests.test_shuffle ‑ test_flaky_broadcast[failures0-None]
distributed.shuffle.tests.test_shuffle ‑ test_flaky_broadcast[failures1-None]
distributed.shuffle.tests.test_shuffle ‑ test_flaky_broadcast[failures2-RuntimeError]
distributed.shuffle.tests.test_shuffle ‑ test_flaky_broadcast[failures3-None]
distributed.shuffle.tests.test_shuffle ‑ test_flaky_broadcast[failures4-RuntimeError]
distributed.shuffle.tests.test_shuffle ‑ test_flaky_broadcast[failures5-RuntimeError]
distributed.shuffle.tests.test_shuffle ‑ test_flaky_broadcast[failures6-RuntimeError]
distributed.shuffle.tests.test_shuffle ‑ test_flaky_connect_fails_without_retry
distributed.shuffle.tests.test_shuffle ‑ test_flaky_connect_recover_with_retry
distributed.shuffle.tests.test_shuffle ‑ test_get_or_create_from_dangling_transfer
distributed.shuffle.tests.test_shuffle ‑ test_handle_categorical_data
distributed.shuffle.tests.test_shuffle ‑ test_handle_floats_in_int_meta
distributed.shuffle.tests.test_shuffle ‑ test_handle_null_partitions
distributed.shuffle.tests.test_shuffle ‑ test_handle_null_partitions_2
distributed.shuffle.tests.test_shuffle ‑ test_handle_object_columns
distributed.shuffle.tests.test_shuffle ‑ test_handle_stale_barrier[False]
distributed.shuffle.tests.test_shuffle ‑ test_handle_stale_barrier[True]
distributed.shuffle.tests.test_shuffle ‑ test_head
distributed.shuffle.tests.test_shuffle ‑ test_heartbeat
distributed.shuffle.tests.test_shuffle ‑ test_meaningful_out_of_disk_error
distributed.shuffle.tests.test_shuffle ‑ test_minimal_version
distributed.shuffle.tests.test_shuffle ‑ test_multi
distributed.shuffle.tests.test_shuffle ‑ test_new_worker
distributed.shuffle.tests.test_shuffle ‑ test_processing_chain[False]
distributed.shuffle.tests.test_shuffle ‑ test_processing_chain[True]
distributed.shuffle.tests.test_shuffle ‑ test_raise_on_incompatible_partitions
distributed.shuffle.tests.test_shuffle ‑ test_reconcile_partitions
distributed.shuffle.tests.test_shuffle ‑ test_repeat_shuffle_instance[False]
distributed.shuffle.tests.test_shuffle ‑ test_repeat_shuffle_instance[True]
distributed.shuffle.tests.test_shuffle ‑ test_repeat_shuffle_operation[False]
distributed.shuffle.tests.test_shuffle ‑ test_repeat_shuffle_operation[True]
distributed.shuffle.tests.test_shuffle ‑ test_replace_stale_shuffle
distributed.shuffle.tests.test_shuffle ‑ test_restarting_does_not_deadlock
distributed.shuffle.tests.test_shuffle ‑ test_restarting_does_not_log_p2p_failed
distributed.shuffle.tests.test_shuffle ‑ test_restarting_during_barrier_raises_killed_worker
distributed.shuffle.tests.test_shuffle ‑ test_restarting_during_transfer_raises_killed_worker
distributed.shuffle.tests.test_shuffle ‑ test_restarting_during_unpack_raises_killed_worker
distributed.shuffle.tests.test_shuffle ‑ test_restrictions
distributed.shuffle.tests.test_shuffle ‑ test_set_index
distributed.shuffle.tests.test_shuffle ‑ test_set_index_with_existing_index
distributed.shuffle.tests.test_shuffle ‑ test_shuffle_before_categorize
distributed.shuffle.tests.test_shuffle ‑ test_shuffle_run_consistency
distributed.shuffle.tests.test_shuffle ‑ test_shuffle_stable_ordering[first-False]
distributed.shuffle.tests.test_shuffle ‑ test_shuffle_stable_ordering[first-True]
distributed.shuffle.tests.test_shuffle ‑ test_shuffle_stable_ordering[last-False]
distributed.shuffle.tests.test_shuffle ‑ test_shuffle_stable_ordering[last-True]
distributed.shuffle.tests.test_shuffle ‑ test_shuffle_with_array_conversion[1]
distributed.shuffle.tests.test_shuffle ‑ test_shuffle_with_array_conversion[20]
distributed.shuffle.tests.test_shuffle ‑ test_shuffle_with_array_conversion[None]
distributed.shuffle.tests.test_shuffle ‑ test_shuffle_with_existing_index
distributed.shuffle.tests.test_shuffle ‑ test_sort_values_with_existing_divisions
distributed.shuffle.tests.test_shuffle ‑ test_split_by_partition[False]
distributed.shuffle.tests.test_shuffle ‑ test_split_by_partition[True]
distributed.shuffle.tests.test_shuffle ‑ test_split_by_worker
distributed.shuffle.tests.test_shuffle ‑ test_split_by_worker_empty
distributed.shuffle.tests.test_shuffle ‑ test_split_by_worker_many_workers
distributed.shuffle.tests.test_shuffle ‑ test_tail
distributed.shuffle.tests.test_shuffle ‑ test_unpack_gets_rescheduled_from_non_participating_worker
distributed.shuffle.tests.test_shuffle ‑ test_workers_do_not_spam_get_requests
distributed.shuffle.tests.test_shuffle ‑ test_wrong_meta_provided
distributed.shuffle.tests.test_shuffle_plugins
distributed.shuffle.tests.test_shuffle_plugins ‑ test_installation_on_scheduler
distributed.shuffle.tests.test_shuffle_plugins ‑ test_installation_on_worker
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas_stress
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas_with_waiters[0-0-0-1]
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas_with_waiters[0-0-1-1]
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas_with_waiters[1-0-0-1]
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas_with_waiters[1-1-0-2]
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas_with_waiters[1-1-1-3]
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas_with_waiters[1-1-17-4]
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas_with_waiters[1-1-2-4]
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas_with_waiters[17-1-1-3]
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas_with_waiters[18-1-1-4]
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas_with_waiters[2-0-0-1]
distributed.tests.test_active_memory_manager ‑ test_ReduceReplicas_with_waiters[2-1-1-3]
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_all_recipients_are_paused
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_all_replicas_are_being_retired
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_amm_on_off[False]
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_amm_on_off[True]
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_faulty_recipient
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_incremental
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_mass
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_new_keys_arrive_after_all_keys_moved_away
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_no_extension
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_no_recipients
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_no_remove
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_stress[False]
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_stress[True]
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_with_ReduceReplicas[False]
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_with_ReduceReplicas[True]
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_with_actor[False]
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_with_actor[True]
distributed.tests.test_active_memory_manager ‑ test_RetireWorker_with_actor_proxy
distributed.tests.test_active_memory_manager ‑ test_add_policy
distributed.tests.test_active_memory_manager ‑ test_auto_start
distributed.tests.test_active_memory_manager ‑ test_bad_measure
distributed.tests.test_active_memory_manager ‑ test_client_proxy_async
distributed.tests.test_active_memory_manager ‑ test_client_proxy_sync
distributed.tests.test_active_memory_manager ‑ test_dont_drop_actors
distributed.tests.test_active_memory_manager ‑ test_dont_replicate_actors
distributed.tests.test_active_memory_manager ‑ test_double_drop
distributed.tests.test_active_memory_manager ‑ test_double_drop_stress
distributed.tests.test_active_memory_manager ‑ test_double_replicate_stress
distributed.tests.test_active_memory_manager ‑ test_drop
distributed.tests.test_active_memory_manager ‑ test_drop_from_candidates_without_key
distributed.tests.test_active_memory_manager ‑ test_drop_from_worker_with_least_free_memory
distributed.tests.test_active_memory_manager ‑ test_drop_not_in_memory
distributed.tests.test_active_memory_manager ‑ test_drop_prefers_paused_workers
distributed.tests.test_active_memory_manager ‑ test_drop_stress
distributed.tests.test_active_memory_manager ‑ test_drop_with_bad_candidates
distributed.tests.test_active_memory_manager ‑ test_drop_with_candidates
distributed.tests.test_active_memory_manager ‑ test_drop_with_empty_candidates
distributed.tests.test_active_memory_manager ‑ test_drop_with_paused_workers_with_running_tasks_1
distributed.tests.test_active_memory_manager ‑ test_drop_with_paused_workers_with_running_tasks_2
distributed.tests.test_active_memory_manager ‑ test_drop_with_paused_workers_with_running_tasks_3_4[False]
distributed.tests.test_active_memory_manager ‑ test_drop_with_paused_workers_with_running_tasks_3_4[True]
distributed.tests.test_active_memory_manager ‑ test_drop_with_paused_workers_with_running_tasks_5
distributed.tests.test_active_memory_manager ‑ test_drop_with_waiter
distributed.tests.test_active_memory_manager ‑ test_multi_start
distributed.tests.test_active_memory_manager ‑ test_no_policies
distributed.tests.test_active_memory_manager ‑ test_noamm_stress
distributed.tests.test_active_memory_manager ‑ test_not_registered
distributed.tests.test_active_memory_manager ‑ test_replicate
distributed.tests.test_active_memory_manager ‑ test_replicate_avoids_paused_workers_1
distributed.tests.test_active_memory_manager ‑ test_replicate_avoids_paused_workers_2
distributed.tests.test_active_memory_manager ‑ test_replicate_not_in_memory
distributed.tests.test_active_memory_manager ‑ test_replicate_to_candidates_with_key
distributed.tests.test_active_memory_manager ‑ test_replicate_to_worker_with_most_free_memory
distributed.tests.test_active_memory_manager ‑ test_replicate_with_candidates
distributed.tests.test_active_memory_manager ‑ test_replicate_with_empty_candidates
distributed.tests.test_active_memory_manager ‑ test_start_stop
distributed.tests.test_actor ‑ test_Actor
distributed.tests.test_actor ‑ test_Actors_create_dependencies
distributed.tests.test_actor ‑ test_actor_future_awaitable
distributed.tests.test_actor ‑ test_actor_future_awaitable_deadlock
distributed.tests.test_actor ‑ test_actors_in_profile
distributed.tests.test_actor ‑ test_as_completed
distributed.tests.test_actor ‑ test_async_deadlock
distributed.tests.test_actor ‑ test_client_actions[False]
distributed.tests.test_actor ‑ test_client_actions[True]
distributed.tests.test_actor ‑ test_compute
distributed.tests.test_actor ‑ test_compute_sync
distributed.tests.test_actor ‑ test_dir
distributed.tests.test_actor ‑ test_exception
distributed.tests.test_actor ‑ test_exception_async
distributed.tests.test_actor ‑ test_exceptions_create
distributed.tests.test_actor ‑ test_exceptions_method
distributed.tests.test_actor ‑ test_failed_worker
distributed.tests.test_actor ‑ test_future
distributed.tests.test_actor ‑ test_future_dependencies
distributed.tests.test_actor ‑ test_gc
distributed.tests.test_actor ‑ test_get_worker
distributed.tests.test_actor ‑ test_linear_access
distributed.tests.test_actor ‑ test_load_balance
distributed.tests.test_actor ‑ test_load_balance_map
distributed.tests.test_actor ‑ test_many_computations
distributed.tests.test_actor ‑ test_numpy_roundtrip
distributed.tests.test_actor ‑ test_numpy_roundtrip_getattr
distributed.tests.test_actor ‑ test_one_thread_deadlock
distributed.tests.test_actor ‑ test_one_thread_deadlock_sync_client
distributed.tests.test_actor ‑ test_one_thread_deadlock_timeout
distributed.tests.test_actor ‑ test_repr
distributed.tests.test_actor ‑ test_serialize_with_pickle
distributed.tests.test_actor ‑ test_sync
distributed.tests.test_actor ‑ test_thread_safety
distributed.tests.test_actor ‑ test_timeout
distributed.tests.test_actor ‑ test_track_dependencies
distributed.tests.test_actor ‑ test_waiter
distributed.tests.test_actor ‑ test_worker_actions[False]
distributed.tests.test_actor ‑ test_worker_actions[True]
distributed.tests.test_actor ‑ test_worker_actor_handle_is_weakref
distributed.tests.test_actor ‑ test_worker_actor_handle_is_weakref_from_compute_sync
distributed.tests.test_actor ‑ test_worker_actor_handle_is_weakref_sync
distributed.tests.test_actor ‑ test_worker_client_async
distributed.tests.test_actor ‑ test_worker_client_separate_thread
distributed.tests.test_as_completed ‑ test_as_completed_add
distributed.tests.test_as_completed ‑ test_as_completed_async
distributed.tests.test_as_completed ‑ test_as_completed_cancel
distributed.tests.test_as_completed ‑ test_as_completed_cancel_last
distributed.tests.test_as_completed ‑ test_as_completed_error
distributed.tests.test_as_completed ‑ test_as_completed_error_async
Check notice on line 0 in .github
github-actions / Unit Test Results
4130 tests found (test 1655 to 2617)
There are 4130 tests, see "Raw output" for the list of tests 1655 to 2617.
Raw output
distributed.tests.test_as_completed ‑ test_as_completed_is_empty
distributed.tests.test_as_completed ‑ test_as_completed_repeats
distributed.tests.test_as_completed ‑ test_as_completed_sync
distributed.tests.test_as_completed ‑ test_as_completed_timeout_async
distributed.tests.test_as_completed ‑ test_as_completed_timeout_sync
distributed.tests.test_as_completed ‑ test_as_completed_update
distributed.tests.test_as_completed ‑ test_as_completed_with_non_futures
distributed.tests.test_as_completed ‑ test_as_completed_with_results
distributed.tests.test_as_completed ‑ test_as_completed_with_results_async
distributed.tests.test_as_completed ‑ test_as_completed_with_results_no_raise
distributed.tests.test_as_completed ‑ test_as_completed_with_results_no_raise_async
distributed.tests.test_as_completed ‑ test_async_for_py2_equivalent
distributed.tests.test_as_completed ‑ test_clear
distributed.tests.test_as_completed ‑ test_str
distributed.tests.test_async_task_group ‑ test_async_task_group_call_later_executes_delayed_task_in_background
distributed.tests.test_async_task_group ‑ test_async_task_group_call_soon_executes_task_in_background
distributed.tests.test_async_task_group ‑ test_async_task_group_close_closes
distributed.tests.test_async_task_group ‑ test_async_task_group_close_does_not_cancel_existing_tasks
distributed.tests.test_async_task_group ‑ test_async_task_group_close_prohibits_new_tasks
distributed.tests.test_async_task_group ‑ test_async_task_group_initialization
distributed.tests.test_async_task_group ‑ test_async_task_group_stop_cancels_long_running
distributed.tests.test_async_task_group ‑ test_async_task_group_stop_disallows_shutdown
distributed.tests.test_asyncio ‑ test_rlock
distributed.tests.test_asyncio ‑ test_rlock_none
distributed.tests.test_asyncio ‑ test_rlock_nonreentrant
distributed.tests.test_asyncio ‑ test_rlock_release_on_raise
distributed.tests.test_asyncprocess ‑ test_asyncprocess_child_teardown_on_parent_exit
distributed.tests.test_asyncprocess ‑ test_child_main_thread
distributed.tests.test_asyncprocess ‑ test_close
distributed.tests.test_asyncprocess ‑ test_exit_callback
distributed.tests.test_asyncprocess ‑ test_exitcode
distributed.tests.test_asyncprocess ‑ test_kill
distributed.tests.test_asyncprocess ‑ test_num_fds
distributed.tests.test_asyncprocess ‑ test_sigint_from_same_process
distributed.tests.test_asyncprocess ‑ test_sigterm_from_parent_process
distributed.tests.test_asyncprocess ‑ test_simple
distributed.tests.test_asyncprocess ‑ test_terminate
distributed.tests.test_asyncprocess ‑ test_terminate_after_stop
distributed.tests.test_batched ‑ test_BatchedSend
distributed.tests.test_batched ‑ test_close_closed
distributed.tests.test_batched ‑ test_close_not_started
distributed.tests.test_batched ‑ test_close_twice
distributed.tests.test_batched ‑ test_large_traffic_jam
distributed.tests.test_batched ‑ test_send_after_stream_start
distributed.tests.test_batched ‑ test_send_before_close
distributed.tests.test_batched ‑ test_send_before_start
distributed.tests.test_batched ‑ test_sending_traffic_jam
distributed.tests.test_batched ‑ test_serializers
distributed.tests.test_batched ‑ test_stress
distributed.tests.test_cancelled_state ‑ test_abort_execution_add_as_dependency
distributed.tests.test_cancelled_state ‑ test_abort_execution_release
distributed.tests.test_cancelled_state ‑ test_abort_execution_reschedule
distributed.tests.test_cancelled_state ‑ test_abort_execution_to_fetch
distributed.tests.test_cancelled_state ‑ test_cancel_with_dependencies_in_memory[ExecuteFailureEvent-False]
distributed.tests.test_cancelled_state ‑ test_cancel_with_dependencies_in_memory[ExecuteFailureEvent-True]
distributed.tests.test_cancelled_state ‑ test_cancel_with_dependencies_in_memory[ExecuteSuccessEvent-False]
distributed.tests.test_cancelled_state ‑ test_cancel_with_dependencies_in_memory[ExecuteSuccessEvent-True]
distributed.tests.test_cancelled_state ‑ test_cancel_with_dependencies_in_memory[RescheduleEvent-False]
distributed.tests.test_cancelled_state ‑ test_cancel_with_dependencies_in_memory[RescheduleEvent-True]
distributed.tests.test_cancelled_state ‑ test_cancelled_error
distributed.tests.test_cancelled_state ‑ test_cancelled_error_with_resources
distributed.tests.test_cancelled_state ‑ test_cancelled_handle_compute[False]
distributed.tests.test_cancelled_state ‑ test_cancelled_handle_compute[True]
distributed.tests.test_cancelled_state ‑ test_cancelled_resumed_after_flight_with_dependencies
distributed.tests.test_cancelled_state ‑ test_cancelled_resumed_after_flight_with_dependencies_workerstate
distributed.tests.test_cancelled_state ‑ test_cancelled_task_error_rejected
distributed.tests.test_cancelled_state ‑ test_deadlock_cancelled_after_inflight_before_gather_from_worker[True-cancelled]
distributed.tests.test_cancelled_state ‑ test_deadlock_cancelled_after_inflight_before_gather_from_worker[True-resumed]
distributed.tests.test_cancelled_state ‑ test_execute_preamble_early_cancel[executing-False]
distributed.tests.test_cancelled_state ‑ test_execute_preamble_early_cancel[executing-True]
distributed.tests.test_cancelled_state ‑ test_execute_preamble_early_cancel[resumed-False]
distributed.tests.test_cancelled_state ‑ test_execute_preamble_early_cancel[resumed-True]
distributed.tests.test_cancelled_state ‑ test_executing_cancelled_error
distributed.tests.test_cancelled_state ‑ test_flight_cancelled_error
distributed.tests.test_cancelled_state ‑ test_flight_to_executing_via_cancelled_resumed
distributed.tests.test_cancelled_state ‑ test_in_flight_lost_after_resumed
distributed.tests.test_cancelled_state ‑ test_resumed_cancelled_handle_compute[False-False]
distributed.tests.test_cancelled_state ‑ test_resumed_cancelled_handle_compute[False-True]
distributed.tests.test_cancelled_state ‑ test_resumed_cancelled_handle_compute[True-False]
distributed.tests.test_cancelled_state ‑ test_resumed_cancelled_handle_compute[True-True]
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_scheduler
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_workerstate[ExecuteFailureEvent-False-False]
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_workerstate[ExecuteFailureEvent-False-True]
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_workerstate[ExecuteFailureEvent-True-False]
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_workerstate[ExecuteFailureEvent-True-True]
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_workerstate[ExecuteSuccessEvent-False-False]
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_workerstate[ExecuteSuccessEvent-False-True]
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_workerstate[ExecuteSuccessEvent-True-False]
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_workerstate[ExecuteSuccessEvent-True-True]
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_workerstate[RescheduleEvent-False-False]
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_workerstate[RescheduleEvent-False-True]
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_workerstate[RescheduleEvent-True-False]
distributed.tests.test_cancelled_state ‑ test_secede_cancelled_or_resumed_workerstate[RescheduleEvent-True-True]
distributed.tests.test_cancelled_state ‑ test_worker_stream_died_during_comm
distributed.tests.test_cancelled_state ‑ test_workerstate_executing_failure_to_fetch[executing]
distributed.tests.test_cancelled_state ‑ test_workerstate_executing_failure_to_fetch[long-running]
distributed.tests.test_cancelled_state ‑ test_workerstate_executing_skips_fetch_on_success[executing]
distributed.tests.test_cancelled_state ‑ test_workerstate_executing_skips_fetch_on_success[long-running]
distributed.tests.test_cancelled_state ‑ test_workerstate_executing_to_executing[executing]
distributed.tests.test_cancelled_state ‑ test_workerstate_executing_to_executing[long-running]
distributed.tests.test_cancelled_state ‑ test_workerstate_flight_failure_to_executing[False]
distributed.tests.test_cancelled_state ‑ test_workerstate_flight_failure_to_executing[True]
distributed.tests.test_cancelled_state ‑ test_workerstate_flight_skips_executing_on_success
distributed.tests.test_cancelled_state ‑ test_workerstate_flight_to_flight
distributed.tests.test_cancelled_state ‑ test_workerstate_remove_replica_of_cancelled_task_dependency
distributed.tests.test_cancelled_state ‑ test_workerstate_resumed_fetch_to_cancelled_to_executing[executing]
distributed.tests.test_cancelled_state ‑ test_workerstate_resumed_fetch_to_cancelled_to_executing[long-running]
distributed.tests.test_cancelled_state ‑ test_workerstate_resumed_fetch_to_executing[executing]
distributed.tests.test_cancelled_state ‑ test_workerstate_resumed_fetch_to_executing[long-running]
distributed.tests.test_cancelled_state ‑ test_workerstate_resumed_waiting_to_flight
distributed.tests.test_chaos ‑ test_KillWorker[graceful]
distributed.tests.test_chaos ‑ test_KillWorker[segfault]
distributed.tests.test_chaos ‑ test_KillWorker[sys.exit]
distributed.tests.test_client ‑ test_Client_clears_references_after_restart
distributed.tests.test_client ‑ test_Future_exception
distributed.tests.test_client ‑ test_Future_exception_sync
distributed.tests.test_client ‑ test_Future_exception_sync_2
distributed.tests.test_client ‑ test_Future_release
distributed.tests.test_client ‑ test_Future_release_sync
distributed.tests.test_client ‑ test__broadcast
distributed.tests.test_client ‑ test__broadcast_dict
distributed.tests.test_client ‑ test__broadcast_integer
distributed.tests.test_client ‑ test_add_done_callback
distributed.tests.test_client ‑ test_add_worker_after_tasks
distributed.tests.test_client ‑ test_aliases
distributed.tests.test_client ‑ test_aliases_2
distributed.tests.test_client ‑ test_allow_restrictions
distributed.tests.test_client ‑ test_annotations_blockwise_unpack
distributed.tests.test_client ‑ test_annotations_compute_time[compute]
distributed.tests.test_client ‑ test_annotations_compute_time[persist]
distributed.tests.test_client ‑ test_annotations_global_vs_local
distributed.tests.test_client ‑ test_annotations_loose_restrictions
distributed.tests.test_client ‑ test_annotations_priorities
distributed.tests.test_client ‑ test_annotations_resources
distributed.tests.test_client ‑ test_annotations_resources_culled
distributed.tests.test_client ‑ test_annotations_retries
distributed.tests.test_client ‑ test_annotations_submit_map
distributed.tests.test_client ‑ test_annotations_survive_optimization
distributed.tests.test_client ‑ test_annotations_task_state
distributed.tests.test_client ‑ test_annotations_workers
distributed.tests.test_client ‑ test_as_completed_async_for
distributed.tests.test_client ‑ test_as_completed_async_for_cancel
distributed.tests.test_client ‑ test_as_completed_async_for_results
distributed.tests.test_client ‑ test_as_completed_batches[False]
distributed.tests.test_client ‑ test_as_completed_batches[True]
distributed.tests.test_client ‑ test_as_completed_condition_loop
distributed.tests.test_client ‑ test_as_completed_list
distributed.tests.test_client ‑ test_as_completed_next_batch
distributed.tests.test_client ‑ test_as_completed_results
distributed.tests.test_client ‑ test_as_current
distributed.tests.test_client ‑ test_as_current_is_task_local
distributed.tests.test_client ‑ test_as_current_is_thread_local
distributed.tests.test_client ‑ test_async_compute
distributed.tests.test_client ‑ test_async_compute_with_scatter
distributed.tests.test_client ‑ test_async_persist
distributed.tests.test_client ‑ test_async_task
distributed.tests.test_client ‑ test_async_task_with_partial
distributed.tests.test_client ‑ test_async_with
distributed.tests.test_client ‑ test_auto_normalize_collection
distributed.tests.test_client ‑ test_auto_normalize_collection_sync
distributed.tests.test_client ‑ test_avoid_delayed_finalize
distributed.tests.test_client ‑ test_await_future
distributed.tests.test_client ‑ test_bad_address
distributed.tests.test_client ‑ test_bad_tasks_fail
distributed.tests.test_client ‑ test_badly_serialized_exceptions
distributed.tests.test_client ‑ test_badly_serialized_input_stderr
distributed.tests.test_client ‑ test_balance_tasks_by_stacks
distributed.tests.test_client ‑ test_balanced_with_submit
distributed.tests.test_client ‑ test_balanced_with_submit_and_resident_data
distributed.tests.test_client ‑ test_benchmark_hardware_no_workers
distributed.tests.test_client ‑ test_bytes_keys
distributed.tests.test_client ‑ test_call_stack_all
distributed.tests.test_client ‑ test_call_stack_collections
distributed.tests.test_client ‑ test_call_stack_collections_all
distributed.tests.test_client ‑ test_call_stack_future
distributed.tests.test_client ‑ test_cancel
distributed.tests.test_client ‑ test_cancel_before_known_to_scheduler
distributed.tests.test_client ‑ test_cancel_clears_processing
distributed.tests.test_client ‑ test_cancel_collection
distributed.tests.test_client ‑ test_cancel_multi_client
distributed.tests.test_client ‑ test_cancel_sync
distributed.tests.test_client ‑ test_cancel_tuple_key
distributed.tests.test_client ‑ test_cleanup_after_broken_client_connection
distributed.tests.test_client ‑ test_client_async_before_loop_starts
distributed.tests.test_client ‑ test_client_disconnect_exception_on_cancelled_futures
distributed.tests.test_client ‑ test_client_doesnt_close_given_loop
distributed.tests.test_client ‑ test_client_is_quiet_cluster_close
distributed.tests.test_client ‑ test_client_name
distributed.tests.test_client ‑ test_client_num_fds
distributed.tests.test_client ‑ test_client_replicate
distributed.tests.test_client ‑ test_client_replicate_host
distributed.tests.test_client ‑ test_client_replicate_sync
distributed.tests.test_client ‑ test_client_repr_closed
distributed.tests.test_client ‑ test_client_repr_closed_sync
distributed.tests.test_client ‑ test_client_sync_with_async_def
distributed.tests.test_client ‑ test_client_timeout
distributed.tests.test_client ‑ test_client_timeout_2
distributed.tests.test_client ‑ test_client_with_name
distributed.tests.test_client ‑ test_client_with_scheduler
distributed.tests.test_client ‑ test_close
distributed.tests.test_client ‑ test_close_idempotent
distributed.tests.test_client ‑ test_computation_code_walk_frames
distributed.tests.test_client ‑ test_computation_ignore_ipython_frames[2]
distributed.tests.test_client ‑ test_computation_ignore_ipython_frames[3]
distributed.tests.test_client ‑ test_computation_object_code_client_compute
distributed.tests.test_client ‑ test_computation_object_code_client_map
distributed.tests.test_client ‑ test_computation_object_code_client_submit_dict_comp
distributed.tests.test_client ‑ test_computation_object_code_client_submit_list_comp
distributed.tests.test_client ‑ test_computation_object_code_client_submit_simple
distributed.tests.test_client ‑ test_computation_object_code_dask_compute
distributed.tests.test_client ‑ test_computation_object_code_dask_compute_no_frames_default
distributed.tests.test_client ‑ test_computation_object_code_dask_persist
distributed.tests.test_client ‑ test_computation_object_code_not_available
distributed.tests.test_client ‑ test_computation_store_annotations
distributed.tests.test_client ‑ test_compute_nested_containers
distributed.tests.test_client ‑ test_compute_retries
distributed.tests.test_client ‑ test_compute_retries_annotations
distributed.tests.test_client ‑ test_compute_workers
distributed.tests.test_client ‑ test_compute_workers_annotate
distributed.tests.test_client ‑ test_config_inherited_by_subprocess
distributed.tests.test_client ‑ test_config_scheduler_address
distributed.tests.test_client ‑ test_context_manager_used_from_different_tasks
distributed.tests.test_client ‑ test_context_manager_used_from_different_threads
distributed.tests.test_client ‑ test_contiguous_load
distributed.tests.test_client ‑ test_current
distributed.tests.test_client ‑ test_current_concurrent
distributed.tests.test_client ‑ test_current_nested
distributed.tests.test_client ‑ test_current_nested_async
distributed.tests.test_client ‑ test_custom_key_with_batches
distributed.tests.test_client ‑ test_dashboard_link
distributed.tests.test_client ‑ test_dashboard_link_cluster
distributed.tests.test_client ‑ test_dashboard_link_inproc
distributed.tests.test_client ‑ test_de_serialization
distributed.tests.test_client ‑ test_de_serialization_none
distributed.tests.test_client ‑ test_default_get
distributed.tests.test_client ‑ test_deprecated_loop_properties
distributed.tests.test_client ‑ test_diagnostic_nbytes
distributed.tests.test_client ‑ test_diagnostic_nbytes_sync
distributed.tests.test_client ‑ test_diagnostic_ui
distributed.tests.test_client ‑ test_direct_async
distributed.tests.test_client ‑ test_direct_sync
distributed.tests.test_client ‑ test_direct_to_workers
distributed.tests.test_client ‑ test_directed_scatter
distributed.tests.test_client ‑ test_distribute_tasks_by_nthreads
distributed.tests.test_client ‑ test_dont_hold_on_to_large_messages
distributed.tests.test_client ‑ test_duck_typed_register_plugin_raises
distributed.tests.test_client ‑ test_dump_cluster_state_async[msgpack-False]
distributed.tests.test_client ‑ test_dump_cluster_state_async[msgpack-True]
distributed.tests.test_client ‑ test_dump_cluster_state_async[yaml-False]
distributed.tests.test_client ‑ test_dump_cluster_state_async[yaml-True]
distributed.tests.test_client ‑ test_dump_cluster_state_exclude_default
distributed.tests.test_client ‑ test_dump_cluster_state_json[False]
distributed.tests.test_client ‑ test_dump_cluster_state_json[True]
distributed.tests.test_client ‑ test_dump_cluster_state_sync[msgpack-False]
distributed.tests.test_client ‑ test_dump_cluster_state_sync[msgpack-True]
distributed.tests.test_client ‑ test_dump_cluster_state_sync[yaml-False]
distributed.tests.test_client ‑ test_dump_cluster_state_sync[yaml-True]
distributed.tests.test_client ‑ test_dump_cluster_state_write_from_scheduler
distributed.tests.test_client ‑ test_dynamic_workloads_sync
distributed.tests.test_client ‑ test_dynamic_workloads_sync_random
distributed.tests.test_client ‑ test_ensure_default_client
distributed.tests.test_client ‑ test_errors_dont_block
distributed.tests.test_client ‑ test_even_load_after_fast_functions
distributed.tests.test_client ‑ test_even_load_on_startup
distributed.tests.test_client ‑ test_exception_on_exception
distributed.tests.test_client ‑ test_exception_text
distributed.tests.test_client ‑ test_exceptions
distributed.tests.test_client ‑ test_fast_close_on_aexit_failure
distributed.tests.test_client ‑ test_file_descriptors_dont_leak[Nanny]
distributed.tests.test_client ‑ test_file_descriptors_dont_leak[Worker]
distributed.tests.test_client ‑ test_fire_and_forget
distributed.tests.test_client ‑ test_fire_and_forget_err
distributed.tests.test_client ‑ test_forget_complex
distributed.tests.test_client ‑ test_forget_errors
distributed.tests.test_client ‑ test_forget_in_flight
distributed.tests.test_client ‑ test_forget_simple
distributed.tests.test_client ‑ test_forward_logging
distributed.tests.test_client ‑ test_future_repr
distributed.tests.test_client ‑ test_future_tuple_repr
distributed.tests.test_client ‑ test_future_type
distributed.tests.test_client ‑ test_futures_in_subgraphs
distributed.tests.test_client ‑ test_futures_of_cancelled_raises
distributed.tests.test_client ‑ test_futures_of_class
distributed.tests.test_client ‑ test_futures_of_get
distributed.tests.test_client ‑ test_futures_of_sorted
distributed.tests.test_client ‑ test_garbage_collection
distributed.tests.test_client ‑ test_garbage_collection_with_scatter
distributed.tests.test_client ‑ test_gather
distributed.tests.test_client ‑ test_gather_direct
distributed.tests.test_client ‑ test_gather_errors
distributed.tests.test_client ‑ test_gather_lost
distributed.tests.test_client ‑ test_gather_mismatched_client
distributed.tests.test_client ‑ test_gather_race_vs_AMM[False]
distributed.tests.test_client ‑ test_gather_race_vs_AMM[True]
distributed.tests.test_client ‑ test_gather_skip
distributed.tests.test_client ‑ test_gather_strict
distributed.tests.test_client ‑ test_gather_sync
distributed.tests.test_client ‑ test_gather_traceback
distributed.tests.test_client ‑ test_gc
distributed.tests.test_client ‑ test_get
distributed.tests.test_client ‑ test_get_client
distributed.tests.test_client ‑ test_get_client_functions_spawn_clusters
distributed.tests.test_client ‑ test_get_client_no_cluster
distributed.tests.test_client ‑ test_get_client_sync
distributed.tests.test_client ‑ test_get_foo
distributed.tests.test_client ‑ test_get_foo_lost_keys
distributed.tests.test_client ‑ test_get_mix_futures_and_SubgraphCallable
distributed.tests.test_client ‑ test_get_mix_futures_and_SubgraphCallable_dask_dataframe
distributed.tests.test_client ‑ test_get_nbytes
distributed.tests.test_client ‑ test_get_processing_sync
distributed.tests.test_client ‑ test_get_releases_data
distributed.tests.test_client ‑ test_get_returns_early
distributed.tests.test_client ‑ test_get_scheduler_default_client_config_interleaving
distributed.tests.test_client ‑ test_get_stops_work_after_error
distributed.tests.test_client ‑ test_get_sync
distributed.tests.test_client ‑ test_get_sync_optimize_graph_passes_through
distributed.tests.test_client ‑ test_get_task_metadata
distributed.tests.test_client ‑ test_get_task_metadata_multiple
distributed.tests.test_client ‑ test_get_task_prefix_states
distributed.tests.test_client ‑ test_get_traceback
distributed.tests.test_client ‑ test_get_versions_async
distributed.tests.test_client ‑ test_get_versions_rpc_error
distributed.tests.test_client ‑ test_get_versions_sync
distributed.tests.test_client ‑ test_get_with_error
distributed.tests.test_client ‑ test_get_with_error_sync
distributed.tests.test_client ‑ test_get_with_non_list_key
distributed.tests.test_client ‑ test_global_clients
distributed.tests.test_client ‑ test_idempotence
distributed.tests.test_client ‑ test_identity
distributed.tests.test_client ‑ test_if_intermediates_clear_on_error
distributed.tests.test_client ‑ test_informative_error_on_cluster_type
distributed.tests.test_client ‑ test_instances
distributed.tests.test_client ‑ test_interleave_computations
distributed.tests.test_client ‑ test_interleave_computations_map
distributed.tests.test_client ‑ test_limit_concurrent_gathering
distributed.tests.test_client ‑ test_logs
distributed.tests.test_client ‑ test_logs_from_worker_submodules
distributed.tests.test_client ‑ test_long_error
distributed.tests.test_client ‑ test_long_running_not_in_occupancy[False]
distributed.tests.test_client ‑ test_long_running_not_in_occupancy[True]
distributed.tests.test_client ‑ test_long_running_removal_clean[False]
distributed.tests.test_client ‑ test_long_running_removal_clean[True]
distributed.tests.test_client ‑ test_long_tasks_dont_trigger_timeout
distributed.tests.test_client ‑ test_long_traceback
distributed.tests.test_client ‑ test_lose_scattered_data
distributed.tests.test_client ‑ test_many_submits_spread_evenly
distributed.tests.test_client ‑ test_map
distributed.tests.test_client ‑ test_map_batch_size
distributed.tests.test_client ‑ test_map_differnet_lengths
distributed.tests.test_client ‑ test_map_empty
distributed.tests.test_client ‑ test_map_keynames
distributed.tests.test_client ‑ test_map_large_kwargs_in_graph
distributed.tests.test_client ‑ test_map_list_kwargs
distributed.tests.test_client ‑ test_map_naming
distributed.tests.test_client ‑ test_map_on_futures_with_kwargs
distributed.tests.test_client ‑ test_map_quotes
distributed.tests.test_client ‑ test_map_retries
distributed.tests.test_client ‑ test_mixed_compression
distributed.tests.test_client ‑ test_mixing_clients_different_scheduler
distributed.tests.test_client ‑ test_mixing_clients_same_scheduler
distributed.tests.test_client ‑ test_multi_client
distributed.tests.test_client ‑ test_multi_garbage_collection
distributed.tests.test_client ‑ test_multiple_clients
distributed.tests.test_client ‑ test_multiple_scatter
distributed.tests.test_client ‑ test_nbytes_determines_worker
distributed.tests.test_client ‑ test_nested_compute
distributed.tests.test_client ‑ test_nested_prioritization
distributed.tests.test_client ‑ test_no_future_references
distributed.tests.test_client ‑ test_no_threads_lingering
distributed.tests.test_client ‑ test_normalize_collection
distributed.tests.test_client ‑ test_normalize_collection_dask_array
distributed.tests.test_client ‑ test_normalize_collection_with_released_futures
distributed.tests.test_client ‑ test_partially_lose_scattered_data
distributed.tests.test_client ‑ test_performance_report[False]
distributed.tests.test_client ‑ test_performance_report[True]
distributed.tests.test_client ‑ test_persist
distributed.tests.test_client ‑ test_persist_async
distributed.tests.test_client ‑ test_persist_get[False]
distributed.tests.test_client ‑ test_persist_get[True]
distributed.tests.test_client ‑ test_persist_get_sync
distributed.tests.test_client ‑ test_persist_optimize_graph
distributed.tests.test_client ‑ test_persist_retries
distributed.tests.test_client ‑ test_persist_retries_annotations
distributed.tests.test_client ‑ test_persist_workers
distributed.tests.test_client ‑ test_persist_workers_annotate
distributed.tests.test_client ‑ test_persist_workers_annotate2
distributed.tests.test_client ‑ test_pragmatic_move_small_data_to_large_data
distributed.tests.test_client ‑ test_print_local
distributed.tests.test_client ‑ test_print_manual
distributed.tests.test_client ‑ test_print_manual_bad_args
distributed.tests.test_client ‑ test_print_non_msgpack_serializable
distributed.tests.test_client ‑ test_print_remote
distributed.tests.test_client ‑ test_profile
distributed.tests.test_client ‑ test_profile_bokeh
distributed.tests.test_client ‑ test_profile_disabled
distributed.tests.test_client ‑ test_profile_keys
distributed.tests.test_client ‑ test_profile_server
distributed.tests.test_client ‑ test_profile_server_disabled
distributed.tests.test_client ‑ test_proxy
distributed.tests.test_client ‑ test_quiet_client_close
distributed.tests.test_client ‑ test_quiet_client_close_when_cluster_is_closed_before_client
distributed.tests.test_client ‑ test_quiet_close_process[False]
distributed.tests.test_client ‑ test_quiet_close_process[True]
distributed.tests.test_client ‑ test_quiet_quit_when_cluster_leaves
distributed.tests.test_client ‑ test_quiet_scheduler_loss
distributed.tests.test_client ‑ test_rebalance
distributed.tests.test_client ‑ test_rebalance_sync
distributed.tests.test_client ‑ test_rebalance_unprepared
distributed.tests.test_client ‑ test_rebalance_workers_and_keys
distributed.tests.test_client ‑ test_receive_lost_key
distributed.tests.test_client ‑ test_recompute_released_key
distributed.tests.test_client ‑ test_reconnect
distributed.tests.test_client ‑ test_reconnect_timeout
distributed.tests.test_client ‑ test_recreate_error_not_error
distributed.tests.test_client ‑ test_recreate_error_sync
distributed.tests.test_client ‑ test_recreate_task_sync
distributed.tests.test_client ‑ test_register_worker_plugin_exception
distributed.tests.test_client ‑ test_register_worker_plugin_instance_required
distributed.tests.test_client ‑ test_release_persisted_collection
distributed.tests.test_client ‑ test_release_persisted_collection_sync
distributed.tests.test_client ‑ test_released_dependencies
distributed.tests.test_client ‑ test_remote_scatter_gather
distributed.tests.test_client ‑ test_remote_submit_on_Future
distributed.tests.test_client ‑ test_remove_worker
distributed.tests.test_client ‑ test_replicate
distributed.tests.test_client ‑ test_replicate_tree_branching
distributed.tests.test_client ‑ test_replicate_tuple_keys
distributed.tests.test_client ‑ test_replicate_workers
distributed.tests.test_client ‑ test_repr[func2]
distributed.tests.test_client ‑ test_repr[repr]
distributed.tests.test_client ‑ test_repr[str]
distributed.tests.test_client ‑ test_repr_async
distributed.tests.test_client ‑ test_repr_localcluster
distributed.tests.test_client ‑ test_repr_no_memory_limit
distributed.tests.test_client ‑ test_repr_sync
distributed.tests.test_client ‑ test_resolves_future_in_dict
distributed.tests.test_client ‑ test_resolves_future_in_namedtuple[NewArgsExNamedTuple-args2-kwargs2]
distributed.tests.test_client ‑ test_resolves_future_in_namedtuple[NewArgsNamedTuple-args1-kwargs1]
distributed.tests.test_client ‑ test_resolves_future_in_namedtuple[PlainNamedTuple-args0-kwargs0]
distributed.tests.test_client ‑ test_restart_workers
distributed.tests.test_client ‑ test_restart_workers_by_name[False]
distributed.tests.test_client ‑ test_restart_workers_by_name[True]
distributed.tests.test_client ‑ test_restart_workers_exception
distributed.tests.test_client ‑ test_restart_workers_kill_timeout[False]
distributed.tests.test_client ‑ test_restart_workers_kill_timeout[True]
distributed.tests.test_client ‑ test_restart_workers_no_nanny_raises
distributed.tests.test_client ‑ test_restart_workers_restart_timeout[False]
distributed.tests.test_client ‑ test_restart_workers_restart_timeout[True]
distributed.tests.test_client ‑ test_restrictions_get
distributed.tests.test_client ‑ test_restrictions_get_annotate
distributed.tests.test_client ‑ test_restrictions_ip_port
distributed.tests.test_client ‑ test_restrictions_map
distributed.tests.test_client ‑ test_restrictions_submit
distributed.tests.test_client ‑ test_retire_many_workers
distributed.tests.test_client ‑ test_retire_workers
distributed.tests.test_client ‑ test_retire_workers_2
distributed.tests.test_client ‑ test_retries_dask_array
distributed.tests.test_client ‑ test_retries_get
distributed.tests.test_client ‑ test_retry
distributed.tests.test_client ‑ test_retry_dependencies
distributed.tests.test_client ‑ test_robust_undeserializable
distributed.tests.test_client ‑ test_robust_undeserializable_function
distributed.tests.test_client ‑ test_robust_unserializable
distributed.tests.test_client ‑ test_run
distributed.tests.test_client ‑ test_run_coroutine
distributed.tests.test_client ‑ test_run_coroutine_sync
distributed.tests.test_client ‑ test_run_exception
distributed.tests.test_client ‑ test_run_handles_picklable_data
distributed.tests.test_client ‑ test_run_on_scheduler_async_def
distributed.tests.test_client ‑ test_run_on_scheduler_async_def_wait
distributed.tests.test_client ‑ test_run_rpc_error
distributed.tests.test_client ‑ test_run_sync
distributed.tests.test_client ‑ test_scatter
distributed.tests.test_client ‑ test_scatter_and_replicate_avoid_paused_workers[10-False-False]
distributed.tests.test_client ‑ test_scatter_and_replicate_avoid_paused_workers[10-False-True]
distributed.tests.test_client ‑ test_scatter_and_replicate_avoid_paused_workers[10-True-False]
distributed.tests.test_client ‑ test_scatter_and_replicate_avoid_paused_workers[10-True-True]
distributed.tests.test_client ‑ test_scatter_and_replicate_avoid_paused_workers[False-False-False]
distributed.tests.test_client ‑ test_scatter_and_replicate_avoid_paused_workers[False-False-True]
distributed.tests.test_client ‑ test_scatter_and_replicate_avoid_paused_workers[False-True-False]
distributed.tests.test_client ‑ test_scatter_and_replicate_avoid_paused_workers[False-True-True]
distributed.tests.test_client ‑ test_scatter_and_replicate_avoid_paused_workers[True-False-False]
distributed.tests.test_client ‑ test_scatter_and_replicate_avoid_paused_workers[True-False-True]
distributed.tests.test_client ‑ test_scatter_and_replicate_avoid_paused_workers[True-True-False]
distributed.tests.test_client ‑ test_scatter_and_replicate_avoid_paused_workers[True-True-True]
distributed.tests.test_client ‑ test_scatter_compute_lose
distributed.tests.test_client ‑ test_scatter_compute_store_lose
distributed.tests.test_client ‑ test_scatter_compute_store_lose_processing
distributed.tests.test_client ‑ test_scatter_dict_workers
distributed.tests.test_client ‑ test_scatter_direct
distributed.tests.test_client ‑ test_scatter_direct_2
distributed.tests.test_client ‑ test_scatter_direct_balanced
distributed.tests.test_client ‑ test_scatter_direct_broadcast
distributed.tests.test_client ‑ test_scatter_direct_broadcast_target
distributed.tests.test_client ‑ test_scatter_direct_empty
distributed.tests.test_client ‑ test_scatter_direct_numpy
distributed.tests.test_client ‑ test_scatter_direct_spread_evenly
distributed.tests.test_client ‑ test_scatter_error_cancel
distributed.tests.test_client ‑ test_scatter_gather_sync[False-False]
distributed.tests.test_client ‑ test_scatter_gather_sync[False-True]
distributed.tests.test_client ‑ test_scatter_gather_sync[True-False]
distributed.tests.test_client ‑ test_scatter_gather_sync[True-True]
distributed.tests.test_client ‑ test_scatter_hash
distributed.tests.test_client ‑ test_scatter_hash_2
distributed.tests.test_client ‑ test_scatter_non_list
distributed.tests.test_client ‑ test_scatter_raises_if_no_workers
distributed.tests.test_client ‑ test_scatter_singletons
distributed.tests.test_client ‑ test_scatter_tokenize_local
distributed.tests.test_client ‑ test_scatter_type
distributed.tests.test_client ‑ test_scatter_typename
distributed.tests.test_client ‑ test_scatter_types
distributed.tests.test_client ‑ test_scheduler_info
distributed.tests.test_client ‑ test_scheduler_restart_exception_on_cancelled_futures
distributed.tests.test_client ‑ test_scheduler_saturates_cores
distributed.tests.test_client ‑ test_scheduler_saturates_cores_random
distributed.tests.test_client ‑ test_secede_balances
distributed.tests.test_client ‑ test_secede_simple
distributed.tests.test_client ‑ test_serialize_collections
distributed.tests.test_client ‑ test_serialize_collections_of_futures
distributed.tests.test_client ‑ test_serialize_collections_of_futures_sync
distributed.tests.test_client ‑ test_set_as_default
distributed.tests.test_client ‑ test_short_tracebacks[gather]
distributed.tests.test_client ‑ test_short_tracebacks[result]
distributed.tests.test_client ‑ test_short_tracebacks_async[await]
distributed.tests.test_client ‑ test_short_tracebacks_async[gather]
distributed.tests.test_client ‑ test_short_tracebacks_async[result]
distributed.tests.test_client ‑ test_shutdown
distributed.tests.test_client ‑ test_shutdown_is_quiet_with_cluster
distributed.tests.test_client ‑ test_shutdown_localcluster
distributed.tests.test_client ‑ test_shutdown_stops_callbacks
distributed.tests.test_client ‑ test_start_is_idempotent
distributed.tests.test_client ‑ test_startup_close_startup
distributed.tests.test_client ‑ test_startup_close_startup_sync
distributed.tests.test_client ‑ test_status
distributed.tests.test_client ‑ test_sub_submit_priority
distributed.tests.test_client ‑ test_submit
distributed.tests.test_client ‑ test_submit_list_kwargs
distributed.tests.test_client ‑ test_submit_naming
distributed.tests.test_client ‑ test_submit_on_cancelled_future
distributed.tests.test_client ‑ test_submit_quotes
distributed.tests.test_client ‑ test_submit_then_get_with_Future
distributed.tests.test_client ‑ test_sync_compute
distributed.tests.test_client ‑ test_sync_exceptions
distributed.tests.test_client ‑ test_task_load_adapts_quickly
distributed.tests.test_client ‑ test_task_metadata
distributed.tests.test_client ‑ test_temp_default_client
distributed.tests.test_client ‑ test_thread
distributed.tests.test_client ‑ test_threaded_get_within_distributed
distributed.tests.test_client ‑ test_threadsafe
distributed.tests.test_client ‑ test_threadsafe_compute
distributed.tests.test_client ‑ test_threadsafe_get
distributed.tests.test_client ‑ test_tokenize_on_futures
distributed.tests.test_client ‑ test_traceback
distributed.tests.test_client ‑ test_traceback_clean
distributed.tests.test_client ‑ test_traceback_sync
distributed.tests.test_client ‑ test_tuple_keys
distributed.tests.test_client ‑ test_turn_off_pickle[False]
distributed.tests.test_client ‑ test_turn_off_pickle[True]
distributed.tests.test_client ‑ test_two_consecutive_clients_share_results
distributed.tests.test_client ‑ test_unhashable_function
distributed.tests.test_client ‑ test_unicode_ascii_keys
distributed.tests.test_client ‑ test_unicode_keys
distributed.tests.test_client ‑ test_unpacks_remotedata_namedtuple[NewArgsExNamedTuple-args2-kwargs2]
distributed.tests.test_client ‑ test_unpacks_remotedata_namedtuple[NewArgsNamedTuple-args1-kwargs1]
distributed.tests.test_client ‑ test_unpacks_remotedata_namedtuple[PlainNamedTuple-args0-kwargs0]
distributed.tests.test_client ‑ test_unrunnable_task_runs
distributed.tests.test_client ‑ test_upload_directory
distributed.tests.test_client ‑ test_upload_file
distributed.tests.test_client ‑ test_upload_file_egg
distributed.tests.test_client ‑ test_upload_file_exception
distributed.tests.test_client ‑ test_upload_file_exception_sync
distributed.tests.test_client ‑ test_upload_file_load
distributed.tests.test_client ‑ test_upload_file_new_worker
distributed.tests.test_client ‑ test_upload_file_no_extension
distributed.tests.test_client ‑ test_upload_file_refresh_delayed
distributed.tests.test_client ‑ test_upload_file_sync
distributed.tests.test_client ‑ test_upload_file_zip
distributed.tests.test_client ‑ test_upload_large_file
distributed.tests.test_client ‑ test_use_synchronous_client_in_async_context
distributed.tests.test_client ‑ test_wait
distributed.tests.test_client ‑ test_wait_first_completed
distributed.tests.test_client ‑ test_wait_for_workers
distributed.tests.test_client ‑ test_wait_for_workers_n_workers_value_check[0-ValueError]
distributed.tests.test_client ‑ test_wait_for_workers_n_workers_value_check[1-None]
distributed.tests.test_client ‑ test_wait_for_workers_n_workers_value_check[1.0-ValueError]
distributed.tests.test_client ‑ test_wait_for_workers_n_workers_value_check[2-None]
distributed.tests.test_client ‑ test_wait_for_workers_n_workers_value_check[None-ValueError]
distributed.tests.test_client ‑ test_wait_for_workers_updates_info
distributed.tests.test_client ‑ test_wait_informative_error_for_timeouts
distributed.tests.test_client ‑ test_wait_on_collections
distributed.tests.test_client ‑ test_wait_sync
distributed.tests.test_client ‑ test_wait_timeout
distributed.tests.test_client ‑ test_warn_manual
distributed.tests.test_client ‑ test_warn_remote
distributed.tests.test_client ‑ test_warn_when_submitting_large_values
distributed.tests.test_client ‑ test_warn_when_submitting_large_values_memoryview
distributed.tests.test_client ‑ test_weight_occupancy_against_data_movement
distributed.tests.test_client ‑ test_worker_aliases
distributed.tests.test_client ‑ test_worker_clients_do_not_claim_ownership_of_serialize_futures[False]
distributed.tests.test_client ‑ test_worker_clients_do_not_claim_ownership_of_serialize_futures[True]
distributed.tests.test_client ‑ test_workers_collection_restriction
distributed.tests.test_client ‑ test_workers_register_indirect_data
distributed.tests.test_client ‑ test_write_scheduler_file
distributed.tests.test_client.TestClientSecurityLoader ‑ test_security_loader
distributed.tests.test_client.TestClientSecurityLoader ‑ test_security_loader_ignored_if_explicit_security_provided
distributed.tests.test_client.TestClientSecurityLoader ‑ test_security_loader_ignored_if_returns_none
distributed.tests.test_client.TestClientSecurityLoader ‑ test_security_loader_import_failed
distributed.tests.test_client_executor ‑ test_as_completed
distributed.tests.test_client_executor ‑ test_cancellation
distributed.tests.test_client_executor ‑ test_cancellation_as_completed
distributed.tests.test_client_executor ‑ test_cancellation_wait
distributed.tests.test_client_executor ‑ test_map
distributed.tests.test_client_executor ‑ test_pure
distributed.tests.test_client_executor ‑ test_retries
distributed.tests.test_client_executor ‑ test_shutdown_nowait
distributed.tests.test_client_executor ‑ test_shutdown_wait
distributed.tests.test_client_executor ‑ test_submit
distributed.tests.test_client_executor ‑ test_unsupported_arguments
distributed.tests.test_client_executor ‑ test_wait
distributed.tests.test_client_executor ‑ test_workers
distributed.tests.test_client_loop ‑ test_close_loop_sync_start_new_loop
distributed.tests.test_client_loop ‑ test_close_loop_sync_use_running_loop
distributed.tests.test_cluster_dump ‑ test_cluster_dump_state
distributed.tests.test_cluster_dump ‑ test_cluster_dump_story
distributed.tests.test_cluster_dump ‑ test_cluster_dump_to_yamls
distributed.tests.test_cluster_dump ‑ test_tuple_to_list[foo-foo]
distributed.tests.test_cluster_dump ‑ test_tuple_to_list[input0-expected0]
distributed.tests.test_cluster_dump ‑ test_tuple_to_list[input1-expected1]
distributed.tests.test_cluster_dump ‑ test_tuple_to_list[input2-expected2]
distributed.tests.test_cluster_dump ‑ test_write_state_msgpack
distributed.tests.test_cluster_dump ‑ test_write_state_yaml
distributed.tests.test_collections ‑ test_heapset
distributed.tests.test_collections ‑ test_heapset_pickle
distributed.tests.test_collections ‑ test_heapset_popright[False]
distributed.tests.test_collections ‑ test_heapset_popright[True]
distributed.tests.test_collections ‑ test_heapset_sort_duplicate
distributed.tests.test_collections ‑ test_heapset_sorted_flag_left
distributed.tests.test_collections ‑ test_heapset_sorted_flag_right
distributed.tests.test_collections ‑ test_lru
distributed.tests.test_collections ‑ test_sum_mappings
distributed.tests.test_compatibility ‑ test_randbytes
distributed.tests.test_compatibility ‑ test_randbytes_seed
distributed.tests.test_computations ‑ test_computations
distributed.tests.test_computations ‑ test_computations_futures
distributed.tests.test_computations ‑ test_computations_long_running
distributed.tests.test_computations ‑ test_computations_no_resources
distributed.tests.test_computations ‑ test_computations_no_workers
distributed.tests.test_config ‑ test_basic_config_does_not_override_default_logging
distributed.tests.test_config ‑ test_default_logging_does_not_override_basic_config
distributed.tests.test_config ‑ test_deprecations_on_env_variables
distributed.tests.test_config ‑ test_deprecations_on_set[args0-kwargs0]
distributed.tests.test_config ‑ test_deprecations_on_set[args1-kwargs1]
distributed.tests.test_config ‑ test_deprecations_on_set[args2-kwargs2]
distributed.tests.test_config ‑ test_deprecations_on_yaml[allowed-failures]
distributed.tests.test_config ‑ test_deprecations_on_yaml[allowed_failures]
distributed.tests.test_config ‑ test_logging_default[None]
distributed.tests.test_config ‑ test_logging_default[config0]
distributed.tests.test_config ‑ test_logging_extended
distributed.tests.test_config ‑ test_logging_file_config
distributed.tests.test_config ‑ test_logging_mutual_exclusive
distributed.tests.test_config ‑ test_logging_simple
distributed.tests.test_config ‑ test_logging_simple_under_distributed
distributed.tests.test_config ‑ test_schema
distributed.tests.test_config ‑ test_schema_is_complete
distributed.tests.test_config ‑ test_uvloop_event_loop
distributed.tests.test_core ‑ test_async_listener_stop
distributed.tests.test_core ‑ test_close_fast_without_active_handlers[False]
distributed.tests.test_core ‑ test_close_fast_without_active_handlers[True]
distributed.tests.test_core ‑ test_close_grace_period_for_handlers
distributed.tests.test_core ‑ test_close_properly
distributed.tests.test_core ‑ test_coerce_to_address
distributed.tests.test_core ‑ test_compression[echo_no_serialize-False]
distributed.tests.test_core ‑ test_compression[echo_no_serialize-None]
distributed.tests.test_core ‑ test_compression[echo_no_serialize-auto]
distributed.tests.test_core ‑ test_compression[echo_no_serialize-lz4]
distributed.tests.test_core ‑ test_compression[echo_no_serialize-snappy]
distributed.tests.test_core ‑ test_compression[echo_no_serialize-zlib]
distributed.tests.test_core ‑ test_compression[echo_no_serialize-zstd]
distributed.tests.test_core ‑ test_compression[echo_serialize-False]
distributed.tests.test_core ‑ test_compression[echo_serialize-None]
distributed.tests.test_core ‑ test_compression[echo_serialize-auto]
distributed.tests.test_core ‑ test_compression[echo_serialize-lz4]
distributed.tests.test_core ‑ test_compression[echo_serialize-snappy]
distributed.tests.test_core ‑ test_compression[echo_serialize-zlib]
distributed.tests.test_core ‑ test_compression[echo_serialize-zstd]
distributed.tests.test_core ‑ test_connect_raises
distributed.tests.test_core ‑ test_connection_pool
distributed.tests.test_core ‑ test_connection_pool_catch_all_cancellederrors
distributed.tests.test_core ‑ test_connection_pool_close_while_connecting
distributed.tests.test_core ‑ test_connection_pool_detects_remote_close
distributed.tests.test_core ‑ test_connection_pool_outside_cancellation
distributed.tests.test_core ‑ test_connection_pool_remove
distributed.tests.test_core ‑ test_connection_pool_respects_limit
distributed.tests.test_core ‑ test_connection_pool_tls
distributed.tests.test_core ‑ test_counters
distributed.tests.test_core ‑ test_deserialize_error
distributed.tests.test_core ‑ test_errors
distributed.tests.test_core ‑ test_expects_comm
distributed.tests.test_core ‑ test_identity_inproc
distributed.tests.test_core ‑ test_identity_tcp
distributed.tests.test_core ‑ test_large_packets_inproc
distributed.tests.test_core ‑ test_large_packets_tcp
distributed.tests.test_core ‑ test_large_payload
distributed.tests.test_core ‑ test_messages_are_ordered_bsend
distributed.tests.test_core ‑ test_messages_are_ordered_raw
distributed.tests.test_core ‑ test_ports
distributed.tests.test_core ‑ test_remove_cancels_connect_attempts
distributed.tests.test_core ‑ test_remove_cancels_connect_before_task_running
distributed.tests.test_core ‑ test_rpc_closed_exception
distributed.tests.test_core ‑ test_rpc_default
distributed.tests.test_core ‑ test_rpc_inproc
distributed.tests.test_core ‑ test_rpc_inputs
distributed.tests.test_core ‑ test_rpc_message_lifetime_default
distributed.tests.test_core ‑ test_rpc_message_lifetime_inproc
distributed.tests.test_core ‑ test_rpc_message_lifetime_tcp
distributed.tests.test_core ‑ test_rpc_serialization
distributed.tests.test_core ‑ test_rpc_tcp
distributed.tests.test_core ‑ test_rpc_tls
distributed.tests.test_core ‑ test_rpc_with_many_connections_inproc
distributed.tests.test_core ‑ test_rpc_with_many_connections_tcp
distributed.tests.test_core ‑ test_send_recv_args
distributed.tests.test_core ‑ test_send_recv_cancelled
distributed.tests.test_core ‑ test_server
distributed.tests.test_core ‑ test_server_assign_assign_enum_is_quiet
distributed.tests.test_core ‑ test_server_close_stops_gil_monitoring
distributed.tests.test_core ‑ test_server_comms_mark_active_handlers
distributed.tests.test_core ‑ test_server_listen
distributed.tests.test_core ‑ test_server_raises_on_blocked_handlers
distributed.tests.test_core ‑ test_server_redundant_kwarg
distributed.tests.test_core ‑ test_server_status_compare_enum_is_quiet
distributed.tests.test_core ‑ test_server_status_is_always_enum
distributed.tests.test_core ‑ test_server_sys_path_local_directory_cleanup
distributed.tests.test_core ‑ test_thread_id
distributed.tests.test_core ‑ test_tick_logging
distributed.tests.test_core ‑ test_ticks
distributed.tests.test_counter ‑ test_counter
distributed.tests.test_counter ‑ test_digest[Counter-<lambda>]
distributed.tests.test_counter ‑ test_digest[Digest-<lambda>]
distributed.tests.test_counter ‑ test_digest[None-<lambda>]
distributed.tests.test_dask_collections
distributed.tests.test_dask_collections ‑ test_bag_groupby_key_hashing
distributed.tests.test_dask_collections ‑ test_bag_groupby_tasks_default
distributed.tests.test_dask_collections ‑ test_dask_array_collections
distributed.tests.test_dask_collections ‑ test_dataframe_groupby_tasks
distributed.tests.test_dask_collections ‑ test_dataframe_set_index_sync[<lambda>]
distributed.tests.test_dask_collections ‑ test_dataframe_set_index_sync[wait]
distributed.tests.test_dask_collections ‑ test_dataframes
distributed.tests.test_dask_collections ‑ test_delayed_none
distributed.tests.test_dask_collections ‑ test_loc
distributed.tests.test_dask_collections ‑ test_loc_sync
distributed.tests.test_dask_collections ‑ test_rolling_sync
distributed.tests.test_dask_collections ‑ test_sparse_arrays
distributed.tests.test_dask_collections ‑ test_tuple_futures_arg[list]
distributed.tests.test_dask_collections ‑ test_tuple_futures_arg[tuple]
distributed.tests.test_deadline ‑ test_deadline
distributed.tests.test_deadline ‑ test_deadline_expiration
distributed.tests.test_deadline ‑ test_deadline_expiration_async
distributed.tests.test_deadline ‑ test_deadline_progress
distributed.tests.test_deadline ‑ test_infinite_deadline
distributed.tests.test_diskutils ‑ test_locking_disabled
distributed.tests.test_diskutils ‑ test_two_workspaces_in_same_directory
distributed.tests.test_diskutils ‑ test_unwritable_base_dir
distributed.tests.test_diskutils ‑ test_workdir_simple
distributed.tests.test_diskutils ‑ test_workspace_concurrency
distributed.tests.test_diskutils ‑ test_workspace_process_crash
distributed.tests.test_diskutils ‑ test_workspace_rmtree_failure
distributed.tests.test_event_logging ‑ test_configurable_events_log_length
distributed.tests.test_event_logging ‑ test_events_all_servers_use_same_channel
distributed.tests.test_event_logging ‑ test_events_subscribe_topic
distributed.tests.test_event_logging ‑ test_events_subscribe_topic_cancelled
distributed.tests.test_event_logging ‑ test_events_unsubscribe_raises_if_unknown
distributed.tests.test_event_logging ‑ test_log_event
distributed.tests.test_event_logging ‑ test_log_event_e2e
distributed.tests.test_event_logging ‑ test_log_event_msgpack
distributed.tests.test_event_logging ‑ test_log_event_multiple_clients
distributed.tests.test_event_logging ‑ test_log_event_on_nanny
distributed.tests.test_event_logging ‑ test_log_event_on_worker
distributed.tests.test_event_logging ‑ test_log_event_plugin
distributed.tests.test_event_logging ‑ test_log_event_plugin_multiple_topics
distributed.tests.test_event_logging ‑ test_log_events
distributed.tests.test_event_logging ‑ test_topic_subscribe_unsubscribe
distributed.tests.test_events ‑ test_default_event
distributed.tests.test_events ‑ test_event_on_workers
distributed.tests.test_events ‑ test_event_sync
distributed.tests.test_events ‑ test_event_types
distributed.tests.test_events ‑ test_serializable
distributed.tests.test_events ‑ test_set_not_set
distributed.tests.test_events ‑ test_set_not_set_many_events
distributed.tests.test_events ‑ test_timeout
distributed.tests.test_events ‑ test_two_events_on_workers
distributed.tests.test_events ‑ test_unpickle_without_client
distributed.tests.test_failed_workers ‑ test_broken_worker_during_computation
distributed.tests.test_failed_workers ‑ test_failing_worker_with_additional_replicas_on_cluster
distributed.tests.test_failed_workers ‑ test_forget_data_not_supposed_to_have
distributed.tests.test_failed_workers ‑ test_forgotten_futures_dont_clean_up_new_futures
distributed.tests.test_failed_workers ‑ test_gather_after_failed_worker
distributed.tests.test_failed_workers ‑ test_gather_then_submit_after_failed_workers
distributed.tests.test_failed_workers ‑ test_multiple_clients_restart
distributed.tests.test_failed_workers ‑ test_restart
distributed.tests.test_failed_workers ‑ test_restart_cleared
distributed.tests.test_failed_workers ‑ test_restart_during_computation
distributed.tests.test_failed_workers ‑ test_restart_hung_worker
distributed.tests.test_failed_workers ‑ test_restart_scheduler
distributed.tests.test_failed_workers ‑ test_restart_sync
distributed.tests.test_failed_workers ‑ test_restart_timeout_on_long_running_task
distributed.tests.test_failed_workers ‑ test_submit_after_failed_worker
distributed.tests.test_failed_workers ‑ test_submit_after_failed_worker_async[False-False-closed]
distributed.tests.test_failed_workers ‑ test_submit_after_failed_worker_async[False-False-closing]
distributed.tests.test_failed_workers ‑ test_submit_after_failed_worker_async[False-True-closed]
distributed.tests.test_failed_workers ‑ test_submit_after_failed_worker_async[False-True-closing]
distributed.tests.test_failed_workers ‑ test_submit_after_failed_worker_async[True-False-closed]
distributed.tests.test_failed_workers ‑ test_submit_after_failed_worker_async[True-False-closing]
distributed.tests.test_failed_workers ‑ test_submit_after_failed_worker_async[True-True-closed]
distributed.tests.test_failed_workers ‑ test_submit_after_failed_worker_async[True-True-closing]
distributed.tests.test_failed_workers ‑ test_submit_after_failed_worker_sync
distributed.tests.test_failed_workers ‑ test_worker_doesnt_await_task_completion
distributed.tests.test_failed_workers ‑ test_worker_same_host_replicas_missing
distributed.tests.test_failed_workers ‑ test_worker_time_to_live
distributed.tests.test_failed_workers ‑ test_worker_ttl_restarts_worker[False]
distributed.tests.test_failed_workers ‑ test_worker_ttl_restarts_worker[True]
distributed.tests.test_failed_workers ‑ test_worker_who_has_clears_after_failed_connection
distributed.tests.test_gc ‑ test_fractional_timer
distributed.tests.test_gc ‑ test_gc_diagnosis_cpu_time
distributed.tests.test_gc ‑ test_gc_diagnosis_rss_win
distributed.tests.test_imports ‑ test_can_import_distributed_in_background_thread
distributed.tests.test_init ‑ test_git_revision
distributed.tests.test_init ‑ test_version
distributed.tests.test_itertools ‑ test_ffill
distributed.tests.test_jupyter
distributed.tests.test_jupyter ‑ test_jupyter_cli
distributed.tests.test_jupyter ‑ test_jupyter_idle_timeout
distributed.tests.test_jupyter ‑ test_jupyter_idle_timeout_returned
distributed.tests.test_jupyter ‑ test_jupyter_server
distributed.tests.test_jupyter ‑ test_shutsdown_cleanly
distributed.tests.test_locks ‑ test_acquires_blocking
distributed.tests.test_locks ‑ test_acquires_with_zero_timeout
distributed.tests.test_locks ‑ test_errors
distributed.tests.test_locks ‑ test_lock
distributed.tests.test_locks ‑ test_lock_sync
distributed.tests.test_locks ‑ test_lock_types
distributed.tests.test_locks ‑ test_locks
distributed.tests.test_locks ‑ test_locks_inf_lease_timeout
distributed.tests.test_locks ‑ test_serializable
distributed.tests.test_locks ‑ test_serializable_no_ctx
distributed.tests.test_locks ‑ test_timeout
distributed.tests.test_locks ‑ test_timeout_sync
distributed.tests.test_metrics ‑ test_context_meter
distributed.tests.test_metrics ‑ test_context_meter_allow_offload
distributed.tests.test_metrics ‑ test_context_meter_clear_callbacks
distributed.tests.test_metrics ‑ test_context_meter_clear_callbacks_raises
distributed.tests.test_metrics ‑ test_context_meter_decorator
distributed.tests.test_metrics ‑ test_context_meter_keyed
distributed.tests.test_metrics ‑ test_context_meter_nested
distributed.tests.test_metrics ‑ test_context_meter_nested_floor
distributed.tests.test_metrics ‑ test_context_meter_pickle
distributed.tests.test_metrics ‑ test_context_meter_raise
distributed.tests.test_metrics ‑ test_delayed_metrics_ledger
distributed.tests.test_metrics ‑ test_delayed_metrics_ledger_keyed
distributed.tests.test_metrics ‑ test_meter
distributed.tests.test_metrics ‑ test_meter_floor[kwargs0-0]
distributed.tests.test_metrics ‑ test_meter_floor[kwargs1-0.1]
distributed.tests.test_metrics ‑ test_meter_floor[kwargs2--1]
distributed.tests.test_metrics ‑ test_meter_raise
distributed.tests.test_metrics ‑ test_monotonic
distributed.tests.test_metrics ‑ test_wall_clock[monotonic]
distributed.tests.test_metrics ‑ test_wall_clock[time]
distributed.tests.test_multi_locks ‑ test_multiple_locks
distributed.tests.test_multi_locks ‑ test_num_locks
distributed.tests.test_multi_locks ‑ test_single_lock
distributed.tests.test_multi_locks ‑ test_timeout
distributed.tests.test_multi_locks ‑ test_timeout_wake_waiter
distributed.tests.test_nanny ‑ test_close_joins
distributed.tests.test_nanny ‑ test_close_on_disconnect
distributed.tests.test_nanny ‑ test_config
distributed.tests.test_nanny ‑ test_config_param_overlays
distributed.tests.test_nanny ‑ test_default_client_does_not_propagate_to_subprocess
distributed.tests.test_nanny ‑ test_environ_plugin
distributed.tests.test_nanny ‑ test_environment_variable
distributed.tests.test_nanny ‑ test_environment_variable_by_config
distributed.tests.test_nanny ‑ test_environment_variable_config
distributed.tests.test_nanny ‑ test_environment_variable_overlay
distributed.tests.test_nanny ‑ test_environment_variable_pre_post_spawn
distributed.tests.test_nanny ‑ test_failure_during_worker_initialization
distributed.tests.test_nanny ‑ test_lifetime
distributed.tests.test_nanny ‑ test_local_directory
distributed.tests.test_nanny ‑ test_malloc_trim_threshold
distributed.tests.test_nanny ‑ test_mp_pool_worker_no_daemon
distributed.tests.test_nanny ‑ test_mp_process_worker_no_daemon
distributed.tests.test_nanny ‑ test_nanny_alt_worker_class
distributed.tests.test_nanny ‑ test_nanny_closed_by_keyboard_interrupt[tcp]
distributed.tests.test_nanny ‑ test_nanny_closed_by_keyboard_interrupt[ucx]
distributed.tests.test_nanny ‑ test_nanny_closes_cleanly
distributed.tests.test_nanny ‑ test_nanny_closes_cleanly_if_worker_is_terminated
distributed.tests.test_nanny ‑ test_nanny_death_timeout
distributed.tests.test_nanny ‑ test_nanny_plugin_register_during_start_failure[False]
distributed.tests.test_nanny ‑ test_nanny_plugin_register_during_start_failure[True]
distributed.tests.test_nanny ‑ test_nanny_plugin_register_during_start_success[False]
distributed.tests.test_nanny ‑ test_nanny_plugin_register_during_start_success[True]
distributed.tests.test_nanny ‑ test_nanny_plugin_register_nanny_killed[False]
distributed.tests.test_nanny ‑ test_nanny_plugin_register_nanny_killed[True]
distributed.tests.test_nanny ‑ test_nanny_plugin_simple
distributed.tests.test_nanny ‑ test_nanny_port_range
distributed.tests.test_nanny ‑ test_nanny_process_failure
distributed.tests.test_nanny ‑ test_nanny_restart
distributed.tests.test_nanny ‑ test_nanny_restart_timeout
distributed.tests.test_nanny ‑ test_nanny_restart_timeout_stress
distributed.tests.test_nanny ‑ test_nanny_worker_class
distributed.tests.test_nanny ‑ test_no_hang_when_scheduler_closes
distributed.tests.test_nanny ‑ test_no_unnecessary_imports_on_worker[pandas]
distributed.tests.test_nanny ‑ test_no_unnecessary_imports_on_worker[scipy]
distributed.tests.test_nanny ‑ test_num_fds
distributed.tests.test_nanny ‑ test_random_seed
distributed.tests.test_nanny ‑ test_repeated_restarts
distributed.tests.test_nanny ‑ test_restart_memory
distributed.tests.test_nanny ‑ test_run
distributed.tests.test_nanny ‑ test_scheduler_address_config
distributed.tests.test_nanny ‑ test_scheduler_crash_doesnt_restart
distributed.tests.test_nanny ‑ test_scheduler_file
distributed.tests.test_nanny ‑ test_str
distributed.tests.test_nanny ‑ test_throttle_outgoing_transfers
distributed.tests.test_nanny ‑ test_unwriteable_dask_worker_space
distributed.tests.test_nanny ‑ test_wait_for_scheduler
distributed.tests.test_nanny ‑ test_worker_inherits_temp_config
distributed.tests.test_nanny ‑ test_worker_start_exception
distributed.tests.test_nanny ‑ test_worker_start_exception_while_killing
distributed.tests.test_nanny ‑ test_worker_uses_same_host_as_nanny
distributed.tests.test_parse_stdout ‑ test_build_xml
distributed.tests.test_parse_stdout ‑ test_parse_rows
distributed.tests.test_preload ‑ test_client_preload_click
distributed.tests.test_preload ‑ test_client_preload_config
distributed.tests.test_preload ‑ test_client_preload_config_click
distributed.tests.test_preload ‑ test_client_preload_text
distributed.tests.test_preload ‑ test_failure_doesnt_crash_client
distributed.tests.test_preload ‑ test_failure_doesnt_crash_nanny
distributed.tests.test_preload ‑ test_failure_doesnt_crash_scheduler
distributed.tests.test_preload ‑ test_failure_doesnt_crash_worker
distributed.tests.test_preload ‑ test_preload_import_time
distributed.tests.test_preload ‑ test_preload_manager_sequence
distributed.tests.test_preload ‑ test_scheduler_startup
distributed.tests.test_preload ‑ test_scheduler_startup_nanny
distributed.tests.test_preload ‑ test_web_preload
distributed.tests.test_preload ‑ test_web_preload_worker
distributed.tests.test_preload ‑ test_worker_preload_click
distributed.tests.test_preload ‑ test_worker_preload_click_async
distributed.tests.test_preload ‑ test_worker_preload_config
distributed.tests.test_preload ‑ test_worker_preload_file
distributed.tests.test_preload ‑ test_worker_preload_module
distributed.tests.test_preload ‑ test_worker_preload_text
distributed.tests.test_priorities ‑ test_annotate_compute[queue on scheduler]
distributed.tests.test_priorities ‑ test_annotate_compute[queue on worker]
distributed.tests.test_priorities ‑ test_annotate_persist[queue on scheduler]
distributed.tests.test_priorities ‑ test_annotate_persist[queue on worker]
distributed.tests.test_priorities ‑ test_compute[queue on scheduler]
distributed.tests.test_priorities ‑ test_compute[queue on worker]
distributed.tests.test_priorities ‑ test_last_in_first_out[queue on scheduler]
distributed.tests.test_priorities ‑ test_last_in_first_out[queue on worker]
distributed.tests.test_priorities ‑ test_map[queue on scheduler]
distributed.tests.test_priorities ‑ test_map[queue on worker]
distributed.tests.test_priorities ‑ test_persist[queue on scheduler]
distributed.tests.test_priorities ‑ test_persist[queue on worker]
distributed.tests.test_priorities ‑ test_repeated_persists_same_priority[queue on scheduler]
distributed.tests.test_priorities ‑ test_repeated_persists_same_priority[queue on worker]
distributed.tests.test_priorities ‑ test_submit[queue on scheduler]
Check notice on line 0 in .github
github-actions / Unit Test Results
4130 tests found (test 2618 to 3547)
There are 4130 tests, see "Raw output" for the list of tests 2618 to 3547.
Raw output
distributed.tests.test_priorities ‑ test_submit[queue on worker]
distributed.tests.test_profile ‑ test_basic
distributed.tests.test_profile ‑ test_basic_low_level
distributed.tests.test_profile ‑ test_builtin
distributed.tests.test_profile ‑ test_call_stack
distributed.tests.test_profile ‑ test_call_stack_f_lineno[-1-1]
distributed.tests.test_profile ‑ test_call_stack_f_lineno[0-2]
distributed.tests.test_profile ‑ test_call_stack_f_lineno[1-2]
distributed.tests.test_profile ‑ test_call_stack_f_lineno[100-2]
distributed.tests.test_profile ‑ test_call_stack_f_lineno[11-2]
distributed.tests.test_profile ‑ test_call_stack_f_lineno[12-3]
distributed.tests.test_profile ‑ test_call_stack_f_lineno[21-4]
distributed.tests.test_profile ‑ test_call_stack_f_lineno[22-4]
distributed.tests.test_profile ‑ test_call_stack_f_lineno[23-4]
distributed.tests.test_profile ‑ test_call_stack_f_lineno[24-2]
distributed.tests.test_profile ‑ test_call_stack_f_lineno[25-2]
distributed.tests.test_profile ‑ test_call_stack_f_lineno[26-2]
distributed.tests.test_profile ‑ test_call_stack_f_lineno[27-2]
distributed.tests.test_profile ‑ test_identifier
distributed.tests.test_profile ‑ test_info_frame_f_lineno[-1-1]
distributed.tests.test_profile ‑ test_info_frame_f_lineno[0-2]
distributed.tests.test_profile ‑ test_info_frame_f_lineno[1-2]
distributed.tests.test_profile ‑ test_info_frame_f_lineno[100-2]
distributed.tests.test_profile ‑ test_info_frame_f_lineno[11-2]
distributed.tests.test_profile ‑ test_info_frame_f_lineno[12-3]
distributed.tests.test_profile ‑ test_info_frame_f_lineno[21-4]
distributed.tests.test_profile ‑ test_info_frame_f_lineno[22-4]
distributed.tests.test_profile ‑ test_info_frame_f_lineno[23-4]
distributed.tests.test_profile ‑ test_info_frame_f_lineno[24-2]
distributed.tests.test_profile ‑ test_info_frame_f_lineno[25-2]
distributed.tests.test_profile ‑ test_info_frame_f_lineno[26-2]
distributed.tests.test_profile ‑ test_info_frame_f_lineno[27-2]
distributed.tests.test_profile ‑ test_merge
distributed.tests.test_profile ‑ test_merge_empty
distributed.tests.test_profile ‑ test_stack_overflow
distributed.tests.test_profile ‑ test_watch
distributed.tests.test_profile ‑ test_watch_requires_lock_to_run
distributed.tests.test_publish ‑ test_datasets_async
distributed.tests.test_publish ‑ test_datasets_contains
distributed.tests.test_publish ‑ test_datasets_delitem
distributed.tests.test_publish ‑ test_datasets_getitem
distributed.tests.test_publish ‑ test_datasets_getitem_default
distributed.tests.test_publish ‑ test_datasets_iter
distributed.tests.test_publish ‑ test_datasets_keys
distributed.tests.test_publish ‑ test_datasets_republish
distributed.tests.test_publish ‑ test_datasets_setitem
distributed.tests.test_publish ‑ test_deserialize_client
distributed.tests.test_publish ‑ test_pickle_safe
distributed.tests.test_publish ‑ test_publish_bag
distributed.tests.test_publish ‑ test_publish_multiple_datasets
distributed.tests.test_publish ‑ test_publish_non_string_key
distributed.tests.test_publish ‑ test_publish_roundtrip
distributed.tests.test_publish ‑ test_publish_simple
distributed.tests.test_publish ‑ test_publish_submit_ordering
distributed.tests.test_publish ‑ test_unpublish
distributed.tests.test_publish ‑ test_unpublish_multiple_datasets_sync
distributed.tests.test_publish ‑ test_unpublish_sync
distributed.tests.test_pubsub ‑ test_basic
distributed.tests.test_pubsub ‑ test_client
distributed.tests.test_pubsub ‑ test_client_worker
distributed.tests.test_pubsub ‑ test_repr
distributed.tests.test_pubsub ‑ test_speed
distributed.tests.test_pubsub ‑ test_timeouts
distributed.tests.test_queues ‑ test_2220
distributed.tests.test_queues ‑ test_Future_knows_status_immediately
distributed.tests.test_queues ‑ test_close
distributed.tests.test_queues ‑ test_erred_future
distributed.tests.test_queues ‑ test_get_many
distributed.tests.test_queues ‑ test_hold_futures
distributed.tests.test_queues ‑ test_picklability
distributed.tests.test_queues ‑ test_picklability_sync
distributed.tests.test_queues ‑ test_queue
distributed.tests.test_queues ‑ test_queue_in_task
distributed.tests.test_queues ‑ test_queue_with_data
distributed.tests.test_queues ‑ test_race
distributed.tests.test_queues ‑ test_same_futures
distributed.tests.test_queues ‑ test_set_cancelled_future
distributed.tests.test_queues ‑ test_sync
distributed.tests.test_queues ‑ test_timeout
distributed.tests.test_queues ‑ test_unpickle_without_client
distributed.tests.test_reschedule ‑ test_cancelled_reschedule[executing]
distributed.tests.test_reschedule ‑ test_cancelled_reschedule[long-running]
distributed.tests.test_reschedule ‑ test_cancelled_reschedule_worker_state[executing]
distributed.tests.test_reschedule ‑ test_cancelled_reschedule_worker_state[long-running]
distributed.tests.test_reschedule ‑ test_raise_reschedule[executing]
distributed.tests.test_reschedule ‑ test_raise_reschedule[long-running]
distributed.tests.test_reschedule ‑ test_reschedule_cancelled[executing]
distributed.tests.test_reschedule ‑ test_reschedule_cancelled[long-running]
distributed.tests.test_reschedule ‑ test_reschedule_releases[executing]
distributed.tests.test_reschedule ‑ test_reschedule_releases[long-running]
distributed.tests.test_reschedule ‑ test_reschedule_resumed[executing]
distributed.tests.test_reschedule ‑ test_reschedule_resumed[long-running]
distributed.tests.test_reschedule ‑ test_scheduler_reschedule_warns
distributed.tests.test_resources ‑ test_balance_resources
distributed.tests.test_resources ‑ test_cancelled_with_resources[executing-ExecuteFailureEvent]
distributed.tests.test_resources ‑ test_cancelled_with_resources[executing-ExecuteSuccessEvent]
distributed.tests.test_resources ‑ test_cancelled_with_resources[executing-RescheduleEvent]
distributed.tests.test_resources ‑ test_cancelled_with_resources[long-running-ExecuteFailureEvent]
distributed.tests.test_resources ‑ test_cancelled_with_resources[long-running-ExecuteSuccessEvent]
distributed.tests.test_resources ‑ test_cancelled_with_resources[long-running-RescheduleEvent]
distributed.tests.test_resources ‑ test_collections_get[False]
distributed.tests.test_resources ‑ test_collections_get[True]
distributed.tests.test_resources ‑ test_compute
distributed.tests.test_resources ‑ test_constrained_tasks_respect_priority
distributed.tests.test_resources ‑ test_constrained_vs_ready_priority_1[0-1-x-False]
distributed.tests.test_resources ‑ test_constrained_vs_ready_priority_1[0-1-x-True]
distributed.tests.test_resources ‑ test_constrained_vs_ready_priority_1[1-0-y-False]
distributed.tests.test_resources ‑ test_constrained_vs_ready_priority_1[1-0-y-True]
distributed.tests.test_resources ‑ test_constrained_vs_ready_priority_2[0-1-x-False]
distributed.tests.test_resources ‑ test_constrained_vs_ready_priority_2[0-1-x-True]
distributed.tests.test_resources ‑ test_constrained_vs_ready_priority_2[1-0-y-False]
distributed.tests.test_resources ‑ test_constrained_vs_ready_priority_2[1-0-y-True]
distributed.tests.test_resources ‑ test_dont_optimize_out
distributed.tests.test_resources ‑ test_dont_work_steal
distributed.tests.test_resources ‑ test_full_collections
distributed.tests.test_resources ‑ test_get
distributed.tests.test_resources ‑ test_map
distributed.tests.test_resources ‑ test_minimum_resource
distributed.tests.test_resources ‑ test_move
distributed.tests.test_resources ‑ test_persist
distributed.tests.test_resources ‑ test_persist_collections
distributed.tests.test_resources ‑ test_persist_multiple_collections
distributed.tests.test_resources ‑ test_resource_submit
distributed.tests.test_resources ‑ test_resources_from_config
distributed.tests.test_resources ‑ test_resources_from_python_override_config
distributed.tests.test_resources ‑ test_resources_str
distributed.tests.test_resources ‑ test_resumed_with_different_resources[executing-ExecuteFailureEvent]
distributed.tests.test_resources ‑ test_resumed_with_different_resources[executing-ExecuteSuccessEvent]
distributed.tests.test_resources ‑ test_resumed_with_different_resources[executing-RescheduleEvent]
distributed.tests.test_resources ‑ test_resumed_with_different_resources[long-running-ExecuteFailureEvent]
distributed.tests.test_resources ‑ test_resumed_with_different_resources[long-running-ExecuteSuccessEvent]
distributed.tests.test_resources ‑ test_resumed_with_different_resources[long-running-RescheduleEvent]
distributed.tests.test_resources ‑ test_resumed_with_resources[executing-ExecuteFailureEvent]
distributed.tests.test_resources ‑ test_resumed_with_resources[executing-ExecuteSuccessEvent]
distributed.tests.test_resources ‑ test_resumed_with_resources[executing-RescheduleEvent]
distributed.tests.test_resources ‑ test_resumed_with_resources[long-running-ExecuteFailureEvent]
distributed.tests.test_resources ‑ test_resumed_with_resources[long-running-ExecuteSuccessEvent]
distributed.tests.test_resources ‑ test_resumed_with_resources[long-running-RescheduleEvent]
distributed.tests.test_resources ‑ test_set_resources
distributed.tests.test_resources ‑ test_submit_many_non_overlapping
distributed.tests.test_resources ‑ test_submit_many_non_overlapping_2
distributed.tests.test_resources ‑ test_task_cancelled_and_readded_with_resources
distributed.tests.test_scheduler ‑ test_KilledWorker_informative_message
distributed.tests.test_scheduler ‑ test_Scheduler__to_dict
distributed.tests.test_scheduler ‑ test_TaskState__to_dict
distributed.tests.test_scheduler ‑ test_adaptive_target
distributed.tests.test_scheduler ‑ test_adaptive_target_empty_cluster[False]
distributed.tests.test_scheduler ‑ test_adaptive_target_empty_cluster[True]
distributed.tests.test_scheduler ‑ test_add_worker
distributed.tests.test_scheduler ‑ test_administration
distributed.tests.test_scheduler ‑ test_alias_resolving_break_queuing
distributed.tests.test_scheduler ‑ test_allow_pickle_false
distributed.tests.test_scheduler ‑ test_allowed_failures_config
distributed.tests.test_scheduler ‑ test_async_context_manager
distributed.tests.test_scheduler ‑ test_avoid_paused_workers
distributed.tests.test_scheduler ‑ test_bad_saturation_factor
distributed.tests.test_scheduler ‑ test_balance_many_workers
distributed.tests.test_scheduler ‑ test_balance_many_workers_2
distributed.tests.test_scheduler ‑ test_balance_with_restrictions
distributed.tests.test_scheduler ‑ test_bandwidth
distributed.tests.test_scheduler ‑ test_bandwidth_clear
distributed.tests.test_scheduler ‑ test_blocked_handlers_are_respected
distributed.tests.test_scheduler ‑ test_broadcast
distributed.tests.test_scheduler ‑ test_broadcast_deprecation
distributed.tests.test_scheduler ‑ test_broadcast_nanny
distributed.tests.test_scheduler ‑ test_broadcast_on_error
distributed.tests.test_scheduler ‑ test_broadcast_tls
distributed.tests.test_scheduler ‑ test_cancel_fire_and_forget
distributed.tests.test_scheduler ‑ test_clear_events_client_removal
distributed.tests.test_scheduler ‑ test_clear_events_worker_removal
distributed.tests.test_scheduler ‑ test_close_nanny
distributed.tests.test_scheduler ‑ test_close_scheduler__close_workers_Nanny
distributed.tests.test_scheduler ‑ test_close_scheduler__close_workers_Worker
distributed.tests.test_scheduler ‑ test_close_worker
distributed.tests.test_scheduler ‑ test_close_workers
distributed.tests.test_scheduler ‑ test_closing_scheduler_closes_workers
distributed.tests.test_scheduler ‑ test_coerce_address
distributed.tests.test_scheduler ‑ test_collect_versions
distributed.tests.test_scheduler ‑ test_concurrent_close_requests
distributed.tests.test_scheduler ‑ test_config_no_stealing
distributed.tests.test_scheduler ‑ test_config_stealing
distributed.tests.test_scheduler ‑ test_count_task_prefix
distributed.tests.test_scheduler ‑ test_dashboard_address
distributed.tests.test_scheduler ‑ test_dashboard_host[127.0.0.1:0-expect1-tcp://0.0.0.0]
distributed.tests.test_scheduler ‑ test_dashboard_host[127.0.0.1:0-expect1-tcp://127.0.0.1:38275]
distributed.tests.test_scheduler ‑ test_dashboard_host[127.0.0.1:0-expect1-tcp://127.0.0.1]
distributed.tests.test_scheduler ‑ test_dashboard_host[None-expect0-tcp://0.0.0.0]
distributed.tests.test_scheduler ‑ test_dashboard_host[None-expect0-tcp://127.0.0.1:38275]
distributed.tests.test_scheduler ‑ test_dashboard_host[None-expect0-tcp://127.0.0.1]
distributed.tests.test_scheduler ‑ test_deadlock_dependency_of_queued_released_when_worker_removed[False]
distributed.tests.test_scheduler ‑ test_deadlock_dependency_of_queued_released_when_worker_removed[True]
distributed.tests.test_scheduler ‑ test_deadlock_dependency_of_queued_released_when_worker_replaced[False]
distributed.tests.test_scheduler ‑ test_deadlock_dependency_of_queued_released_when_worker_replaced[True]
distributed.tests.test_scheduler ‑ test_deadlock_resubmit_queued_tasks_fast[False]
distributed.tests.test_scheduler ‑ test_deadlock_resubmit_queued_tasks_fast[True]
distributed.tests.test_scheduler ‑ test_decide_worker_coschedule_order_neighbors[nthreads0-0]
distributed.tests.test_scheduler ‑ test_decide_worker_coschedule_order_neighbors[nthreads0-1]
distributed.tests.test_scheduler ‑ test_decide_worker_coschedule_order_neighbors[nthreads0-4]
distributed.tests.test_scheduler ‑ test_decide_worker_coschedule_order_neighbors[nthreads1-0]
distributed.tests.test_scheduler ‑ test_decide_worker_coschedule_order_neighbors[nthreads1-1]
distributed.tests.test_scheduler ‑ test_decide_worker_coschedule_order_neighbors[nthreads1-4]
distributed.tests.test_scheduler ‑ test_decide_worker_rootish_while_last_worker_is_retiring
distributed.tests.test_scheduler ‑ test_decide_worker_with_many_independent_leaves
distributed.tests.test_scheduler ‑ test_decide_worker_with_restrictions
distributed.tests.test_scheduler ‑ test_default_task_duration_splits
distributed.tests.test_scheduler ‑ test_delete
distributed.tests.test_scheduler ‑ test_delete_data
distributed.tests.test_scheduler ‑ test_delete_worker_data
distributed.tests.test_scheduler ‑ test_delete_worker_data_bad_task[False]
distributed.tests.test_scheduler ‑ test_delete_worker_data_bad_task[True]
distributed.tests.test_scheduler ‑ test_delete_worker_data_bad_worker
distributed.tests.test_scheduler ‑ test_delete_worker_data_double_delete
distributed.tests.test_scheduler ‑ test_deque_handler
distributed.tests.test_scheduler ‑ test_disable_transition_counter_max
distributed.tests.test_scheduler ‑ test_dont_forget_released_keys
distributed.tests.test_scheduler ‑ test_dont_recompute_if_erred
distributed.tests.test_scheduler ‑ test_dont_recompute_if_persisted
distributed.tests.test_scheduler ‑ test_dont_recompute_if_persisted_2
distributed.tests.test_scheduler ‑ test_dont_recompute_if_persisted_3
distributed.tests.test_scheduler ‑ test_dont_recompute_if_persisted_4
distributed.tests.test_scheduler ‑ test_dump_cluster_state[msgpack]
distributed.tests.test_scheduler ‑ test_dump_cluster_state[yaml]
distributed.tests.test_scheduler ‑ test_dumps_function
distributed.tests.test_scheduler ‑ test_ensure_events_dont_include_taskstate_objects
distributed.tests.test_scheduler ‑ test_failing_task_increments_suspicious
distributed.tests.test_scheduler ‑ test_fan_out_pattern_deadlock
distributed.tests.test_scheduler ‑ test_feed
distributed.tests.test_scheduler ‑ test_feed_large_bytestring
distributed.tests.test_scheduler ‑ test_feed_setup_teardown
distributed.tests.test_scheduler ‑ test_fifo_submission
distributed.tests.test_scheduler ‑ test_file_descriptors
distributed.tests.test_scheduler ‑ test_file_descriptors_dont_leak
distributed.tests.test_scheduler ‑ test_finished
distributed.tests.test_scheduler ‑ test_forget_tasks_while_processing
distributed.tests.test_scheduler ‑ test_gather_bad_worker[False]
distributed.tests.test_scheduler ‑ test_gather_bad_worker[True]
distributed.tests.test_scheduler ‑ test_gather_failing_can_recover
distributed.tests.test_scheduler ‑ test_gather_failing_cnn_error
distributed.tests.test_scheduler ‑ test_gather_no_workers
distributed.tests.test_scheduler ‑ test_gather_on_worker
distributed.tests.test_scheduler ‑ test_gather_on_worker_bad_recipient
distributed.tests.test_scheduler ‑ test_gather_on_worker_bad_sender
distributed.tests.test_scheduler ‑ test_gather_on_worker_bad_sender_replicated[False]
distributed.tests.test_scheduler ‑ test_gather_on_worker_bad_sender_replicated[True]
distributed.tests.test_scheduler ‑ test_gather_on_worker_duplicate_task
distributed.tests.test_scheduler ‑ test_gather_on_worker_key_not_on_sender
distributed.tests.test_scheduler ‑ test_gather_on_worker_key_not_on_sender_replicated[False]
distributed.tests.test_scheduler ‑ test_gather_on_worker_key_not_on_sender_replicated[True]
distributed.tests.test_scheduler ‑ test_get_cluster_state
distributed.tests.test_scheduler ‑ test_get_cluster_state_worker_error
distributed.tests.test_scheduler ‑ test_get_task_duration
distributed.tests.test_scheduler ‑ test_get_task_status
distributed.tests.test_scheduler ‑ test_get_worker_monitor_info
distributed.tests.test_scheduler ‑ test_gh2187
distributed.tests.test_scheduler ‑ test_graph_execution_width
distributed.tests.test_scheduler ‑ test_host_address
distributed.tests.test_scheduler ‑ test_html_repr
distributed.tests.test_scheduler ‑ test_idle_during_update_graph
distributed.tests.test_scheduler ‑ test_idle_timeout
distributed.tests.test_scheduler ‑ test_idle_timeout_no_workers
distributed.tests.test_scheduler ‑ test_include_communication_in_occupancy
distributed.tests.test_scheduler ‑ test_infrequent_sysmon
distributed.tests.test_scheduler ‑ test_io_loop
distributed.tests.test_scheduler ‑ test_learn_occupancy
distributed.tests.test_scheduler ‑ test_learn_occupancy_2
distributed.tests.test_scheduler ‑ test_log_tasks_during_restart
distributed.tests.test_scheduler ‑ test_memory
distributed.tests.test_scheduler ‑ test_memory_no_workers
distributed.tests.test_scheduler ‑ test_memory_no_zict
distributed.tests.test_scheduler ‑ test_memorystate
distributed.tests.test_scheduler ‑ test_memorystate__to_dict
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-0-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-1-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-2-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[0-3-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-0-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-1-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-2-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[1-3-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-0-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-1-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-2-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[2-3-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-0-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-1-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-2-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-0-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-0-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-0-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-0-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-1-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-1-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-1-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-1-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-2-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-2-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-2-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-2-3]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-3-0]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-3-1]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-3-2]
distributed.tests.test_scheduler ‑ test_memorystate_adds_up[3-3-3-3]
distributed.tests.test_scheduler ‑ test_memorystate_sum
distributed.tests.test_scheduler ‑ test_missing_data_errant_worker
distributed.tests.test_scheduler ‑ test_move_data_over_break_restrictions
distributed.tests.test_scheduler ‑ test_multiple_listeners[{ENV_VAR_MISSING}-dashboard at:\\s*:\\d*]
distributed.tests.test_scheduler ‑ test_multiple_listeners[{scheme}://{host}:{port}/status-dashboard at:\\s*http://]
distributed.tests.test_scheduler ‑ test_no_dangling_asyncio_tasks
distributed.tests.test_scheduler ‑ test_no_valid_workers
distributed.tests.test_scheduler ‑ test_no_valid_workers_loose_restrictions
distributed.tests.test_scheduler ‑ test_no_workers[False]
distributed.tests.test_scheduler ‑ test_no_workers[True]
distributed.tests.test_scheduler ‑ test_no_workers_timeout_bad_restrictions
distributed.tests.test_scheduler ‑ test_no_workers_timeout_disabled
distributed.tests.test_scheduler ‑ test_no_workers_timeout_processing
distributed.tests.test_scheduler ‑ test_no_workers_timeout_queued
distributed.tests.test_scheduler ‑ test_no_workers_timeout_without_workers
distributed.tests.test_scheduler ‑ test_nonempty_data_is_rejected
distributed.tests.test_scheduler ‑ test_profile_metadata
distributed.tests.test_scheduler ‑ test_profile_metadata_keys
distributed.tests.test_scheduler ‑ test_profile_metadata_timeout
distributed.tests.test_scheduler ‑ test_queued_paused_new_worker
distributed.tests.test_scheduler ‑ test_queued_paused_unpaused[False]
distributed.tests.test_scheduler ‑ test_queued_paused_unpaused[True]
distributed.tests.test_scheduler ‑ test_queued_release_multiple_workers
distributed.tests.test_scheduler ‑ test_queued_remove_add_worker
distributed.tests.test_scheduler ‑ test_quiet_cluster_round_robin
distributed.tests.test_scheduler ‑ test_ready_remove_worker[1.0]
distributed.tests.test_scheduler ‑ test_ready_remove_worker[inf]
distributed.tests.test_scheduler ‑ test_rebalance
distributed.tests.test_scheduler ‑ test_rebalance_dead_recipient
distributed.tests.test_scheduler ‑ test_rebalance_least_recently_inserted_sender_min
distributed.tests.test_scheduler ‑ test_rebalance_managed_memory
distributed.tests.test_scheduler ‑ test_rebalance_missing_data1
distributed.tests.test_scheduler ‑ test_rebalance_missing_data2
distributed.tests.test_scheduler ‑ test_rebalance_no_limit
distributed.tests.test_scheduler ‑ test_rebalance_no_recipients
distributed.tests.test_scheduler ‑ test_rebalance_no_workers
distributed.tests.test_scheduler ‑ test_rebalance_raises_missing_data3[False]
distributed.tests.test_scheduler ‑ test_rebalance_raises_missing_data3[True]
distributed.tests.test_scheduler ‑ test_rebalance_sender_below_mean
distributed.tests.test_scheduler ‑ test_rebalance_skip_all_recipients
distributed.tests.test_scheduler ‑ test_rebalance_skip_recipient
distributed.tests.test_scheduler ‑ test_rebalance_workers_and_keys
distributed.tests.test_scheduler ‑ test_recompute_released_results
distributed.tests.test_scheduler ‑ test_refuse_to_schedule_huge_task[False]
distributed.tests.test_scheduler ‑ test_refuse_to_schedule_huge_task[True]
distributed.tests.test_scheduler ‑ test_remove_worker_by_name_from_scheduler
distributed.tests.test_scheduler ‑ test_remove_worker_from_scheduler
distributed.tests.test_scheduler ‑ test_remove_worker_from_scheduler_warns_on_safe
distributed.tests.test_scheduler ‑ test_repr
distributed.tests.test_scheduler ‑ test_resources_reset_after_cancelled_task
distributed.tests.test_scheduler ‑ test_respect_data_in_memory
distributed.tests.test_scheduler ‑ test_restart
distributed.tests.test_scheduler ‑ test_restart_heartbeat_before_closing
distributed.tests.test_scheduler ‑ test_restart_nanny_timeout_exceeded
distributed.tests.test_scheduler ‑ test_restart_no_wait_for_workers
distributed.tests.test_scheduler ‑ test_restart_not_all_workers_return
distributed.tests.test_scheduler ‑ test_restart_some_nannies_some_not
distributed.tests.test_scheduler ‑ test_restart_waits_for_new_workers
distributed.tests.test_scheduler ‑ test_restart_while_processing
distributed.tests.test_scheduler ‑ test_restart_worker_rejoins_after_timeout_expired
distributed.tests.test_scheduler ‑ test_resubmit_different_task_same_key_after_previous_is_done[False-less]
distributed.tests.test_scheduler ‑ test_resubmit_different_task_same_key_after_previous_is_done[False-more]
distributed.tests.test_scheduler ‑ test_resubmit_different_task_same_key_after_previous_is_done[False-same]
distributed.tests.test_scheduler ‑ test_resubmit_different_task_same_key_after_previous_is_done[True-less]
distributed.tests.test_scheduler ‑ test_resubmit_different_task_same_key_after_previous_is_done[True-more]
distributed.tests.test_scheduler ‑ test_resubmit_different_task_same_key_after_previous_is_done[True-same]
distributed.tests.test_scheduler ‑ test_resubmit_different_task_same_key_before_previous_is_done[less]
distributed.tests.test_scheduler ‑ test_resubmit_different_task_same_key_before_previous_is_done[more]
distributed.tests.test_scheduler ‑ test_resubmit_different_task_same_key_before_previous_is_done[same]
distributed.tests.test_scheduler ‑ test_resubmit_different_task_same_key_many_clients
distributed.tests.test_scheduler ‑ test_resubmit_different_task_same_key_warns_only_once[10-2]
distributed.tests.test_scheduler ‑ test_resubmit_different_task_same_key_warns_only_once[30-1]
distributed.tests.test_scheduler ‑ test_resubmit_nondeterministic_task_different_deps[False]
distributed.tests.test_scheduler ‑ test_resubmit_nondeterministic_task_different_deps[True]
distributed.tests.test_scheduler ‑ test_resubmit_nondeterministic_task_same_deps[123-after1-True]
distributed.tests.test_scheduler ‑ test_resubmit_nondeterministic_task_same_deps[before0-123-True]
distributed.tests.test_scheduler ‑ test_resubmit_nondeterministic_task_same_deps[before2-after2-False]
distributed.tests.test_scheduler ‑ test_result_type
distributed.tests.test_scheduler ‑ test_retire_names_str
distributed.tests.test_scheduler ‑ test_retire_nannies_close
distributed.tests.test_scheduler ‑ test_retire_state_change
distributed.tests.test_scheduler ‑ test_retire_workers
distributed.tests.test_scheduler ‑ test_retire_workers_bad_params
distributed.tests.test_scheduler ‑ test_retire_workers_close
distributed.tests.test_scheduler ‑ test_retire_workers_concurrently
distributed.tests.test_scheduler ‑ test_retire_workers_empty
distributed.tests.test_scheduler ‑ test_retire_workers_lock
distributed.tests.test_scheduler ‑ test_retire_workers_n
distributed.tests.test_scheduler ‑ test_retire_workers_no_suspicious_tasks
distributed.tests.test_scheduler ‑ test_retries
distributed.tests.test_scheduler ‑ test_rootish_taskgroup_configuration
distributed.tests.test_scheduler ‑ test_run_on_scheduler
distributed.tests.test_scheduler ‑ test_run_on_scheduler_sync
distributed.tests.test_scheduler ‑ test_runspec_regression_sync
distributed.tests.test_scheduler ‑ test_saturation_factor[0.1-expected_task_counts4]
distributed.tests.test_scheduler ‑ test_saturation_factor[1.0-expected_task_counts3]
distributed.tests.test_scheduler ‑ test_saturation_factor[1.1-expected_task_counts2]
distributed.tests.test_scheduler ‑ test_saturation_factor[2.0-expected_task_counts1]
distributed.tests.test_scheduler ‑ test_saturation_factor[2.5-expected_task_counts0]
distributed.tests.test_scheduler ‑ test_saturation_factor[inf-expected_task_counts5]
distributed.tests.test_scheduler ‑ test_saturation_factor[inf-expected_task_counts6]
distributed.tests.test_scheduler ‑ test_scatter_creates_ts
distributed.tests.test_scheduler ‑ test_scatter_no_workers[False]
distributed.tests.test_scheduler ‑ test_scatter_no_workers[True]
distributed.tests.test_scheduler ‑ test_scheduler_close_fast_deprecated
distributed.tests.test_scheduler ‑ test_scheduler_file
distributed.tests.test_scheduler ‑ test_scheduler_init_pulls_blocked_handlers_from_config
distributed.tests.test_scheduler ‑ test_scheduler_sees_memory_limits
distributed.tests.test_scheduler ‑ test_secede_opens_slot
distributed.tests.test_scheduler ‑ test_server_listens_to_other_ops
distributed.tests.test_scheduler ‑ test_set_restrictions
distributed.tests.test_scheduler ‑ test_statistical_profiling
distributed.tests.test_scheduler ‑ test_statistical_profiling_failure
distributed.tests.test_scheduler ‑ test_stimulus_from_erred_task
distributed.tests.test_scheduler ‑ test_story
distributed.tests.test_scheduler ‑ test_submit_dependency_of_erred_task
distributed.tests.test_scheduler ‑ test_task_group_and_prefix_statistics
distributed.tests.test_scheduler ‑ test_task_group_done
distributed.tests.test_scheduler ‑ test_task_group_non_tuple_key
distributed.tests.test_scheduler ‑ test_task_group_not_done_noworker
distributed.tests.test_scheduler ‑ test_task_group_not_done_processing
distributed.tests.test_scheduler ‑ test_task_group_not_done_queued
distributed.tests.test_scheduler ‑ test_task_group_not_done_waiting
distributed.tests.test_scheduler ‑ test_task_group_on_fire_and_forget
distributed.tests.test_scheduler ‑ test_task_groups_update_start_stop
distributed.tests.test_scheduler ‑ test_task_prefix
distributed.tests.test_scheduler ‑ test_task_unique_groups
distributed.tests.test_scheduler ‑ test_tell_workers_when_peers_have_left
distributed.tests.test_scheduler ‑ test_too_many_groups
distributed.tests.test_scheduler ‑ test_transition_counter
distributed.tests.test_scheduler ‑ test_transition_counter_max_scheduler
distributed.tests.test_scheduler ‑ test_transition_counter_max_worker
distributed.tests.test_scheduler ‑ test_transition_failure_triggers_log_event
distributed.tests.test_scheduler ‑ test_transition_waiting_memory
distributed.tests.test_scheduler ‑ test_unknown_task_duration_config
distributed.tests.test_scheduler ‑ test_unknown_task_duration_config_2
distributed.tests.test_scheduler ‑ test_update_graph_culls
distributed.tests.test_scheduler ‑ test_worker_arrives_with_data_is_rejected
distributed.tests.test_scheduler ‑ test_worker_heartbeat_after_cancel
distributed.tests.test_scheduler ‑ test_worker_name
distributed.tests.test_scheduler ‑ test_worker_name_collision
distributed.tests.test_scheduler ‑ test_worker_state_unique_regardless_of_address
distributed.tests.test_scheduler ‑ test_workers_to_close
distributed.tests.test_scheduler ‑ test_workers_to_close_grouped
distributed.tests.test_scheduler ‑ test_workers_to_close_never_close_long_running[False]
distributed.tests.test_scheduler ‑ test_workers_to_close_never_close_long_running[True]
distributed.tests.test_scheduler ‑ test_workerstate_clean
distributed.tests.test_security ‑ test_attribute_error
distributed.tests.test_security ‑ test_connection_args
distributed.tests.test_security ‑ test_constructor_errors
distributed.tests.test_security ‑ test_defaults
distributed.tests.test_security ‑ test_extra_conn_args_connection_args
distributed.tests.test_security ‑ test_extra_conn_args_in_temporary_credentials
distributed.tests.test_security ‑ test_from_config
distributed.tests.test_security ‑ test_invalid_min_version_from_config_errors
distributed.tests.test_security ‑ test_kwargs
distributed.tests.test_security ‑ test_listen_args
distributed.tests.test_security ‑ test_min_max_version_config_errors[max-version]
distributed.tests.test_security ‑ test_min_max_version_config_errors[min-version]
distributed.tests.test_security ‑ test_min_max_version_from_config[1.2-1.2]
distributed.tests.test_security ‑ test_min_max_version_from_config[1.2-1.3]
distributed.tests.test_security ‑ test_min_max_version_from_config[1.2-None]
distributed.tests.test_security ‑ test_min_max_version_from_config[1.3-1.2]
distributed.tests.test_security ‑ test_min_max_version_from_config[1.3-1.3]
distributed.tests.test_security ‑ test_min_max_version_from_config[1.3-None]
distributed.tests.test_security ‑ test_min_max_version_from_config[None-1.2]
distributed.tests.test_security ‑ test_min_max_version_from_config[None-1.3]
distributed.tests.test_security ‑ test_min_max_version_from_config[None-None]
distributed.tests.test_security ‑ test_min_max_version_kwarg_errors[tls_max_version]
distributed.tests.test_security ‑ test_min_max_version_kwarg_errors[tls_min_version]
distributed.tests.test_security ‑ test_repr_local_keys
distributed.tests.test_security ‑ test_repr_temp_keys
distributed.tests.test_security ‑ test_require_encryption
distributed.tests.test_security ‑ test_temporary_credentials
distributed.tests.test_security ‑ test_tls_config_for_role
distributed.tests.test_security ‑ test_tls_listen_connect
distributed.tests.test_security ‑ test_tls_temporary_credentials_functional
distributed.tests.test_semaphore ‑ test_access_semaphore_by_name
distributed.tests.test_semaphore ‑ test_acquires_with_timeout
distributed.tests.test_semaphore ‑ test_async_ctx
distributed.tests.test_semaphore ‑ test_close_async
distributed.tests.test_semaphore ‑ test_getvalue
distributed.tests.test_semaphore ‑ test_metrics
distributed.tests.test_semaphore ‑ test_oversubscribing_leases
distributed.tests.test_semaphore ‑ test_release_failure
distributed.tests.test_semaphore ‑ test_release_once_too_many
distributed.tests.test_semaphore ‑ test_release_once_too_many_resilience
distributed.tests.test_semaphore ‑ test_release_retry
distributed.tests.test_semaphore ‑ test_release_semaphore_after_timeout
distributed.tests.test_semaphore ‑ test_release_simple
distributed.tests.test_semaphore ‑ test_retry_acquire
distributed.tests.test_semaphore ‑ test_semaphore_trivial
distributed.tests.test_semaphore ‑ test_serializable
distributed.tests.test_semaphore ‑ test_threadpoolworkers_pick_correct_ioloop
distributed.tests.test_semaphore ‑ test_timeout_sync
distributed.tests.test_semaphore ‑ test_timeout_zero
distributed.tests.test_semaphore ‑ test_unpickle_without_client
distributed.tests.test_semaphore ‑ test_worker_dies
distributed.tests.test_sizeof ‑ test_safe_sizeof[obj0]
distributed.tests.test_sizeof ‑ test_safe_sizeof[obj1]
distributed.tests.test_sizeof ‑ test_safe_sizeof[obj2]
distributed.tests.test_sizeof ‑ test_safe_sizeof_logs_on_failure
distributed.tests.test_spans ‑ test_active_cpu_seconds_change_nthreads
distributed.tests.test_spans ‑ test_active_cpu_seconds_merged
distributed.tests.test_spans ‑ test_active_cpu_seconds_not_done[False]
distributed.tests.test_spans ‑ test_active_cpu_seconds_not_done[True]
distributed.tests.test_spans ‑ test_active_cpu_seconds_trivial
distributed.tests.test_spans ‑ test_before_first_task_finished
distributed.tests.test_spans ‑ test_code
distributed.tests.test_spans ‑ test_collections_metadata
distributed.tests.test_spans ‑ test_default_span
distributed.tests.test_spans ‑ test_duplicate_task_group
distributed.tests.test_spans ‑ test_merge_all
distributed.tests.test_spans ‑ test_merge_by_tags
distributed.tests.test_spans ‑ test_merge_by_tags_metrics
distributed.tests.test_spans ‑ test_merge_nothing
distributed.tests.test_spans ‑ test_mismatched_span[False]
distributed.tests.test_spans ‑ test_mismatched_span[True]
distributed.tests.test_spans ‑ test_multiple_tags
distributed.tests.test_spans ‑ test_no_code_by_default
distributed.tests.test_spans ‑ test_no_extension
distributed.tests.test_spans ‑ test_no_tags
distributed.tests.test_spans ‑ test_repeat_span
distributed.tests.test_spans ‑ test_scatter_creates_tg
distributed.tests.test_spans ‑ test_scatter_creates_ts
distributed.tests.test_spans ‑ test_span_on_persist
distributed.tests.test_spans ‑ test_spans
distributed.tests.test_spans ‑ test_spans_are_visible_from_tasks
distributed.tests.test_spans ‑ test_submit
distributed.tests.test_spans ‑ test_task_groups[False]
distributed.tests.test_spans ‑ test_task_groups[True]
distributed.tests.test_spans ‑ test_worker_metrics
distributed.tests.test_spec ‑ test_address_default_none
distributed.tests.test_spec ‑ test_child_address_persists
distributed.tests.test_spill ‑ test_compression_settings[None-20000-20500]
distributed.tests.test_spill ‑ test_compression_settings[zlib-100-500]
distributed.tests.test_spill ‑ test_disk_size_calculation
distributed.tests.test_spill ‑ test_metrics
distributed.tests.test_spill ‑ test_no_pop
distributed.tests.test_spill ‑ test_psize
distributed.tests.test_spill ‑ test_spillbuffer
distributed.tests.test_spill ‑ test_spillbuffer_evict
distributed.tests.test_spill ‑ test_spillbuffer_fail_to_serialize
distributed.tests.test_spill ‑ test_spillbuffer_maxlim
distributed.tests.test_spill ‑ test_spillbuffer_oserror
distributed.tests.test_spill ‑ test_str_collision
distributed.tests.test_spill ‑ test_weakref_cache[110-NoWeakRef-False]
distributed.tests.test_spill ‑ test_weakref_cache[110-SupportsWeakRef-True]
distributed.tests.test_spill ‑ test_weakref_cache[60-NoWeakRef-False]
distributed.tests.test_spill ‑ test_weakref_cache[60-SupportsWeakRef-True]
distributed.tests.test_steal ‑ test_allow_tasks_stolen_before_first_completes
distributed.tests.test_steal ‑ test_balance[balance even if results in even]
distributed.tests.test_steal ‑ test_balance[balance multiple saturated workers]
distributed.tests.test_steal ‑ test_balance[balance]
distributed.tests.test_steal ‑ test_balance[be willing to move costly items]
distributed.tests.test_steal ‑ test_balance[but don't move too many]
distributed.tests.test_steal ‑ test_balance[choose easier first]
distributed.tests.test_steal ‑ test_balance[don't move unnecessarily]
distributed.tests.test_steal ‑ test_balance[don't over balance]
distributed.tests.test_steal ‑ test_balance[move easier]
distributed.tests.test_steal ‑ test_balance[move from larger]
distributed.tests.test_steal ‑ test_balance[move to smaller]
distributed.tests.test_steal ‑ test_balance[no one clearly saturated]
distributed.tests.test_steal ‑ test_balance[spread evenly]
distributed.tests.test_steal ‑ test_balance_even_with_replica
distributed.tests.test_steal ‑ test_balance_eventually_steals_large_dependency_without_replica
distributed.tests.test_steal ‑ test_balance_expensive_tasks[enough work to steal]
distributed.tests.test_steal ‑ test_balance_expensive_tasks[not enough work for increased cost]
distributed.tests.test_steal ‑ test_balance_expensive_tasks[not enough work to steal]
distributed.tests.test_steal ‑ test_balance_multiple_to_replica
distributed.tests.test_steal ‑ test_balance_prefers_busier_with_dependency
distributed.tests.test_steal ‑ test_balance_to_larger_dependency
distributed.tests.test_steal ‑ test_balance_to_replica
distributed.tests.test_steal ‑ test_balance_uneven_without_replica
distributed.tests.test_steal ‑ test_balance_with_longer_task
distributed.tests.test_steal ‑ test_balance_without_dependencies
distributed.tests.test_steal ‑ test_blocklist_shuffle_split
distributed.tests.test_steal ‑ test_cleanup_repeated_tasks
distributed.tests.test_steal ‑ test_correct_bad_time_estimate
distributed.tests.test_steal ‑ test_dont_steal_already_released
distributed.tests.test_steal ‑ test_dont_steal_executing_tasks
distributed.tests.test_steal ‑ test_dont_steal_executing_tasks_2
distributed.tests.test_steal ‑ test_dont_steal_expensive_data_fast_computation
distributed.tests.test_steal ‑ test_dont_steal_fast_tasks_blocklist
distributed.tests.test_steal ‑ test_dont_steal_fast_tasks_compute_time
distributed.tests.test_steal ‑ test_dont_steal_few_saturated_tasks_many_workers
distributed.tests.test_steal ‑ test_dont_steal_host_restrictions
distributed.tests.test_steal ‑ test_dont_steal_long_running_tasks
distributed.tests.test_steal ‑ test_dont_steal_resource_restrictions
distributed.tests.test_steal ‑ test_dont_steal_worker_restrictions
distributed.tests.test_steal ‑ test_eventually_steal_unknown_functions
distributed.tests.test_steal ‑ test_get_story
distributed.tests.test_steal ‑ test_lose_task
distributed.tests.test_steal ‑ test_new_worker_steals
distributed.tests.test_steal ‑ test_parse_stealing_interval[2-2]
distributed.tests.test_steal ‑ test_parse_stealing_interval[500ms-500]
distributed.tests.test_steal ‑ test_parse_stealing_interval[None-100]
distributed.tests.test_steal ‑ test_paused_workers_must_not_steal
distributed.tests.test_steal ‑ test_reschedule_concurrent_requests_deadlock
distributed.tests.test_steal ‑ test_restart
distributed.tests.test_steal ‑ test_steal_cheap_data_slow_computation
distributed.tests.test_steal ‑ test_steal_concurrent_simple
distributed.tests.test_steal ‑ test_steal_expensive_data_slow_computation
distributed.tests.test_steal ‑ test_steal_host_restrictions
distributed.tests.test_steal ‑ test_steal_more_attractive_tasks
distributed.tests.test_steal ‑ test_steal_related_tasks
distributed.tests.test_steal ‑ test_steal_reschedule_reset_in_flight_occupancy
distributed.tests.test_steal ‑ test_steal_resource_restrictions
distributed.tests.test_steal ‑ test_steal_resource_restrictions_asym_diff
distributed.tests.test_steal ‑ test_steal_stimulus_id_unique
distributed.tests.test_steal ‑ test_steal_twice
distributed.tests.test_steal ‑ test_steal_very_fast_tasks
distributed.tests.test_steal ‑ test_steal_when_more_tasks
distributed.tests.test_steal ‑ test_steal_worker_dies_same_ip
distributed.tests.test_steal ‑ test_steal_worker_restrictions
distributed.tests.test_steal ‑ test_steal_worker_state[executing]
distributed.tests.test_steal ‑ test_steal_worker_state[long-running]
distributed.tests.test_steal ‑ test_stop_in_flight
distributed.tests.test_steal ‑ test_stop_plugin
distributed.tests.test_steal ‑ test_trivial_workload_should_not_cause_work_stealing
distributed.tests.test_steal ‑ test_work_steal_allow_other_workers
distributed.tests.test_steal ‑ test_work_stealing
distributed.tests.test_steal ‑ test_worksteal_many_thieves
distributed.tests.test_stories ‑ test_client_story
distributed.tests.test_stories ‑ test_client_story_failed_worker[ignore]
distributed.tests.test_stories ‑ test_client_story_failed_worker[raise]
distributed.tests.test_stories ‑ test_scheduler_story_stimulus_retry
distributed.tests.test_stories ‑ test_scheduler_story_stimulus_success
distributed.tests.test_stories ‑ test_worker_story_with_deps
distributed.tests.test_stress ‑ test_cancel_stress
distributed.tests.test_stress ‑ test_cancel_stress_sync
distributed.tests.test_stress ‑ test_chaos_rechunk
distributed.tests.test_stress ‑ test_close_connections
distributed.tests.test_stress ‑ test_no_delay_during_large_transfer
distributed.tests.test_stress ‑ test_stress_1
distributed.tests.test_stress ‑ test_stress_creation_and_deletion
distributed.tests.test_stress ‑ test_stress_gc[inc-1000]
distributed.tests.test_stress ‑ test_stress_gc[slowinc-100]
distributed.tests.test_stress ‑ test_stress_scatter_death
distributed.tests.test_stress ‑ test_stress_steal
distributed.tests.test_system ‑ test_hard_memory_limit_cgroups
distributed.tests.test_system ‑ test_hard_memory_limit_cgroups2
distributed.tests.test_system ‑ test_memory_limit
distributed.tests.test_system ‑ test_rlimit
distributed.tests.test_system ‑ test_soft_memory_limit_cgroups
distributed.tests.test_system ‑ test_soft_memory_limit_cgroups2
distributed.tests.test_system ‑ test_softest_memory_limit_cgroups2
distributed.tests.test_system_monitor ‑ test_SystemMonitor
distributed.tests.test_system_monitor ‑ test_count
distributed.tests.test_system_monitor ‑ test_disk_config
distributed.tests.test_system_monitor ‑ test_gil_contention
distributed.tests.test_system_monitor ‑ test_host_cpu
distributed.tests.test_system_monitor ‑ test_maxlen_zero
distributed.tests.test_system_monitor ‑ test_range_query
distributed.tests.test_threadpoolexecutor ‑ test_rejoin_idempotent
distributed.tests.test_threadpoolexecutor ‑ test_secede_rejoin_busy
distributed.tests.test_threadpoolexecutor ‑ test_secede_rejoin_quiet
distributed.tests.test_threadpoolexecutor ‑ test_shutdown_timeout
distributed.tests.test_threadpoolexecutor ‑ test_shutdown_timeout_raises
distributed.tests.test_threadpoolexecutor ‑ test_shutdown_wait
distributed.tests.test_threadpoolexecutor ‑ test_thread_name
distributed.tests.test_threadpoolexecutor ‑ test_tpe
distributed.tests.test_tls_functional ‑ test_Queue
distributed.tests.test_tls_functional ‑ test_basic
distributed.tests.test_tls_functional ‑ test_client_submit
distributed.tests.test_tls_functional ‑ test_gather
distributed.tests.test_tls_functional ‑ test_nanny
distributed.tests.test_tls_functional ‑ test_rebalance
distributed.tests.test_tls_functional ‑ test_retire_workers
distributed.tests.test_tls_functional ‑ test_scatter
distributed.tests.test_tls_functional ‑ test_security_dict_input
distributed.tests.test_tls_functional ‑ test_security_dict_input_no_security
distributed.tests.test_tls_functional ‑ test_work_stealing
distributed.tests.test_tls_functional ‑ test_worker_client
distributed.tests.test_tls_functional ‑ test_worker_client_executor
distributed.tests.test_tls_functional ‑ test_worker_client_gather
distributed.tests.test_utils ‑ test_All
distributed.tests.test_utils ‑ test_all_quiet_exceptions
distributed.tests.test_utils ‑ test_ensure_ip
distributed.tests.test_utils ‑ test_ensure_memoryview[1]
distributed.tests.test_utils ‑ test_ensure_memoryview[]
distributed.tests.test_utils ‑ test_ensure_memoryview[data10]
distributed.tests.test_utils ‑ test_ensure_memoryview[data11]
distributed.tests.test_utils ‑ test_ensure_memoryview[data12]
distributed.tests.test_utils ‑ test_ensure_memoryview[data13]
distributed.tests.test_utils ‑ test_ensure_memoryview[data14]
distributed.tests.test_utils ‑ test_ensure_memoryview[data1]
distributed.tests.test_utils ‑ test_ensure_memoryview[data3]
distributed.tests.test_utils ‑ test_ensure_memoryview[data4]
distributed.tests.test_utils ‑ test_ensure_memoryview[data5]
distributed.tests.test_utils ‑ test_ensure_memoryview[data6]
distributed.tests.test_utils ‑ test_ensure_memoryview[data7]
distributed.tests.test_utils ‑ test_ensure_memoryview[data8]
distributed.tests.test_utils ‑ test_ensure_memoryview[data9]
distributed.tests.test_utils ‑ test_ensure_memoryview_ndarray[i8-12-shape0-strides0]
distributed.tests.test_utils ‑ test_ensure_memoryview_ndarray[i8-12-shape1-strides1]
distributed.tests.test_utils ‑ test_ensure_memoryview_ndarray[i8-12-shape2-strides2]
distributed.tests.test_utils ‑ test_ensure_memoryview_ndarray[i8-12-shape3-strides3]
distributed.tests.test_utils ‑ test_ensure_memoryview_ndarray[i8-12-shape4-strides4]
distributed.tests.test_utils ‑ test_ensure_memoryview_pyarrow_buffer
distributed.tests.test_utils ‑ test_format_dashboard_link
distributed.tests.test_utils ‑ test_get_ip_interface
distributed.tests.test_utils ‑ test_get_mp_context
Check notice on line 0 in .github
github-actions / Unit Test Results
4130 tests found (test 3548 to 4130)
There are 4130 tests, see "Raw output" for the list of tests 3548 to 4130.
Raw output
distributed.tests.test_utils ‑ test_get_traceback
distributed.tests.test_utils ‑ test_is_kernel
distributed.tests.test_utils ‑ test_is_valid_xml
distributed.tests.test_utils ‑ test_iscoroutinefunction_nested_partial
distributed.tests.test_utils ‑ test_iscoroutinefunction_unhashable_input
distributed.tests.test_utils ‑ test_load_json_robust_timeout
distributed.tests.test_utils ‑ test_log_errors
distributed.tests.test_utils ‑ test_log_errors_unroll_stack[0-test_utils]
distributed.tests.test_utils ‑ test_log_errors_unroll_stack[1-a.b.c]
distributed.tests.test_utils ‑ test_logs
distributed.tests.test_utils ‑ test_loop_runner
distributed.tests.test_utils ‑ test_loop_runner_exception_in_start
distributed.tests.test_utils ‑ test_loop_runner_exception_in_teardown
distributed.tests.test_utils ‑ test_loop_runner_gen
distributed.tests.test_utils ‑ test_nbytes
distributed.tests.test_utils ‑ test_no_default_deprecated
distributed.tests.test_utils ‑ test_offload
distributed.tests.test_utils ‑ test_offload_preserves_contextvars
distributed.tests.test_utils ‑ test_open_port
distributed.tests.test_utils ‑ test_parse_ports
distributed.tests.test_utils ‑ test_rate_limiter_filter
distributed.tests.test_utils ‑ test_read_block
distributed.tests.test_utils ‑ test_recursive_to_dict
distributed.tests.test_utils ‑ test_recursive_to_dict_no_nest
distributed.tests.test_utils ‑ test_run_in_executor_with_context
distributed.tests.test_utils ‑ test_run_in_executor_with_context_preserves_contextvars
distributed.tests.test_utils ‑ test_seek_delimiter_endline
distributed.tests.test_utils ‑ test_set_thread_state
distributed.tests.test_utils ‑ test_sync
distributed.tests.test_utils ‑ test_sync_closed_loop
distributed.tests.test_utils ‑ test_sync_contextvars
distributed.tests.test_utils ‑ test_sync_error
distributed.tests.test_utils ‑ test_sync_timeout
distributed.tests.test_utils ‑ test_truncate_exception
distributed.tests.test_utils ‑ test_tuple_comparable_eq[1-1-True]
distributed.tests.test_utils ‑ test_tuple_comparable_eq[1-2-False]
distributed.tests.test_utils ‑ test_tuple_comparable_eq[None-0-True]
distributed.tests.test_utils ‑ test_tuple_comparable_eq[None-obj25-False]
distributed.tests.test_utils ‑ test_tuple_comparable_eq[obj10-obj20-True]
distributed.tests.test_utils ‑ test_tuple_comparable_eq[obj11-obj21-False]
distributed.tests.test_utils ‑ test_tuple_comparable_error
distributed.tests.test_utils ‑ test_tuple_comparable_lt[1-1-False]
distributed.tests.test_utils ‑ test_tuple_comparable_lt[1-2-True]
distributed.tests.test_utils ‑ test_tuple_comparable_lt[None-0-False]
distributed.tests.test_utils ‑ test_tuple_comparable_lt[None-obj25-True]
distributed.tests.test_utils ‑ test_tuple_comparable_lt[obj10-obj20-False]
distributed.tests.test_utils ‑ test_tuple_comparable_lt[obj11-obj21-True]
distributed.tests.test_utils ‑ test_two_loop_runners
distributed.tests.test_utils ‑ test_warn_on_duration
distributed.tests.test_utils_comm ‑ test_gather_from_workers_busy
distributed.tests.test_utils_comm ‑ test_gather_from_workers_missing_replicas
distributed.tests.test_utils_comm ‑ test_gather_from_workers_permissive
distributed.tests.test_utils_comm ‑ test_gather_from_workers_permissive_flaky
distributed.tests.test_utils_comm ‑ test_gather_from_workers_serialization_error[pickle]
distributed.tests.test_utils_comm ‑ test_gather_from_workers_serialization_error[unpickle]
distributed.tests.test_utils_comm ‑ test_pack_data
distributed.tests.test_utils_comm ‑ test_retry0_raises_immediately
distributed.tests.test_utils_comm ‑ test_retry_does_retry_and_sleep
distributed.tests.test_utils_comm ‑ test_retry_no_exception
distributed.tests.test_utils_comm ‑ test_subs_multiple
distributed.tests.test_utils_comm ‑ test_unpack_remotedata
distributed.tests.test_utils_test ‑ test__UnhashableCallable
distributed.tests.test_utils_test ‑ test_assert_story
distributed.tests.test_utils_test ‑ test_assert_story_identity[False]
distributed.tests.test_utils_test ‑ test_assert_story_identity[True]
distributed.tests.test_utils_test ‑ test_assert_story_malformed_story[Missing (stimulus_id, ts)]
distributed.tests.test_utils_test ‑ test_assert_story_malformed_story[Missing payload, stimulus_id, ts]
distributed.tests.test_utils_test ‑ test_assert_story_malformed_story[Missing ts]
distributed.tests.test_utils_test ‑ test_assert_story_malformed_story[no payload]
distributed.tests.test_utils_test ‑ test_assert_story_malformed_story[stimulus_id is an empty str]
distributed.tests.test_utils_test ‑ test_assert_story_malformed_story[stimulus_id is not a str]
distributed.tests.test_utils_test ‑ test_assert_story_malformed_story[timestamps out of order]
distributed.tests.test_utils_test ‑ test_assert_story_malformed_story[ts is in the future]
distributed.tests.test_utils_test ‑ test_assert_story_malformed_story[ts is not a float]
distributed.tests.test_utils_test ‑ test_assert_story_malformed_story[ts is too old]
distributed.tests.test_utils_test ‑ test_bare_cluster
distributed.tests.test_utils_test ‑ test_captured_context_meter
distributed.tests.test_utils_test ‑ test_captured_logger
distributed.tests.test_utils_test ‑ test_check_process_leak
distributed.tests.test_utils_test ‑ test_check_process_leak_post_cleanup[False]
distributed.tests.test_utils_test ‑ test_check_process_leak_post_cleanup[True]
distributed.tests.test_utils_test ‑ test_check_process_leak_pre_cleanup[False]
distributed.tests.test_utils_test ‑ test_check_process_leak_pre_cleanup[True]
distributed.tests.test_utils_test ‑ test_check_process_leak_slow_cleanup
distributed.tests.test_utils_test ‑ test_check_thread_leak
distributed.tests.test_utils_test ‑ test_cluster
distributed.tests.test_utils_test ‑ test_cluster_uses_config_for_test[False]
distributed.tests.test_utils_test ‑ test_cluster_uses_config_for_test[True]
distributed.tests.test_utils_test ‑ test_ensure_no_new_clients
distributed.tests.test_utils_test ‑ test_fail_hard[False]
distributed.tests.test_utils_test ‑ test_fail_hard[True]
distributed.tests.test_utils_test ‑ test_freeze_batched_send
distributed.tests.test_utils_test ‑ test_gen_cluster
distributed.tests.test_utils_test ‑ test_gen_cluster_cleans_up_client
distributed.tests.test_utils_test ‑ test_gen_cluster_multi_parametrized[a-True]
distributed.tests.test_utils_test ‑ test_gen_cluster_multi_parametrized[b-True]
distributed.tests.test_utils_test ‑ test_gen_cluster_parametrized[True]
distributed.tests.test_utils_test ‑ test_gen_cluster_parametrized_variadic_workers[True]
distributed.tests.test_utils_test ‑ test_gen_cluster_pytest_fixture
distributed.tests.test_utils_test ‑ test_gen_cluster_set_config_nanny
distributed.tests.test_utils_test ‑ test_gen_cluster_tls
distributed.tests.test_utils_test ‑ test_gen_cluster_validate
distributed.tests.test_utils_test ‑ test_gen_cluster_validate_override
distributed.tests.test_utils_test ‑ test_gen_cluster_without_client
distributed.tests.test_utils_test ‑ test_gen_test
distributed.tests.test_utils_test ‑ test_gen_test_config
distributed.tests.test_utils_test ‑ test_gen_test_config_default
distributed.tests.test_utils_test ‑ test_gen_test_double_parametrized[False-True]
distributed.tests.test_utils_test ‑ test_gen_test_legacy_explicit
distributed.tests.test_utils_test ‑ test_gen_test_legacy_implicit
distributed.tests.test_utils_test ‑ test_gen_test_parametrized[True]
distributed.tests.test_utils_test ‑ test_gen_test_pytest_fixture
distributed.tests.test_utils_test ‑ test_invalid_transitions
distributed.tests.test_utils_test ‑ test_invalid_worker_state
distributed.tests.test_utils_test ‑ test_lingering_client
distributed.tests.test_utils_test ‑ test_lingering_client_2
distributed.tests.test_utils_test ‑ test_locked_comm_drop_in_replacement
distributed.tests.test_utils_test ‑ test_locked_comm_intercept_read
distributed.tests.test_utils_test ‑ test_locked_comm_intercept_write
distributed.tests.test_utils_test ‑ test_new_config
distributed.tests.test_utils_test ‑ test_popen_always_prints_output
distributed.tests.test_utils_test ‑ test_popen_timeout
distributed.tests.test_utils_test ‑ test_popen_write_during_terminate_deadlock
distributed.tests.test_utils_test ‑ test_raises_with_cause
distributed.tests.test_utils_test ‑ test_sizeof
distributed.tests.test_utils_test ‑ test_sizeof_error[-1-ValueError-larger than]
distributed.tests.test_utils_test ‑ test_sizeof_error[0-ValueError-larger than]
distributed.tests.test_utils_test ‑ test_sizeof_error[10-ValueError-larger than]
distributed.tests.test_utils_test ‑ test_sizeof_error[12345.0-TypeError-Expected integer]
distributed.tests.test_utils_test ‑ test_start_failure_scheduler
distributed.tests.test_utils_test ‑ test_start_failure_worker[False]
distributed.tests.test_utils_test ‑ test_start_failure_worker[True]
distributed.tests.test_utils_test ‑ test_tls_cluster
distributed.tests.test_utils_test ‑ test_tls_scheduler
distributed.tests.test_utils_test ‑ test_wait_for_state
distributed.tests.test_utils_test ‑ test_wait_for_stimulus
distributed.tests.test_utils_test ‑ test_ws_with_running_task[executing]
distributed.tests.test_utils_test ‑ test_ws_with_running_task[long-running]
distributed.tests.test_variable ‑ test_Future_knows_status_immediately
distributed.tests.test_variable ‑ test_cleanup
distributed.tests.test_variable ‑ test_delete_unset_variable
distributed.tests.test_variable ‑ test_erred_future
distributed.tests.test_variable ‑ test_future_erred_sync
distributed.tests.test_variable ‑ test_hold_futures
distributed.tests.test_variable ‑ test_pickleable
distributed.tests.test_variable ‑ test_queue_with_data
distributed.tests.test_variable ‑ test_race
distributed.tests.test_variable ‑ test_set_cancelled_future
distributed.tests.test_variable ‑ test_sync
distributed.tests.test_variable ‑ test_timeout
distributed.tests.test_variable ‑ test_timeout_get
distributed.tests.test_variable ‑ test_timeout_sync
distributed.tests.test_variable ‑ test_unpickle_without_client
distributed.tests.test_variable ‑ test_variable
distributed.tests.test_variable ‑ test_variable_in_task
distributed.tests.test_variable ‑ test_variables_do_not_leak_client
distributed.tests.test_versions ‑ test_python_mismatch[scheduler]
distributed.tests.test_versions ‑ test_python_mismatch[source]
distributed.tests.test_versions ‑ test_python_mismatch[worker-1]
distributed.tests.test_versions ‑ test_python_version
distributed.tests.test_versions ‑ test_scheduler_additional_irrelevant_package
distributed.tests.test_versions ‑ test_scheduler_mismatched_irrelevant_package
distributed.tests.test_versions ‑ test_version_custom_pkgs
distributed.tests.test_versions ‑ test_version_mismatch[scheduler-KEY_ERROR]
distributed.tests.test_versions ‑ test_version_mismatch[scheduler-MISMATCHED]
distributed.tests.test_versions ‑ test_version_mismatch[scheduler-MISSING]
distributed.tests.test_versions ‑ test_version_mismatch[scheduler-NONE]
distributed.tests.test_versions ‑ test_version_mismatch[source-KEY_ERROR]
distributed.tests.test_versions ‑ test_version_mismatch[source-MISMATCHED]
distributed.tests.test_versions ‑ test_version_mismatch[source-MISSING]
distributed.tests.test_versions ‑ test_version_mismatch[source-NONE]
distributed.tests.test_versions ‑ test_version_mismatch[worker-1-KEY_ERROR]
distributed.tests.test_versions ‑ test_version_mismatch[worker-1-MISMATCHED]
distributed.tests.test_versions ‑ test_version_mismatch[worker-1-MISSING]
distributed.tests.test_versions ‑ test_version_mismatch[worker-1-NONE]
distributed.tests.test_versions ‑ test_version_warning_in_cluster
distributed.tests.test_versions ‑ test_versions_match
distributed.tests.test_worker ‑ test_Executor
distributed.tests.test_worker ‑ test_Worker__to_dict
distributed.tests.test_worker ‑ test_access_key
distributed.tests.test_worker ‑ test_acquire_replicas
distributed.tests.test_worker ‑ test_acquire_replicas_already_in_flight
distributed.tests.test_worker ‑ test_acquire_replicas_large_data
distributed.tests.test_worker ‑ test_acquire_replicas_many
distributed.tests.test_worker ‑ test_acquire_replicas_same_channel
distributed.tests.test_worker ‑ test_acquire_replicas_with_no_priority
distributed.tests.test_worker ‑ test_avoid_oversubscription
distributed.tests.test_worker ‑ test_bad_executor_annotation
distributed.tests.test_worker ‑ test_bad_local_directory
distributed.tests.test_worker ‑ test_bad_metrics
distributed.tests.test_worker ‑ test_bad_startup
distributed.tests.test_worker ‑ test_base_exception_in_task[BaseException-False]
distributed.tests.test_worker ‑ test_base_exception_in_task[BaseException-True]
distributed.tests.test_worker ‑ test_base_exception_in_task[CancelledError-False]
distributed.tests.test_worker ‑ test_base_exception_in_task[CancelledError-True]
distributed.tests.test_worker ‑ test_base_exception_in_task[KeyboardInterrupt-False]
distributed.tests.test_worker ‑ test_base_exception_in_task[KeyboardInterrupt-True]
distributed.tests.test_worker ‑ test_base_exception_in_task[SystemExit-False]
distributed.tests.test_worker ‑ test_base_exception_in_task[SystemExit-True]
distributed.tests.test_worker ‑ test_benchmark_hardware
distributed.tests.test_worker ‑ test_broadcast
distributed.tests.test_worker ‑ test_broken_comm
distributed.tests.test_worker ‑ test_chained_error_message
distributed.tests.test_worker ‑ test_clean
distributed.tests.test_worker ‑ test_clean_nbytes
distributed.tests.test_worker ‑ test_clean_up_dependencies
distributed.tests.test_worker ‑ test_close_async_task_handles_cancellation
distributed.tests.test_worker ‑ test_close_gracefully
distributed.tests.test_worker ‑ test_close_gracefully_no_suspicious_tasks
distributed.tests.test_worker ‑ test_close_on_disconnect
distributed.tests.test_worker ‑ test_close_while_executing[False]
distributed.tests.test_worker ‑ test_close_while_executing[True]
distributed.tests.test_worker ‑ test_custom_metrics
distributed.tests.test_worker ‑ test_dataframe_attribute_error
distributed.tests.test_worker ‑ test_default_worker_dir
distributed.tests.test_worker ‑ test_deprecation_of_renamed_worker_attributes
distributed.tests.test_worker ‑ test_deque_handler
distributed.tests.test_worker ‑ test_do_not_block_event_loop_during_shutdown
distributed.tests.test_worker ‑ test_dont_overlap_communications_to_same_worker
distributed.tests.test_worker ‑ test_error_message
distributed.tests.test_worker ‑ test_execute_preamble_abort_retirement
distributed.tests.test_worker ‑ test_executor_offload
distributed.tests.test_worker ‑ test_extension_methods
distributed.tests.test_worker ‑ test_forget_acquire_replicas
distributed.tests.test_worker ‑ test_forget_dependents_after_release
distributed.tests.test_worker ‑ test_forward_output
distributed.tests.test_worker ‑ test_gather
distributed.tests.test_worker ‑ test_gather_dep_cancelled_rescheduled
distributed.tests.test_worker ‑ test_gather_dep_do_not_handle_response_of_not_requested_tasks
distributed.tests.test_worker ‑ test_gather_dep_from_remote_workers_if_all_local_workers_are_busy
distributed.tests.test_worker ‑ test_gather_dep_local_workers_first
distributed.tests.test_worker ‑ test_gather_dep_no_longer_in_flight_tasks
distributed.tests.test_worker ‑ test_gather_dep_one_worker_always_busy
distributed.tests.test_worker ‑ test_gather_many_small[False]
distributed.tests.test_worker ‑ test_gather_many_small[True]
distributed.tests.test_worker ‑ test_gather_missing_keys
distributed.tests.test_worker ‑ test_gather_missing_workers
distributed.tests.test_worker ‑ test_gather_missing_workers_replicated[False]
distributed.tests.test_worker ‑ test_gather_missing_workers_replicated[True0]
distributed.tests.test_worker ‑ test_gather_missing_workers_replicated[True1]
distributed.tests.test_worker ‑ test_gather_missing_workers_replicated[True2]
distributed.tests.test_worker ‑ test_gather_missing_workers_replicated[True3]
distributed.tests.test_worker ‑ test_get_client
distributed.tests.test_worker ‑ test_get_client_coroutine
distributed.tests.test_worker ‑ test_get_client_coroutine_sync
distributed.tests.test_worker ‑ test_get_client_sync
distributed.tests.test_worker ‑ test_get_current_task
distributed.tests.test_worker ‑ test_get_data_cancelled_error
distributed.tests.test_worker ‑ test_global_workers
distributed.tests.test_worker ‑ test_heartbeat_comm_closed
distributed.tests.test_worker ‑ test_heartbeat_missing
distributed.tests.test_worker ‑ test_heartbeat_missing_doesnt_restart
distributed.tests.test_worker ‑ test_heartbeat_missing_real_cluster
distributed.tests.test_worker ‑ test_heartbeats
distributed.tests.test_worker ‑ test_hold_on_to_replicas
distributed.tests.test_worker ‑ test_hold_onto_dependents
distributed.tests.test_worker ‑ test_host_address
distributed.tests.test_worker ‑ test_host_uses_scheduler_protocol
distributed.tests.test_worker ‑ test_identity
distributed.tests.test_worker ‑ test_inter_worker_communication
distributed.tests.test_worker ‑ test_interface_async[Nanny]
distributed.tests.test_worker ‑ test_interface_async[Worker]
distributed.tests.test_worker ‑ test_io_loop
distributed.tests.test_worker ‑ test_io_loop_alternate_loop
distributed.tests.test_worker ‑ test_lifetime
distributed.tests.test_worker ‑ test_lifetime_stagger
distributed.tests.test_worker ‑ test_local_directory
distributed.tests.test_worker ‑ test_local_directory_make_new_directory
distributed.tests.test_worker ‑ test_log_exception_on_failed_task
distributed.tests.test_worker ‑ test_log_remove_worker
distributed.tests.test_worker ‑ test_memory_limit_auto
distributed.tests.test_worker ‑ test_message_breakup
distributed.tests.test_worker ‑ test_missing_released_zombie_tasks
distributed.tests.test_worker ‑ test_missing_released_zombie_tasks_2
distributed.tests.test_worker ‑ test_multiple_executors
distributed.tests.test_worker ‑ test_multiple_transfers
distributed.tests.test_worker ‑ test_offload_getdata
distributed.tests.test_worker ‑ test_pid
distributed.tests.test_worker ‑ test_plugin_exception
distributed.tests.test_worker ‑ test_plugin_internal_exception
distributed.tests.test_worker ‑ test_plugin_multiple_exceptions
distributed.tests.test_worker ‑ test_prefer_gather_from_local_address
distributed.tests.test_worker ‑ test_priorities
distributed.tests.test_worker ‑ test_process_executor
distributed.tests.test_worker ‑ test_process_executor_kills_process
distributed.tests.test_worker ‑ test_process_executor_raise_exception
distributed.tests.test_worker ‑ test_protocol_from_scheduler_address[Nanny]
distributed.tests.test_worker ‑ test_protocol_from_scheduler_address[Worker]
distributed.tests.test_worker ‑ test_reconnect_argument_deprecated
distributed.tests.test_worker ‑ test_register_worker_callbacks
distributed.tests.test_worker ‑ test_register_worker_callbacks_err
distributed.tests.test_worker ‑ test_remove_replicas_simple
distributed.tests.test_worker ‑ test_restrictions
distributed.tests.test_worker ‑ test_run_coroutine_dask_worker
distributed.tests.test_worker ‑ test_run_dask_worker
distributed.tests.test_worker ‑ test_run_dask_worker_kwonlyarg
distributed.tests.test_worker ‑ test_scheduler_address_config
distributed.tests.test_worker ‑ test_scheduler_delay
distributed.tests.test_worker ‑ test_scheduler_file
distributed.tests.test_worker ‑ test_service_hosts_match_worker
distributed.tests.test_worker ‑ test_share_communication
distributed.tests.test_worker ‑ test_shutdown_on_scheduler_comm_closed
distributed.tests.test_worker ‑ test_start_services
distributed.tests.test_worker ‑ test_startstops
distributed.tests.test_worker ‑ test_statistical_profiling
distributed.tests.test_worker ‑ test_statistical_profiling_2
distributed.tests.test_worker ‑ test_statistical_profiling_cycle
distributed.tests.test_worker ‑ test_stimulus_story
distributed.tests.test_worker ‑ test_stop_doing_unnecessary_work
distributed.tests.test_worker ‑ test_story
distributed.tests.test_worker ‑ test_str
distributed.tests.test_worker ‑ test_suppress_compute_failure_for_cancelled_tasks
distributed.tests.test_worker ‑ test_suppress_keyerror_for_cancelled_tasks[cancelled]
distributed.tests.test_worker ‑ test_suppress_keyerror_for_cancelled_tasks[resumed]
distributed.tests.test_worker ‑ test_system_monitor
distributed.tests.test_worker ‑ test_task_flight_compute_oserror
distributed.tests.test_worker ‑ test_taskstate_metadata
distributed.tests.test_worker ‑ test_tick_interval
distributed.tests.test_worker ‑ test_types
distributed.tests.test_worker ‑ test_update_latency
distributed.tests.test_worker ‑ test_upload_egg
distributed.tests.test_worker ‑ test_upload_file
distributed.tests.test_worker ‑ test_upload_file_pyc
distributed.tests.test_worker ‑ test_upload_large_file
distributed.tests.test_worker ‑ test_upload_pyz
distributed.tests.test_worker ‑ test_wait_for_outgoing
distributed.tests.test_worker ‑ test_who_has_consistent_remove_replicas
distributed.tests.test_worker ‑ test_worker_bad_args
distributed.tests.test_worker ‑ test_worker_client_closes_if_created_on_worker_last_worker_alive
distributed.tests.test_worker ‑ test_worker_client_closes_if_created_on_worker_one_worker
distributed.tests.test_worker ‑ test_worker_client_uses_default_no_close
distributed.tests.test_worker ‑ test_worker_death_timeout
distributed.tests.test_worker ‑ test_worker_descopes_data
distributed.tests.test_worker ‑ test_worker_dir[Nanny]
distributed.tests.test_worker ‑ test_worker_dir[Worker]
distributed.tests.test_worker ‑ test_worker_fds
distributed.tests.test_worker ‑ test_worker_listens_on_same_interface_by_default[Nanny]
distributed.tests.test_worker ‑ test_worker_listens_on_same_interface_by_default[Worker]
distributed.tests.test_worker ‑ test_worker_nthreads
distributed.tests.test_worker ‑ test_worker_port_range
distributed.tests.test_worker ‑ test_worker_running_before_running_plugins
distributed.tests.test_worker ‑ test_worker_state_error_long_chain
distributed.tests.test_worker ‑ test_worker_state_error_release_error_first
distributed.tests.test_worker ‑ test_worker_state_error_release_error_int
distributed.tests.test_worker ‑ test_worker_state_error_release_error_last
distributed.tests.test_worker ‑ test_worker_status_sync
distributed.tests.test_worker ‑ test_worker_task_data
distributed.tests.test_worker ‑ test_worker_waits_for_scheduler
distributed.tests.test_worker ‑ test_worker_with_port_zero
distributed.tests.test_worker ‑ test_workerstate_executing
distributed.tests.test_worker_client ‑ test_async
distributed.tests.test_worker_client ‑ test_client_executor
distributed.tests.test_worker_client ‑ test_closing_worker_doesnt_close_client
distributed.tests.test_worker_client ‑ test_compute_within_worker_client
distributed.tests.test_worker_client ‑ test_dont_override_default_get
distributed.tests.test_worker_client ‑ test_gather_multi_machine
distributed.tests.test_worker_client ‑ test_local_client_warning
distributed.tests.test_worker_client ‑ test_log_event
distributed.tests.test_worker_client ‑ test_log_event_implicit
distributed.tests.test_worker_client ‑ test_same_loop
distributed.tests.test_worker_client ‑ test_scatter_from_worker
distributed.tests.test_worker_client ‑ test_scatter_singleton
distributed.tests.test_worker_client ‑ test_secede_does_not_claim_worker
distributed.tests.test_worker_client ‑ test_secede_without_stealing_issue_1262
distributed.tests.test_worker_client ‑ test_separate_thread_false
distributed.tests.test_worker_client ‑ test_submit_different_names
distributed.tests.test_worker_client ‑ test_submit_from_worker
distributed.tests.test_worker_client ‑ test_submit_from_worker_async
distributed.tests.test_worker_client ‑ test_sync
distributed.tests.test_worker_client ‑ test_timeout
distributed.tests.test_worker_client ‑ test_worker_client_rejoins
distributed.tests.test_worker_memory ‑ test_avoid_memory_monitor_if_zero_limit_nanny
distributed.tests.test_worker_memory ‑ test_avoid_memory_monitor_if_zero_limit_worker
distributed.tests.test_worker_memory ‑ test_delete_spilled_keys
distributed.tests.test_worker_memory ‑ test_deprecated_attributes[Nanny-memory_limit-123000000000.0]
distributed.tests.test_worker_memory ‑ test_deprecated_attributes[Nanny-memory_terminate_fraction-0.789]
distributed.tests.test_worker_memory ‑ test_deprecated_attributes[Worker-memory_limit-123000000000.0]
distributed.tests.test_worker_memory ‑ test_deprecated_attributes[Worker-memory_pause_fraction-0.789]
distributed.tests.test_worker_memory ‑ test_deprecated_attributes[Worker-memory_spill_fraction-0.789]
distributed.tests.test_worker_memory ‑ test_deprecated_attributes[Worker-memory_target_fraction-0.789]
distributed.tests.test_worker_memory ‑ test_deprecated_memory_monitor_method_nanny
distributed.tests.test_worker_memory ‑ test_deprecated_memory_monitor_method_worker
distributed.tests.test_worker_memory ‑ test_deprecated_params[memory_pause_fraction]
distributed.tests.test_worker_memory ‑ test_deprecated_params[memory_spill_fraction]
distributed.tests.test_worker_memory ‑ test_deprecated_params[memory_target_fraction]
distributed.tests.test_worker_memory ‑ test_dict_data_if_no_spill_to_disk
distributed.tests.test_worker_memory ‑ test_disk_cleanup_on_terminate[False]
distributed.tests.test_worker_memory ‑ test_disk_cleanup_on_terminate[True]
distributed.tests.test_worker_memory ‑ test_fail_to_pickle_execute_1
distributed.tests.test_worker_memory ‑ test_fail_to_pickle_execute_2
distributed.tests.test_worker_memory ‑ test_fail_to_pickle_spill
distributed.tests.test_worker_memory ‑ test_high_unmanaged_memory_warning
distributed.tests.test_worker_memory ‑ test_manual_evict_proto
distributed.tests.test_worker_memory ‑ test_nanny_terminate
distributed.tests.test_worker_memory ‑ test_override_data_nanny
distributed.tests.test_worker_memory ‑ test_override_data_vs_memory_monitor
distributed.tests.test_worker_memory ‑ test_override_data_worker
distributed.tests.test_worker_memory ‑ test_parse_memory_limit_nanny
distributed.tests.test_worker_memory ‑ test_parse_memory_limit_worker
distributed.tests.test_worker_memory ‑ test_parse_memory_limit_worker_relative
distributed.tests.test_worker_memory ‑ test_parse_memory_limit_zero
distributed.tests.test_worker_memory ‑ test_pause_executor_manual
distributed.tests.test_worker_memory ‑ test_pause_executor_with_memory_monitor
distributed.tests.test_worker_memory ‑ test_pause_prevents_deps_fetch
distributed.tests.test_worker_memory ‑ test_pause_while_idle
distributed.tests.test_worker_memory ‑ test_pause_while_saturated
distributed.tests.test_worker_memory ‑ test_pause_while_spilling
distributed.tests.test_worker_memory ‑ test_release_evloop_while_spilling
distributed.tests.test_worker_memory ‑ test_resource_limit
distributed.tests.test_worker_memory ‑ test_spill_constrained
distributed.tests.test_worker_memory ‑ test_spill_hysteresis[0.4-0-7]
distributed.tests.test_worker_memory ‑ test_spill_hysteresis[0.7-0-1]
distributed.tests.test_worker_memory ‑ test_spill_hysteresis[False-10000000000-1]
distributed.tests.test_worker_memory ‑ test_spill_spill_threshold
distributed.tests.test_worker_memory ‑ test_spill_target_threshold
distributed.tests.test_worker_memory ‑ test_worker_data_callable_kwargs
distributed.tests.test_worker_memory ‑ test_worker_data_callable_local_directory
distributed.tests.test_worker_memory ‑ test_worker_data_callable_local_directory_kwargs
distributed.tests.test_worker_memory ‑ test_worker_log_memory_limit_too_high
distributed.tests.test_worker_memory ‑ test_workerstate_fail_to_pickle_execute_1[executing]
distributed.tests.test_worker_memory ‑ test_workerstate_fail_to_pickle_execute_1[long-running]
distributed.tests.test_worker_memory ‑ test_workerstate_fail_to_pickle_flight
distributed.tests.test_worker_metrics ‑ test_async_task
distributed.tests.test_worker_metrics ‑ test_cancelled_execute
distributed.tests.test_worker_metrics ‑ test_cancelled_flight
distributed.tests.test_worker_metrics ‑ test_custom_executor
distributed.tests.test_worker_metrics ‑ test_delayed_ledger_is_not_reentrant
distributed.tests.test_worker_metrics ‑ test_do_not_leak_metrics
distributed.tests.test_worker_metrics ‑ test_execute_failed
distributed.tests.test_worker_metrics ‑ test_gather_dep_busy
distributed.tests.test_worker_metrics ‑ test_gather_dep_failed
distributed.tests.test_worker_metrics ‑ test_gather_dep_network_error
distributed.tests.test_worker_metrics ‑ test_gather_dep_no_task
distributed.tests.test_worker_metrics ‑ test_int_metrics
distributed.tests.test_worker_metrics ‑ test_memory_monitor
distributed.tests.test_worker_metrics ‑ test_new_metrics_during_heartbeat
distributed.tests.test_worker_metrics ‑ test_no_spans_extension
distributed.tests.test_worker_metrics ‑ test_offload
distributed.tests.test_worker_metrics ‑ test_reschedule
distributed.tests.test_worker_metrics ‑ test_send_metrics_to_scheduler
distributed.tests.test_worker_metrics ‑ test_task_lifecycle
distributed.tests.test_worker_metrics ‑ test_user_metrics_async
distributed.tests.test_worker_metrics ‑ test_user_metrics_fail
distributed.tests.test_worker_metrics ‑ test_user_metrics_sync
distributed.tests.test_worker_metrics ‑ test_user_metrics_weird
distributed.tests.test_worker_state_machine ‑ test_TaskState__to_dict
distributed.tests.test_worker_state_machine ‑ test_TaskState_eq
distributed.tests.test_worker_state_machine ‑ test_TaskState_get_nbytes
distributed.tests.test_worker_state_machine ‑ test_TaskState_repr
distributed.tests.test_worker_state_machine ‑ test_TaskState_tracking
distributed.tests.test_worker_state_machine ‑ test_WorkerState__to_dict
distributed.tests.test_worker_state_machine ‑ test_WorkerState_pickle
distributed.tests.test_worker_state_machine ‑ test_aggregate_gather_deps[10000000-3-1]
distributed.tests.test_worker_state_machine ‑ test_aggregate_gather_deps[10000000-3-2]
distributed.tests.test_worker_state_machine ‑ test_aggregate_gather_deps[20000000-2-1]
distributed.tests.test_worker_state_machine ‑ test_aggregate_gather_deps[20000000-2-2]
distributed.tests.test_worker_state_machine ‑ test_aggregate_gather_deps[30000000-1-1]
distributed.tests.test_worker_state_machine ‑ test_aggregate_gather_deps[30000000-1-2]
distributed.tests.test_worker_state_machine ‑ test_aggregate_gather_deps[60000000-1-1]
distributed.tests.test_worker_state_machine ‑ test_aggregate_gather_deps[60000000-1-2]
distributed.tests.test_worker_state_machine ‑ test_cancelled_while_in_flight
distributed.tests.test_worker_state_machine ‑ test_clean_log
distributed.tests.test_worker_state_machine ‑ test_computetask_dummy
distributed.tests.test_worker_state_machine ‑ test_computetask_to_dict
distributed.tests.test_worker_state_machine ‑ test_deprecated_worker_attributes
distributed.tests.test_worker_state_machine ‑ test_do_not_throttle_connections_while_below_threshold
distributed.tests.test_worker_state_machine ‑ test_done_resumed_task_not_in_all_running_tasks[executing-ExecuteFailureEvent]
distributed.tests.test_worker_state_machine ‑ test_done_resumed_task_not_in_all_running_tasks[executing-ExecuteSuccessEvent]
distributed.tests.test_worker_state_machine ‑ test_done_resumed_task_not_in_all_running_tasks[executing-RescheduleEvent]
distributed.tests.test_worker_state_machine ‑ test_done_resumed_task_not_in_all_running_tasks[long-running-ExecuteFailureEvent]
distributed.tests.test_worker_state_machine ‑ test_done_resumed_task_not_in_all_running_tasks[long-running-ExecuteSuccessEvent]
distributed.tests.test_worker_state_machine ‑ test_done_resumed_task_not_in_all_running_tasks[long-running-RescheduleEvent]
distributed.tests.test_worker_state_machine ‑ test_done_task_not_in_all_running_tasks[executing-ExecuteFailureEvent]
distributed.tests.test_worker_state_machine ‑ test_done_task_not_in_all_running_tasks[executing-ExecuteSuccessEvent]
distributed.tests.test_worker_state_machine ‑ test_done_task_not_in_all_running_tasks[executing-RescheduleEvent]
distributed.tests.test_worker_state_machine ‑ test_done_task_not_in_all_running_tasks[long-running-ExecuteFailureEvent]
distributed.tests.test_worker_state_machine ‑ test_done_task_not_in_all_running_tasks[long-running-ExecuteSuccessEvent]
distributed.tests.test_worker_state_machine ‑ test_done_task_not_in_all_running_tasks[long-running-RescheduleEvent]
distributed.tests.test_worker_state_machine ‑ test_event_to_dict_with_annotations
distributed.tests.test_worker_state_machine ‑ test_event_to_dict_without_annotations
distributed.tests.test_worker_state_machine ‑ test_executefailure_dummy
distributed.tests.test_worker_state_machine ‑ test_executefailure_to_dict
distributed.tests.test_worker_state_machine ‑ test_executesuccess_dummy
distributed.tests.test_worker_state_machine ‑ test_executesuccess_to_dict
distributed.tests.test_worker_state_machine ‑ test_fetch_count
distributed.tests.test_worker_state_machine ‑ test_fetch_to_compute
distributed.tests.test_worker_state_machine ‑ test_fetch_to_missing_on_busy
distributed.tests.test_worker_state_machine ‑ test_fetch_to_missing_on_network_failure
distributed.tests.test_worker_state_machine ‑ test_fetch_to_missing_on_refresh_who_has
distributed.tests.test_worker_state_machine ‑ test_fetch_via_amm_to_compute
distributed.tests.test_worker_state_machine ‑ test_forget_data_needed
distributed.tests.test_worker_state_machine ‑ test_gather_dep_failure
distributed.tests.test_worker_state_machine ‑ test_gather_priority
distributed.tests.test_worker_state_machine ‑ test_in_memory_while_in_flight
distributed.tests.test_worker_state_machine ‑ test_instruction_match
distributed.tests.test_worker_state_machine ‑ test_lose_replica_during_fetch[False]
distributed.tests.test_worker_state_machine ‑ test_lose_replica_during_fetch[True]
distributed.tests.test_worker_state_machine ‑ test_merge_recs_instructions
distributed.tests.test_worker_state_machine ‑ test_message_target_does_not_affect_first_transfer_on_different_worker
distributed.tests.test_worker_state_machine ‑ test_missing_handle_compute_dependency
distributed.tests.test_worker_state_machine ‑ test_missing_to_waiting
distributed.tests.test_worker_state_machine ‑ test_new_replica_while_all_workers_in_flight
distributed.tests.test_worker_state_machine ‑ test_pickle_exceptions[False-InvalidTaskState-kwargs2]
distributed.tests.test_worker_state_machine ‑ test_pickle_exceptions[False-InvalidTransition-kwargs0]
distributed.tests.test_worker_state_machine ‑ test_pickle_exceptions[False-TransitionCounterMaxExceeded-kwargs1]
distributed.tests.test_worker_state_machine ‑ test_pickle_exceptions[True-InvalidTaskState-kwargs2]
distributed.tests.test_worker_state_machine ‑ test_pickle_exceptions[True-InvalidTransition-kwargs0]
distributed.tests.test_worker_state_machine ‑ test_pickle_exceptions[True-TransitionCounterMaxExceeded-kwargs1]
distributed.tests.test_worker_state_machine ‑ test_recompute_erred_task
distributed.tests.test_worker_state_machine ‑ test_remove_worker_unknown
distributed.tests.test_worker_state_machine ‑ test_remove_worker_while_in_fetch
distributed.tests.test_worker_state_machine ‑ test_remove_worker_while_in_flight[busy]
distributed.tests.test_worker_state_machine ‑ test_remove_worker_while_in_flight[fail]
distributed.tests.test_worker_state_machine ‑ test_remove_worker_while_in_flight[no-key]
distributed.tests.test_worker_state_machine ‑ test_remove_worker_while_in_flight[success]
distributed.tests.test_worker_state_machine ‑ test_remove_worker_while_in_flight_unused_peer
distributed.tests.test_worker_state_machine ‑ test_resumed_task_releases_resources[executing-ExecuteFailureEvent]
distributed.tests.test_worker_state_machine ‑ test_resumed_task_releases_resources[executing-ExecuteSuccessEvent]
distributed.tests.test_worker_state_machine ‑ test_resumed_task_releases_resources[executing-RescheduleEvent]
distributed.tests.test_worker_state_machine ‑ test_resumed_task_releases_resources[long-running-ExecuteFailureEvent]
distributed.tests.test_worker_state_machine ‑ test_resumed_task_releases_resources[long-running-ExecuteSuccessEvent]
distributed.tests.test_worker_state_machine ‑ test_resumed_task_releases_resources[long-running-RescheduleEvent]
distributed.tests.test_worker_state_machine ‑ test_running_task_in_all_running_tasks[executing]
distributed.tests.test_worker_state_machine ‑ test_running_task_in_all_running_tasks[long-running]
distributed.tests.test_worker_state_machine ‑ test_sendmsg_to_dict
distributed.tests.test_worker_state_machine ‑ test_slots[AcquireReplicasEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[AddKeysMsg]
distributed.tests.test_worker_state_machine ‑ test_slots[CancelComputeEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[ComputeTaskEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[ExecuteDoneEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[ExecuteFailureEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[ExecuteSuccessEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[Execute]
distributed.tests.test_worker_state_machine ‑ test_slots[FindMissingEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[FreeKeysEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[GatherDepBusyEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[GatherDepDoneEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[GatherDepFailureEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[GatherDepNetworkFailureEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[GatherDepSuccessEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[GatherDep]
distributed.tests.test_worker_state_machine ‑ test_slots[Instruction]
distributed.tests.test_worker_state_machine ‑ test_slots[LongRunningMsg]
distributed.tests.test_worker_state_machine ‑ test_slots[PauseEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[RefreshWhoHasEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[ReleaseWorkerDataMsg]
distributed.tests.test_worker_state_machine ‑ test_slots[RemoveReplicasEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[RemoveWorkerEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[RequestRefreshWhoHasMsg]
distributed.tests.test_worker_state_machine ‑ test_slots[RescheduleEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[RescheduleMsg]
distributed.tests.test_worker_state_machine ‑ test_slots[RetryBusyWorkerEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[RetryBusyWorkerLater]
distributed.tests.test_worker_state_machine ‑ test_slots[SecedeEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[SendMessageToScheduler]
distributed.tests.test_worker_state_machine ‑ test_slots[StateMachineEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[StealRequestEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[StealResponseMsg]
distributed.tests.test_worker_state_machine ‑ test_slots[TaskErredMsg]
distributed.tests.test_worker_state_machine ‑ test_slots[TaskFinishedMsg]
distributed.tests.test_worker_state_machine ‑ test_slots[TaskState]
distributed.tests.test_worker_state_machine ‑ test_slots[UnpauseEvent]
distributed.tests.test_worker_state_machine ‑ test_slots[UpdateDataEvent]
distributed.tests.test_worker_state_machine ‑ test_task_acquires_resources[executing]
distributed.tests.test_worker_state_machine ‑ test_task_acquires_resources[long-running]
distributed.tests.test_worker_state_machine ‑ test_task_counter
distributed.tests.test_worker_state_machine ‑ test_task_releases_resources[executing-ExecuteFailureEvent]
distributed.tests.test_worker_state_machine ‑ test_task_releases_resources[executing-ExecuteSuccessEvent]
distributed.tests.test_worker_state_machine ‑ test_task_releases_resources[executing-RescheduleEvent]
distributed.tests.test_worker_state_machine ‑ test_task_releases_resources[long-running-ExecuteFailureEvent]
distributed.tests.test_worker_state_machine ‑ test_task_releases_resources[long-running-ExecuteSuccessEvent]
distributed.tests.test_worker_state_machine ‑ test_task_releases_resources[long-running-RescheduleEvent]
distributed.tests.test_worker_state_machine ‑ test_task_state_instance_are_garbage_collected
distributed.tests.test_worker_state_machine ‑ test_task_with_dependencies_acquires_resources
distributed.tests.test_worker_state_machine ‑ test_throttle_incoming_transfers_on_count_limit
distributed.tests.test_worker_state_machine ‑ test_throttle_on_transfer_bytes_regardless_of_threshold
distributed.tests.test_worker_state_machine ‑ test_throttling_does_not_affect_first_transfer
distributed.tests.test_worker_state_machine ‑ test_throttling_incoming_transfer_on_transfer_bytes_different_workers
distributed.tests.test_worker_state_machine ‑ test_throttling_incoming_transfer_on_transfer_bytes_same_worker
distributed.tests.test_worker_state_machine ‑ test_transfer_incoming_metrics
distributed.tests.test_worker_state_machine ‑ test_updatedata_to_dict
distributed.tests.test_worker_state_machine ‑ test_worker_nbytes[executing]
distributed.tests.test_worker_state_machine ‑ test_worker_nbytes[long-running]