Skip to content

Commit 17a2449

Browse files
committed
add support in middleware
1 parent 786df5b commit 17a2449

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

tilebench/middleware.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from starlette.requests import Request
1111
from starlette.types import ASGIApp, Message, Receive, Scope, Send
1212

13-
from tilebench import parse_rasterio_io_logs
13+
from tilebench import parse_rasterio_io_logs, parse_vsifile_io_logs
1414

1515

1616
class VSIStatsMiddleware(BaseHTTPMiddleware):
@@ -27,6 +27,10 @@ def __init__(
2727
super().__init__(app)
2828
self.config: Dict = config or {}
2929
self.exclude_paths: List = exclude_paths or []
30+
31+
if io not in ["rasterio", "vsifile"]:
32+
raise ValueError(f"Unsupported {io} IO backend")
33+
3034
self.io_backend = io
3135

3236
async def dispatch(self, request: Request, call_next):
@@ -49,9 +53,14 @@ async def dispatch(self, request: Request, call_next):
4953
handler.close()
5054

5155
if io_stream:
52-
io_lines = io_stream.getvalue().splitlines()
56+
logs = io_stream.getvalue().splitlines()
57+
58+
results = {}
59+
if self.io_backend == "vsifile":
60+
results.update(parse_vsifile_io_logs(logs))
61+
else:
62+
results.update(parse_rasterio_io_logs(logs))
5363

54-
results = parse_rasterio_io_logs(io_lines)
5564
head_results = "head;count={count}".format(**results["HEAD"])
5665
get_results = "get;count={count};size={bytes}".format(**results["GET"])
5766
ranges_results = "ranges; values={}".format(

0 commit comments

Comments
 (0)