MCPcopy Create free account
hub / github.com/dask/dask / DependenciesMapping

Class DependenciesMapping

dask/_task_spec.py:988–1026  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

986
987
988class DependenciesMapping(MutableMapping):
989 def __init__(self, dsk):
990 self.dsk = dsk
991 self._removed = set()
992 # Set a copy of dsk to avoid dct resizing
993 self._cache = dsk.copy()
994 self._cache.clear()
995
996 def __getitem__(self, key):
997 if (val := self._cache.get(key)) is not None:
998 return val
999 else:
1000 v = self.dsk[key]
1001 try:
1002 deps = v.dependencies
1003 except AttributeError:
1004 from dask.core import get_dependencies
1005
1006 deps = get_dependencies(self.dsk, task=v)
1007
1008 if self._removed:
1009 # deps is a frozenset but for good measure, let's not use -= since
1010 # that _may_ perform an inplace mutation
1011 deps = deps - self._removed
1012 self._cache[key] = deps
1013 return deps
1014
1015 def __iter__(self):
1016 return iter(self.dsk)
1017
1018 def __delitem__(self, key: Any) -> None:
1019 self._cache.clear()
1020 self._removed.add(key)
1021
1022 def __setitem__(self, key: Any, value: Any) -> None:
1023 raise NotImplementedError
1024
1025 def __len__(self) -> int:
1026 return len(self.dsk)
1027
1028
1029class _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