Skip to content

Commit d8a11d7

Browse files
committed
fix encoding error for windows example
1 parent 696241f commit d8a11d7

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

.github/workflows/run-examples.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ permissions:
2020

2121
jobs:
2222
test-examples:
23-
if: github.event.label.name == 'test-examples' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule'
23+
needs: test-examples-windows
24+
if: ${{ always() && (github.event.label.name == 'test-examples' || contains(fromJson('["workflow_dispatch","schedule"]'), github.event_name))
25+
}}
2426
runs-on: blacksmith-2vcpu-ubuntu-2404
2527
timeout-minutes: 60
2628
steps:
@@ -51,6 +53,13 @@ jobs:
5153
with:
5254
node-version: '22'
5355

56+
- name: Download Windows example results
57+
if: needs.test-examples-windows.result == 'success'
58+
uses: actions/download-artifact@v4
59+
with:
60+
name: examples-results-windows
61+
path: .windows-example-results
62+
5463
- name: Install dependencies
5564
run: uv sync --frozen --group dev
5665

@@ -135,6 +144,10 @@ jobs:
135144
-k "not 31_windows.py" \
136145
|| EXIT_CODE=$?
137146
147+
if [ -d ".windows-example-results" ]; then
148+
cp .windows-example-results/*.json "$RESULTS_DIR"/ || true
149+
fi
150+
138151
TIMESTAMP="$(date -u '+%Y-%m-%d %H:%M:%S UTC')"
139152
WORKFLOW_URL="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"
140153

examples/01_standalone_sdk/31_windows.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__ import annotations
22

33
import os
4+
import sys
45

56
from pydantic import SecretStr
67

@@ -44,6 +45,12 @@
4445
llm_messages = []
4546

4647

48+
def _safe_preview(text: str, limit: int = 200) -> str:
49+
truncated = text[:limit]
50+
encoding = getattr(sys.stdout, "encoding", None) or "utf-8"
51+
return truncated.encode(encoding, errors="replace").decode(encoding)
52+
53+
4754
def conversation_callback(event: Event) -> None:
4855
if isinstance(event, LLMConvertibleEvent):
4956
llm_messages.append(event.to_llm_message())
@@ -68,8 +75,8 @@ def conversation_callback(event: Event) -> None:
6875
print("=" * 100)
6976
print("Conversation finished. Got the following LLM messages:")
7077
for i, message in enumerate(llm_messages):
71-
preview = str(message)
72-
print(f"Message {i}: {preview[:200]}")
78+
preview = _safe_preview(str(message))
79+
print(f"Message {i}: {preview}")
7380

7481
cost = llm.metrics.accumulated_cost
7582
print(f"EXAMPLE_COST: {cost}")

0 commit comments

Comments
 (0)