Skip to content

Commit 58bd687

Browse files
committed
rebase conflict fixes
1 parent 43b6c1c commit 58bd687

6 files changed

Lines changed: 97 additions & 16 deletions

File tree

temporalio/bridge/proto/activity_task/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
1-
from .activity_task_pb2 import ActivityCancelReason, ActivityTask, Cancel, Start
1+
from .activity_task_pb2 import (
2+
ActivityCancellationDetails,
3+
ActivityCancelReason,
4+
ActivityTask,
5+
Cancel,
6+
Start,
7+
)
28

39
__all__ = [
410
"ActivityCancelReason",
11+
"ActivityCancellationDetails",
512
"ActivityTask",
613
"Cancel",
714
"Start",

temporalio/bridge/proto/activity_task/activity_task_pb2.py

Lines changed: 22 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

temporalio/bridge/proto/activity_task/activity_task_pb2.pyi

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ class _ActivityCancelReasonEnumTypeWrapper(
4545
"""Activity timed out"""
4646
WORKER_SHUTDOWN: _ActivityCancelReason.ValueType # 3
4747
"""Core is shutting down and the graceful timeout has elapsed"""
48+
PAUSED: _ActivityCancelReason.ValueType # 4
49+
"""Activity was paused"""
4850

4951
class ActivityCancelReason(
5052
_ActivityCancelReason, metaclass=_ActivityCancelReasonEnumTypeWrapper
@@ -58,6 +60,8 @@ TIMED_OUT: ActivityCancelReason.ValueType # 2
5860
"""Activity timed out"""
5961
WORKER_SHUTDOWN: ActivityCancelReason.ValueType # 3
6062
"""Core is shutting down and the graceful timeout has elapsed"""
63+
PAUSED: ActivityCancelReason.ValueType # 4
64+
"""Activity was paused"""
6165
global___ActivityCancelReason = ActivityCancelReason
6266

6367
class ActivityTask(google.protobuf.message.Message):
@@ -320,14 +324,66 @@ class Cancel(google.protobuf.message.Message):
320324
DESCRIPTOR: google.protobuf.descriptor.Descriptor
321325

322326
REASON_FIELD_NUMBER: builtins.int
327+
DETAILS_FIELD_NUMBER: builtins.int
323328
reason: global___ActivityCancelReason.ValueType
329+
"""Primary cancellation reason"""
330+
@property
331+
def details(self) -> global___ActivityCancellationDetails:
332+
"""Activity cancellation details, surfaces all cancellation reasons."""
324333
def __init__(
325334
self,
326335
*,
327336
reason: global___ActivityCancelReason.ValueType = ...,
337+
details: global___ActivityCancellationDetails | None = ...,
328338
) -> None: ...
339+
def HasField(
340+
self, field_name: typing_extensions.Literal["details", b"details"]
341+
) -> builtins.bool: ...
329342
def ClearField(
330-
self, field_name: typing_extensions.Literal["reason", b"reason"]
343+
self,
344+
field_name: typing_extensions.Literal[
345+
"details", b"details", "reason", b"reason"
346+
],
331347
) -> None: ...
332348

333349
global___Cancel = Cancel
350+
351+
class ActivityCancellationDetails(google.protobuf.message.Message):
352+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
353+
354+
IS_NOT_FOUND_FIELD_NUMBER: builtins.int
355+
IS_CANCELLED_FIELD_NUMBER: builtins.int
356+
IS_PAUSED_FIELD_NUMBER: builtins.int
357+
IS_TIMED_OUT_FIELD_NUMBER: builtins.int
358+
IS_WORKER_SHUTDOWN_FIELD_NUMBER: builtins.int
359+
is_not_found: builtins.bool
360+
is_cancelled: builtins.bool
361+
is_paused: builtins.bool
362+
is_timed_out: builtins.bool
363+
is_worker_shutdown: builtins.bool
364+
def __init__(
365+
self,
366+
*,
367+
is_not_found: builtins.bool = ...,
368+
is_cancelled: builtins.bool = ...,
369+
is_paused: builtins.bool = ...,
370+
is_timed_out: builtins.bool = ...,
371+
is_worker_shutdown: builtins.bool = ...,
372+
) -> None: ...
373+
def ClearField(
374+
self,
375+
field_name: typing_extensions.Literal[
376+
"is_cancelled",
377+
b"is_cancelled",
378+
"is_not_found",
379+
b"is_not_found",
380+
"is_paused",
381+
b"is_paused",
382+
"is_timed_out",
383+
b"is_timed_out",
384+
"is_worker_shutdown",
385+
b"is_worker_shutdown",
386+
],
387+
) -> None: ...
388+
389+
global___ActivityCancellationDetails = ActivityCancellationDetails

temporalio/testing/_activity.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ def __init__(self) -> None:
8080

8181
def cancel(
8282
self,
83-
cancellation_details: temporalio.activity.ActivityCancellationDetails = temporalio.activity.ActivityCancellationDetails(cancel_requested=True),
83+
cancellation_details: temporalio.activity.ActivityCancellationDetails = temporalio.activity.ActivityCancellationDetails(
84+
cancel_requested=True
85+
),
8486
) -> None:
8587
"""Cancel the activity.
8688

tests/helpers/__init__.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,12 +223,15 @@ async def assert_pending_activity_exists_eventually(
223223
timeout: timedelta = timedelta(seconds=5),
224224
) -> PendingActivityInfo:
225225
"""Wait until a pending activity with the given ID exists and return it."""
226+
226227
async def check() -> Optional[PendingActivityInfo]:
227228
desc = await handle.describe()
228229
for act in desc.raw_description.pending_activities:
229230
if act.activity_id == activity_id:
230231
return act
231-
raise AssertionError(f"Activity with ID {activity_id} not found in pending activities")
232+
raise AssertionError(
233+
f"Activity with ID {activity_id} not found in pending activities"
234+
)
232235

233236
activity_info = await assert_eventually(check, timeout=timeout)
234237
return cast(PendingActivityInfo, activity_info)
@@ -273,4 +276,4 @@ async def check_unpaused() -> bool:
273276
info = await assert_pending_activity_exists_eventually(handle, activity_id)
274277
return not info.paused
275278

276-
await assert_eventually(check_unpaused)
279+
await assert_eventually(check_unpaused)

tests/worker/test_workflow.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@
4949
from temporalio.api.sdk.v1 import EnhancedStackTrace
5050
from temporalio.api.workflowservice.v1 import (
5151
GetWorkflowExecutionHistoryRequest,
52+
PauseActivityRequest,
5253
ResetStickyTaskQueueRequest,
53-
PauseActivityRequest
5454
)
5555
from temporalio.bridge.proto.workflow_activation import WorkflowActivation
5656
from temporalio.bridge.proto.workflow_completion import WorkflowActivationCompletion
@@ -95,7 +95,6 @@
9595
TemporalError,
9696
TimeoutError,
9797
WorkflowAlreadyStartedError,
98-
ActivityPausedError
9998
)
10099
from temporalio.runtime import (
101100
BUFFERED_METRIC_KIND_COUNTER,
@@ -120,10 +119,10 @@
120119
admitted_update_task,
121120
assert_eq_eventually,
122121
assert_eventually,
122+
assert_pending_activity_exists_eventually,
123123
assert_task_fail_eventually,
124124
assert_workflow_exists_eventually,
125125
ensure_search_attributes_present,
126-
assert_pending_activity_exists_eventually,
127126
find_free_port,
128127
new_worker,
129128
pause_and_assert,
@@ -7632,9 +7631,6 @@ async def test_workflow_missing_local_activity_no_activities(client: Client):
76327631

76337632

76347633
@activity.defn
7635-
async def heartbeat_activity() -> (
7636-
Optional[temporalio.activity.ActivityCancellationDetails]
7637-
):
76387634
async def heartbeat_activity(
76397635
catch_err: bool = True,
76407636
) -> Optional[temporalio.activity.ActivityCancellationDetails]:

0 commit comments

Comments
 (0)