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

Class RecordingMiddleware

tests/test_middleware.py:89–112  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Calls

no outgoing calls