MCPcopy Create free account
hub / github.com/anthropics/anthropic-sdk-python / RecordingMiddleware

Class RecordingMiddleware

tests/test_middleware.py:88–111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

86
87
88class RecordingMiddleware(Middleware):
89 def __init__(self, name: str = "middleware", events: "list[str] | None" = None) -> None:
90 self.name = name
91 self.events = events if events is not None else []
92 self.requests: list[APIRequest] = []
93 self.results: list[Any] = []
94
95 @override
96 def handle(self, request: APIRequest, call_next: CallNext) -> Any:
97 self.requests.append(request)
98 self.events.append(f"{self.name}:enter")
99 result = call_next(request)
100 self.events.append(f"{self.name}:exit")
101 self.results.append(result)
102 return result
103
104 @override
105 async def handle_async(self, request: APIRequest, call_next: AsyncCallNext) -> Any:
106 self.requests.append(request)
107 self.events.append(f"{self.name}:enter")
108 result = await call_next(request)
109 self.events.append(f"{self.name}:exit")
110 self.results.append(result)
111 return result
112
113
114class MutateBody(Middleware):

Calls

no outgoing calls