MCPcopy
hub / github.com/dask/dask / DependenciesMapping

Class DependenciesMapping

dask/_task_spec.py:1006–1044  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1004
1005
1006class DependenciesMapping(MutableMapping):
1007 def __init__(self, dsk):
1008 self.dsk = dsk
1009 self._removed = set()
1010 # Set a copy of dsk to avoid dct resizing
1011 self._cache = dsk.copy()
1012 self._cache.clear()
1013
1014 def __getitem__(self, key):
1015 if (val := self._cache.get(key)) is not None:
1016 return val
1017 else:
1018 v = self.dsk[key]
1019 try:
1020 deps = v.dependencies
1021 except AttributeError:
1022 from dask.core import get_dependencies
1023
1024 deps = get_dependencies(self.dsk, task=v)
1025
1026 if self._removed:
1027 # deps is a frozenset but for good measure, let's not use -= since
1028 # that _may_ perform an inplace mutation
1029 deps = deps - self._removed
1030 self._cache[key] = deps
1031 return deps
1032
1033 def __iter__(self):
1034 return iter(self.dsk)
1035
1036 def __delitem__(self, key: Any) -> None:
1037 self._cache.clear()
1038 self._removed.add(key)
1039
1040 def __setitem__(self, key: Any, value: Any) -> None:
1041 raise NotImplementedError
1042
1043 def __len__(self) -> int:
1044 return len(self.dsk)
1045
1046
1047class _DevNullMapping(MutableMapping):

Callers 10

_toposortFunction · 0.90
orderFunction · 0.90
sanitize_dskFunction · 0.90
test_resolve_aliasesFunction · 0.90
test_convert_resolveFunction · 0.90
optimizerFunction · 0.90
execute_graphFunction · 0.85
fuse_linear_task_specFunction · 0.85

Calls

no outgoing calls

Tested by 5

test_resolve_aliasesFunction · 0.72
test_convert_resolveFunction · 0.72
optimizerFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…