@@ -74,19 +74,20 @@ def square(context: DurableContext, item: int, index: int, items: list[int]) ->
7474 return item * item
7575
7676@durable_execution
77- def handler (event : dict , context : DurableContext) -> BatchResult[ int ] :
77+ def handler (event : dict , context : DurableContext) -> dict :
7878 """ Process a list of items using map operations."""
7979 items = [1 , 2 , 3 , 4 , 5 ]
80-
80+
8181 result = context.map(items, square)
82- return result
82+ # Convert to dict for JSON serialization (BatchResult is not JSON serializable)
83+ return result.to_dict()
8384```
8485
8586When this function runs:
86871 . Each item is processed in parallel
87882 . The ` square ` function is called for each item
88893 . Each result is checkpointed independently
89- 4 . The function returns a ` BatchResult ` with results ` [1, 4, 9, 16, 25] `
90+ 4 . The function returns a dict with results ` [1, 4, 9, 16, 25] `
9091
9192If the function is interrupted after processing items 0-2, it resumes at item 3 without reprocessing the first three items.
9293
@@ -162,10 +163,10 @@ def validate_email(
162163 }
163164
164165@ durable_execution
165- def handler(event: dict , context: DurableContext) -> BatchResult[ dict ] :
166+ def handler(event: dict , context: DurableContext) -> dict :
166167 emails = [" jane_doe@example.com" , " john_doe@example.org" , " invalid" ]
167168 result = context.map(emails, validate_email)
168- return result
169+ return result.to_dict()
169170```
170171
171172[↑ Back to top](# table-of-contents)
@@ -190,7 +191,7 @@ def process_item(context: DurableContext, item: int, index: int, items: list[int
190191 return {" item" : item, " squared" : item * item}
191192
192193@ durable_execution
193- def handler(event: dict , context: DurableContext) -> BatchResult[ dict ] :
194+ def handler(event: dict , context: DurableContext) -> dict :
194195 items = list (range (100 ))
195196
196197 # Configure map operation
@@ -200,7 +201,7 @@ def handler(event: dict, context: DurableContext) -> BatchResult[dict]:
200201 )
201202
202203 result = context.map(items, process_item, name = " process_numbers" , config = config)
203- return result
204+ return result.to_dict()
204205```
205206
206207# ## MapConfig parameters
@@ -237,15 +238,14 @@ def fetch_data(context: DurableContext, url: str, index: int, urls: list[str]) -
237238 return {" url" : url, " data" : " ..." }
238239
239240@ durable_execution
240- def handler(event: dict , context: DurableContext) -> BatchResult[ dict ] :
241+ def handler(event: dict , context: DurableContext) -> dict :
241242 urls = [f " https://example.com/api/ { i} " for i in range (100 )]
242-
243+
243244 # Process only 5 URLs at a time
244245 config = MapConfig(max_concurrency = 5 )
245-
246+
246247 result = context.map(urls, fetch_data, config = config)
247- return result
248- ```
248+ return result.to_dict()```
249249
250250# ## Custom completion criteria
251251
@@ -262,19 +262,19 @@ def process_item(context: DurableContext, item: int, index: int, items: list[int
262262 return {" item" : item, " processed" : True }
263263
264264@ durable_execution
265- def handler(event: dict , context: DurableContext) -> BatchResult[ dict ] :
265+ def handler(event: dict , context: DurableContext) -> dict :
266266 items = list (range (20 ))
267-
267+
268268 # Succeed if at least 15 items succeed, fail after 5 failures
269269 config = MapConfig(
270270 completion_config = CompletionConfig(
271271 min_successful = 15 ,
272272 tolerated_failure_count = 5 ,
273273 )
274274 )
275-
275+
276276 result = context.map(items, process_item, config = config)
277- return result
277+ return result.to_dict()
278278```
279279
280280# ## Using context operations in map functions
@@ -307,11 +307,13 @@ def process_user(
307307 return {" user_id" : user_id, " notification_sent" : notification[" sent" ]}
308308
309309@ durable_execution
310- def handler(event: dict , context: DurableContext) -> BatchResult[dict ]:
310+ def handler(event: dict , context: DurableContext) -> dict :
311+ """ Process multiple users using context operations within map functions."""
311312 user_ids = [" user_1" , " user_2" , " user_3" ]
312-
313+
313314 result = context.map(user_ids, process_user)
314- return result
315+ # Convert to dict for JSON serialization (BatchResult is not JSON serializable)
316+ return result.to_dict()
315317```
316318
317319# ## Filtering and transforming results
0 commit comments