perf: avoid regex re-compile (#2700)

* perf

* format

* avoid

* fix
This commit is contained in:
Trim21 2024-09-23 14:54:17 +08:00 committed by GitHub
parent 65bfd74307
commit 9d4d5a5f3b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 2 deletions

View File

@ -272,6 +272,9 @@ class RangeNotSatisfiable(Exception):
self.max_size = max_size
_RANGE_PATTERN = re.compile(r"(\d*)-(\d*)")
class FileResponse(Response):
chunk_size = 64 * 1024
@ -453,7 +456,7 @@ class FileResponse(Response):
int(_[0]) if _[0] else file_size - int(_[1]),
int(_[1]) + 1 if _[0] and _[1] and int(_[1]) < file_size else file_size,
)
for _ in re.findall(r"(\d*)-(\d*)", range_)
for _ in _RANGE_PATTERN.findall(range_)
if _ != ("", "")
]

View File

@ -29,6 +29,9 @@ class EndpointInfo(typing.NamedTuple):
func: typing.Callable[..., typing.Any]
_remove_converter_pattern = re.compile(r":\w+}")
class BaseSchemaGenerator:
def get_schema(self, routes: list[BaseRoute]) -> dict[str, typing.Any]:
raise NotImplementedError() # pragma: no cover
@ -89,7 +92,7 @@ class BaseSchemaGenerator:
Route("/users/{id:int}", endpoint=get_user, methods=["GET"])
Should be represented as `/users/{id}` in the OpenAPI schema.
"""
return re.sub(r":\w+}", "}", path)
return _remove_converter_pattern.sub("}", path)
def parse_docstring(self, func_or_method: typing.Callable[..., typing.Any]) -> dict[str, typing.Any]:
"""