Return partial match object
This commit is contained in:
parent
0b272d076d
commit
8850915752
12
jetforce.py
12
jetforce.py
|
@ -158,7 +158,7 @@ class RoutePattern:
|
||||||
strict_port: bool = True
|
strict_port: bool = True
|
||||||
strict_trailing_slash: bool = False
|
strict_trailing_slash: bool = False
|
||||||
|
|
||||||
def match(self, request: Request) -> bool:
|
def match(self, request: Request) -> typing.Optional[re.Match]:
|
||||||
"""
|
"""
|
||||||
Check if the given request URL matches this route pattern.
|
Check if the given request URL matches this route pattern.
|
||||||
"""
|
"""
|
||||||
|
@ -169,19 +169,19 @@ class RoutePattern:
|
||||||
server_port = int(request.environ["SERVER_PORT"])
|
server_port = int(request.environ["SERVER_PORT"])
|
||||||
|
|
||||||
if self.strict_hostname and request.hostname != server_hostname:
|
if self.strict_hostname and request.hostname != server_hostname:
|
||||||
return False
|
return
|
||||||
if self.strict_port and request.port is not None:
|
if self.strict_port and request.port is not None:
|
||||||
if request.port != server_port:
|
if request.port != server_port:
|
||||||
return False
|
return
|
||||||
if self.scheme and self.scheme != request.scheme:
|
if self.scheme and self.scheme != request.scheme:
|
||||||
return False
|
return
|
||||||
|
|
||||||
if self.strict_trailing_slash:
|
if self.strict_trailing_slash:
|
||||||
request_path = request.path
|
request_path = request.path
|
||||||
else:
|
else:
|
||||||
request_path = request.path.rstrip("/")
|
request_path = request.path.rstrip("/")
|
||||||
|
|
||||||
return bool(re.fullmatch(self.path, request_path))
|
return re.fullmatch(self.path, request_path)
|
||||||
|
|
||||||
|
|
||||||
class JetforceApplication:
|
class JetforceApplication:
|
||||||
|
@ -227,7 +227,7 @@ class JetforceApplication:
|
||||||
|
|
||||||
def route(
|
def route(
|
||||||
self,
|
self,
|
||||||
path: str = "",
|
path: str = ".*",
|
||||||
scheme: str = "gemini",
|
scheme: str = "gemini",
|
||||||
hostname: typing.Optional[str] = None,
|
hostname: typing.Optional[str] = None,
|
||||||
strict_hostname: bool = True,
|
strict_hostname: bool = True,
|
||||||
|
|
Loading…
Reference in New Issue