Skip to content

Commit 10a92bb

Browse files
tomaisthorpehansott
authored andcommitted
Add fastapi source to support 0.118.0+
1 parent 31178f1 commit 10a92bb

3 files changed

Lines changed: 20 additions & 0 deletions

File tree

aikido_zen/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ def protect(mode="daemon", token=""):
6161
import aikido_zen.sources.flask
6262
import aikido_zen.sources.quart
6363
import aikido_zen.sources.starlette
64+
import aikido_zen.sources.fastapi
6465
import aikido_zen.sources.xml_sources.xml
6566
import aikido_zen.sources.xml_sources.lxml
6667

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import aikido_zen.sources.fastapi.fastapi_routing
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from ...sinks import on_import, patch_function
2+
from ..starlette.starlette_routing import _request_response
3+
4+
5+
@on_import("fastapi.routing", "fastapi")
6+
def patch(m):
7+
"""
8+
patching module fastapi.routing
9+
- patches: request_response
10+
11+
Newer FastAPI defines its own request_response rather than importing from
12+
starlette.routing, so the starlette patch alone doesn't cover APIRoute endpoints.
13+
In older versions FastAPI imports from starlette, so we skip to avoid double-wrapping.
14+
"""
15+
import starlette.routing
16+
17+
if m.request_response is not starlette.routing.request_response:
18+
patch_function(m, "request_response", _request_response)

0 commit comments

Comments
 (0)