Skip to content

Commit e8e8ee6

Browse files
authored
Update SDK to beta 3 (temporalio#27)
1 parent 42613a0 commit e8e8ee6

7 files changed

Lines changed: 63 additions & 23 deletions

File tree

hello/hello_activity_choice.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,31 +58,33 @@ async def run(self, list: ShoppingList) -> str:
5858
# Order each thing on the list
5959
ordered: List[str] = []
6060
for item in list.items:
61-
if item.fruit is Fruit.APPLE:
61+
# TODO(cretz): Use "is" instead of "==" after
62+
# https://github.com/temporalio/sdk-python/issues/200 is fixed
63+
if item.fruit == Fruit.APPLE:
6264
ordered.append(
6365
await workflow.execute_activity(
6466
order_apples,
6567
item.amount,
6668
start_to_close_timeout=timedelta(seconds=5),
6769
)
6870
)
69-
elif item.fruit is Fruit.BANANA:
71+
elif item.fruit == Fruit.BANANA:
7072
ordered.append(
7173
await workflow.execute_activity(
7274
order_bananas,
7375
item.amount,
7476
start_to_close_timeout=timedelta(seconds=5),
7577
)
7678
)
77-
elif item.fruit is Fruit.CHERRY:
79+
elif item.fruit == Fruit.CHERRY:
7880
ordered.append(
7981
await workflow.execute_activity(
8082
order_cherries,
8183
item.amount,
8284
start_to_close_timeout=timedelta(seconds=5),
8385
)
8486
)
85-
elif item.fruit is Fruit.ORANGE:
87+
elif item.fruit == Fruit.ORANGE:
8688
ordered.append(
8789
await workflow.execute_activity(
8890
order_oranges,

hello/hello_activity_multiprocess.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@
22
import multiprocessing
33
import os
44
import time
5-
from concurrent.futures import ProcessPoolExecutor
65
from dataclasses import dataclass
76
from datetime import timedelta
87

98
from temporalio import activity, workflow
109
from temporalio.client import Client
1110
from temporalio.worker import SharedStateManager, Worker
1211

12+
# TODO(cretz): https://github.com/temporalio/sdk-python/issues/201
13+
with workflow.unsafe.sandbox_unrestricted():
14+
from concurrent.futures import ProcessPoolExecutor
15+
1316

1417
@dataclass
1518
class ComposeGreetingInput:

hello/hello_activity_threaded.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
import asyncio
22
import threading
33
import time
4-
from concurrent.futures import ThreadPoolExecutor
54
from dataclasses import dataclass
65
from datetime import timedelta
76

87
from temporalio import activity, workflow
98
from temporalio.client import Client
109
from temporalio.worker import Worker
1110

11+
# TODO(cretz): https://github.com/temporalio/sdk-python/issues/201
12+
with workflow.unsafe.sandbox_unrestricted():
13+
from concurrent.futures import ThreadPoolExecutor
14+
1215

1316
@dataclass
1417
class ComposeGreetingInput:

open_telemetry/starter.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,18 @@
33
from temporalio.client import Client
44
from temporalio.contrib.opentelemetry import TracingInterceptor
55

6-
from open_telemetry.worker import GreetingWorkflow, init_opentelemetry
6+
from open_telemetry.worker import GreetingWorkflow, init_runtime_with_telemetry
77

88

99
async def main():
10-
init_opentelemetry()
10+
runtime = init_runtime_with_telemetry()
1111

1212
# Connect client
1313
client = await Client.connect(
1414
"localhost:7233",
1515
# Use OpenTelemetry interceptor
1616
interceptors=[TracingInterceptor()],
17+
runtime=runtime,
1718
)
1819

1920
# Run workflow

open_telemetry/worker.py

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import asyncio
22
from datetime import timedelta
33

4+
import opentelemetry.context
45
from opentelemetry import trace
56

67
# See note in README about why Thrift
@@ -9,7 +10,12 @@
910
from opentelemetry.sdk.trace import TracerProvider
1011
from opentelemetry.sdk.trace.export import BatchSpanProcessor
1112
from temporalio import activity, workflow
12-
from temporalio.bridge import telemetry
13+
from temporalio.bridge.runtime import (
14+
MetricsConfig,
15+
OpenTelemetryConfig,
16+
Runtime,
17+
TelemetryConfig,
18+
)
1319
from temporalio.client import Client
1420
from temporalio.contrib.opentelemetry import TracingInterceptor
1521
from temporalio.worker import Worker
@@ -34,30 +40,38 @@ async def compose_greeting(name: str) -> str:
3440
interrupt_event = asyncio.Event()
3541

3642

37-
def init_opentelemetry() -> None:
43+
def init_runtime_with_telemetry() -> Runtime:
3844
# Setup global tracer for workflow traces
3945
provider = TracerProvider(resource=Resource.create({SERVICE_NAME: "my-service"}))
4046
provider.add_span_processor(BatchSpanProcessor(JaegerExporter()))
4147
trace.set_tracer_provider(provider)
4248

4349
# Setup SDK metrics to OTel endpoint
44-
telemetry.init_telemetry(
45-
telemetry.TelemetryConfig(
46-
otel_metrics=telemetry.OtelCollectorConfig(
47-
url="http://localhost:4317", headers={}
50+
return Runtime(
51+
telemetry=TelemetryConfig(
52+
# TODO(cretz): Remove type ignore when
53+
# https://github.com/temporalio/sdk-python/issues/198 fixed
54+
metrics=MetricsConfig( # type: ignore
55+
opentelemetry=OpenTelemetryConfig(
56+
url="http://localhost:4317", headers={}
57+
)
4858
)
4959
)
5060
)
5161

5262

5363
async def main():
54-
init_opentelemetry()
64+
runtime = init_runtime_with_telemetry()
65+
66+
# See https://github.com/temporalio/sdk-python/issues/199
67+
opentelemetry.context.get_current()
5568

5669
# Connect client
5770
client = await Client.connect(
5871
"localhost:7233",
5972
# Use OpenTelemetry interceptor
6073
interceptors=[TracingInterceptor()],
74+
runtime=runtime,
6175
)
6276

6377
# Run a worker for the workflow

poetry.lock

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

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ packages = [
1717

1818
[tool.poetry.dependencies]
1919
python = "^3.7"
20-
temporalio = "^0.1b2"
20+
temporalio = "^0.1b3"
2121

2222
[tool.poetry.dev-dependencies]
2323
black = "^22.3.0"

0 commit comments

Comments
 (0)