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

Class DependenciesMapping

dask/_task_spec.py:997–1035  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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