MCPcopy
hub / github.com/dask/dask / lol_tuples

Function lol_tuples

dask/blockwise.py:1040–1074  ·  view source on GitHub ↗

List of list of tuple keys Parameters ---------- head : tuple The known tuple so far ind : Iterable An iterable of indices not yet covered values : dict Known values for non-dummy indices dummies : dict Ranges of values for dummy indices

(head, ind, values, dummies)

Source from the content-addressed store, hash-verified

1038
1039
1040def lol_tuples(head, ind, values, dummies):
1041 """List of list of tuple keys
1042
1043 Parameters
1044 ----------
1045 head : tuple
1046 The known tuple so far
1047 ind : Iterable
1048 An iterable of indices not yet covered
1049 values : dict
1050 Known values for non-dummy indices
1051 dummies : dict
1052 Ranges of values for dummy indices
1053
1054 Examples
1055 --------
1056 >>> lol_tuples(('x',), 'ij', {'i': 1, 'j': 0}, {})
1057 ('x', 1, 0)
1058
1059 >>> lol_tuples(('x',), 'ij', {'i': 1}, {'j': range(3)})
1060 [('x', 1, 0), ('x', 1, 1), ('x', 1, 2)]
1061
1062 >>> lol_tuples(('x',), 'ijk', {'i': 1}, {'j': [0, 1, 2], 'k': [0, 1]}) # doctest: +NORMALIZE_WHITESPACE
1063 [[('x', 1, 0, 0), ('x', 1, 0, 1)],
1064 [('x', 1, 1, 0), ('x', 1, 1, 1)],
1065 [('x', 1, 2, 0), ('x', 1, 2, 1)]]
1066 """
1067 if not ind:
1068 return head
1069 if ind[0] not in dummies:
1070 return lol_tuples(head + (values[ind[0]],), ind[1:], values, dummies)
1071 else:
1072 return [
1073 lol_tuples(head + (v,), ind[1:], values, dummies) for v in dummies[ind[0]]
1074 ]
1075
1076
1077def optimize_blockwise(graph, keys=()):

Callers 2

partial_reduceFunction · 0.90
_layerMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…