forked from dapr/python-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathworkflow_activity_context.py
More file actions
54 lines (40 loc) · 1.75 KB
/
Copy pathworkflow_activity_context.py
File metadata and controls
54 lines (40 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# -*- coding: utf-8 -*-
"""
Copyright 2023 The Dapr Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
from __future__ import annotations
from typing import Callable, Optional, TypeVar
from dapr.ext.workflow._durabletask import task
from dapr.ext.workflow.propagation import PropagatedHistory
T = TypeVar('T')
TInput = TypeVar('TInput')
TOutput = TypeVar('TOutput')
class WorkflowActivityContext:
"""Defines properties and methods for task activity context objects."""
def __init__(self, ctx: task.ActivityContext):
self.__obj = ctx
@property
def workflow_id(self) -> str:
"""Gets the unique ID of the current workflow instance"""
return self.__obj.orchestration_id
@property
def task_id(self) -> int:
"""Gets the unique ID of the current workflow task"""
return self.__obj.task_id
def get_inner_context(self) -> task.ActivityContext:
return self.__obj
def get_propagated_history(self) -> Optional[PropagatedHistory]:
"""Return history propagated from the calling workflow, or ``None`` if
the caller did not opt in to history propagation."""
return self.__obj.get_propagated_history()
# Activities are simple functions that can be scheduled by workflows
Activity = Callable[..., TOutput]