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

Class Alias

dask/_task_spec.py:503–563  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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