Source code for pynenc.identifiers.call_id

from dataclasses import dataclass
from functools import cached_property

from pynenc.identifiers.task_id import TaskId


[docs] @dataclass(frozen=True) class CallId: """Identifier for a task call. :param TaskId task_id: Fully qualified task identifier (module.function) :param str args_id: Hash-based identifier for the argument set """ task_id: TaskId args_id: str @cached_property def key(self) -> str: """Composite key for storage and lookup.""" return self.task_id.key + ":" + self.args_id
[docs] @classmethod def from_key(cls, key: str) -> "CallId": """Parse a CallId from its composite key.""" try: task_id_str, args_id = key.rsplit(":", 1) except ValueError as ex: raise ValueError(f"Invalid CallId key format: {key}") from ex return cls(task_id=TaskId.from_key(task_id_str), args_id=args_id)
[docs] def __str__(self) -> str: return self.key