MCPcopy
hub / github.com/dask/dask / HLGExpr

Class HLGExpr

dask/_expr.py:969–1077  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

967
968
969class HLGExpr(Expr):
970 _parameters = [
971 "dsk",
972 "low_level_optimizer",
973 "output_keys",
974 "postcompute",
975 "_cached_optimized",
976 ]
977 _defaults = {
978 "low_level_optimizer": None,
979 "output_keys": None,
980 "postcompute": None,
981 "_cached_optimized": None,
982 }
983
984 @property
985 def hlg(self):
986 return self.operand("dsk")
987
988 @staticmethod
989 def from_collection(collection, optimize_graph=True):
990 from dask.highlevelgraph import HighLevelGraph
991
992 if hasattr(collection, "dask"):
993 dsk = collection.dask.copy()
994 else:
995 dsk = collection.__dask_graph__()
996
997 # Delayed objects still ship with low level graphs as `dask` when going
998 # through optimize / persist
999 if not isinstance(dsk, HighLevelGraph):
1000
1001 dsk = HighLevelGraph.from_collections(
1002 str(id(collection)), dsk, dependencies=()
1003 )
1004 if optimize_graph and not hasattr(collection, "__dask_optimize__"):
1005 warnings.warn(
1006 f"Collection {type(collection)} does not define a "
1007 "`__dask_optimize__` method. In the future this will raise. "
1008 "If no optimization is desired, please set this to `None`.",
1009 PendingDeprecationWarning,
1010 )
1011 low_level_optimizer = None
1012 else:
1013 low_level_optimizer = (
1014 collection.__dask_optimize__ if optimize_graph else None
1015 )
1016 return HLGExpr(
1017 dsk=dsk,
1018 low_level_optimizer=low_level_optimizer,
1019 output_keys=collection.__dask_keys__(),
1020 postcompute=collection.__dask_postcompute__(),
1021 )
1022
1023 def finalize_compute(self):
1024 return HLGFinalizeCompute(
1025 self,
1026 low_level_optimizer=self.low_level_optimizer,

Calls

no outgoing calls

Used in the wild real call sites across dependent graphs

searching dependent graphs…