MCPcopy
hub / github.com/dask/dask / Alias

Class Alias

dask/_task_spec.py:512–572  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

510
511
512class Alias(GraphNode):
513 target: KeyType
514 __slots__ = tuple(__annotations__)
515
516 def __init__(
517 self, key: KeyType | TaskRef, target: Alias | TaskRef | KeyType | None = None
518 ):
519 if isinstance(key, TaskRef):
520 key = key.key
521 self.key = key
522 if target is None:
523 target = key
524 if isinstance(target, Alias):
525 target = target.target
526 if isinstance(target, TaskRef):
527 target = target.key
528 self.target = target
529 self._dependencies = frozenset((self.target,))
530
531 def __reduce__(self):
532 return Alias, (self.key, self.target)
533
534 def copy(self):
535 return Alias(self.key, self.target)
536
537 def substitute(
538 self, subs: dict[KeyType, KeyType | GraphNode], key: KeyType | None = None
539 ) -> GraphNode:
540 if self.key in subs or self.target in subs:
541 sub_key = subs.get(self.key, self.key)
542 val = subs.get(self.target, self.target)
543 if sub_key == self.key and val == self.target:
544 return self
545 if isinstance(val, (GraphNode, TaskRef)):
546 return val.substitute({}, key=key)
547 if key is None and isinstance(sub_key, GraphNode):
548 raise RuntimeError(
549 f"Invalid substitution encountered {self.key!r} -> {sub_key}"
550 )
551 return Alias(key or sub_key, val) # type: ignore [arg-type]
552 return self
553
554 def __dask_tokenize__(self):
555 return (type(self).__name__, self.key, self.target)
556
557 def __call__(self, values=()):
558 self._verify_values(values)
559 return values[self.target]
560
561 def __repr__(self):
562 if self.key != self.target:
563 return f"Alias({self.key!r}->{self.target!r})"
564 else:
565 return f"Alias({self.key!r})"
566
567 def __eq__(self, value: object) -> bool:
568 if not isinstance(value, Alias):
569 return False

Callers 15

_taskMethod · 0.90
_layerMethod · 0.90
_taskMethod · 0.90
_layerMethod · 0.90
_layerMethod · 0.90
_filtered_taskMethod · 0.90
test_task_eqFunction · 0.90
test_pickle_sizeFunction · 0.90
test_resolve_aliasesFunction · 0.90
test_alias_task_ref_keyFunction · 0.90
test_hybrid_legacy_newFunction · 0.90

Calls

no outgoing calls

Tested by 7

test_task_eqFunction · 0.72
test_pickle_sizeFunction · 0.72
test_resolve_aliasesFunction · 0.72
test_alias_task_ref_keyFunction · 0.72
test_hybrid_legacy_newFunction · 0.72
test_take_sorted_indexerFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…