Skip to content

Commit 7456f44

Browse files
authored
Remove activity info retry policy (#65)
Fixes #62
1 parent a5c455b commit 7456f44

File tree

3 files changed

+21
-11
lines changed

3 files changed

+21
-11
lines changed

temporalio/activity.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ class Info:
8686
heartbeat_details: Iterable[Any]
8787
heartbeat_timeout: Optional[timedelta]
8888
is_local: bool
89-
retry_policy: Optional[temporalio.common.RetryPolicy]
9089
schedule_to_close_timeout: Optional[timedelta]
9190
scheduled_time: datetime
9291
start_to_close_timeout: Optional[timedelta]

temporalio/worker/activity.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -342,20 +342,19 @@ async def _run_activity(
342342
start.current_attempt_scheduled_time
343343
),
344344
heartbeat_details=heartbeat_details,
345-
heartbeat_timeout=start.heartbeat_timeout.ToTimedelta()
345+
heartbeat_timeout=_proto_to_non_zero_timedelta(start.heartbeat_timeout)
346346
if start.HasField("heartbeat_timeout")
347347
else None,
348348
is_local=start.is_local,
349-
retry_policy=temporalio.common.RetryPolicy.from_proto(
350-
start.retry_policy
349+
schedule_to_close_timeout=_proto_to_non_zero_timedelta(
350+
start.schedule_to_close_timeout
351351
)
352-
if start.HasField("retry_policy")
353-
else None,
354-
schedule_to_close_timeout=start.schedule_to_close_timeout.ToTimedelta()
355352
if start.HasField("schedule_to_close_timeout")
356353
else None,
357354
scheduled_time=_proto_to_datetime(start.scheduled_time),
358-
start_to_close_timeout=start.start_to_close_timeout.ToTimedelta()
355+
start_to_close_timeout=_proto_to_non_zero_timedelta(
356+
start.start_to_close_timeout
357+
)
359358
if start.HasField("start_to_close_timeout")
360359
else None,
361360
started_time=_proto_to_datetime(start.started_time),
@@ -796,3 +795,11 @@ def _proto_to_datetime(
796795
) -> datetime:
797796
# Protobuf doesn't set the timezone but we want to
798797
return ts.ToDatetime().replace(tzinfo=timezone.utc)
798+
799+
800+
def _proto_to_non_zero_timedelta(
801+
dur: google.protobuf.duration_pb2.Duration,
802+
) -> Optional[timedelta]:
803+
if dur.nanos == 0 and dur.seconds == 0:
804+
return None
805+
return dur.ToTimedelta()

tests/worker/test_activity.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,18 @@ async def capture_info() -> None:
9898
assert info.activity_id
9999
assert info.activity_type == "capture_info"
100100
assert info.attempt == 1
101+
assert abs(
102+
info.current_attempt_scheduled_time - datetime.now(timezone.utc)
103+
) < timedelta(seconds=5)
101104
assert info.heartbeat_details == []
102-
assert info.heartbeat_timeout == timedelta()
103-
# TODO(cretz): Broken?
104-
# assert info.schedule_to_close_timeout is None
105+
assert info.heartbeat_timeout is None
106+
assert not info.is_local
107+
assert info.schedule_to_close_timeout is None
105108
assert abs(info.scheduled_time - datetime.now(timezone.utc)) < timedelta(seconds=5)
106109
assert info.start_to_close_timeout == timedelta(seconds=4)
107110
assert abs(info.started_time - datetime.now(timezone.utc)) < timedelta(seconds=5)
108111
assert info.task_queue == result.act_task_queue
112+
assert info.task_token
109113
assert info.workflow_id == result.handle.id
110114
assert info.workflow_namespace == client.namespace
111115
assert info.workflow_run_id == result.handle.first_execution_run_id

0 commit comments

Comments
 (0)