Skip to content

Commit 69a592b

Browse files
committed
Preserve the context for close methods
1 parent 3530d3b commit 69a592b

1 file changed

Lines changed: 20 additions & 4 deletions

File tree

langfuse/_client/observe.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -605,8 +605,16 @@ def __next__(self) -> Any:
605605
raise
606606

607607
def close(self) -> None:
608-
self._end_span()
609-
self.generator.close()
608+
tokens = []
609+
try:
610+
if self.context:
611+
for var, value in self.context.items():
612+
tokens.append((var, var.set(value)))
613+
self._end_span()
614+
self.generator.close()
615+
finally:
616+
for var, token in tokens:
617+
var.reset(token)
610618

611619

612620
class _ContextPreservedAsyncGeneratorWrapper:
@@ -687,5 +695,13 @@ async def __anext__(self) -> Any:
687695
raise
688696

689697
async def aclose(self) -> None:
690-
self._end_span()
691-
await self.generator.aclose()
698+
tokens = []
699+
try:
700+
if self.context:
701+
for var, value in self.context.items():
702+
tokens.append((var, var.set(value)))
703+
self._end_span()
704+
await self.generator.aclose()
705+
finally:
706+
for var, token in tokens:
707+
var.reset(token)

0 commit comments

Comments
 (0)