changes in pyprojects
Some checks failed
Lint Code / lint (push) Failing after 41s
CI/CD Pipeline / lint (push) Successful in 0s
Run Tests / test (3.12) (push) Failing after 35s
Run Tests / test (3.13) (push) Failing after 52s
CI/CD Pipeline / test (push) Successful in 0s
CI/CD Pipeline / build-and-release (push) Has been skipped
CI/CD Pipeline / notify (push) Successful in 1s
Some checks failed
Lint Code / lint (push) Failing after 41s
CI/CD Pipeline / lint (push) Successful in 0s
Run Tests / test (3.12) (push) Failing after 35s
Run Tests / test (3.13) (push) Failing after 52s
CI/CD Pipeline / test (push) Successful in 0s
CI/CD Pipeline / build-and-release (push) Has been skipped
CI/CD Pipeline / notify (push) Successful in 1s
fixed python version fixed linter errors in Cython path_matcher
This commit is contained in:
parent
c04ab283a6
commit
fe541778f1
@ -3,11 +3,11 @@ name = "pyserve"
|
|||||||
version = "0.9.10"
|
version = "0.9.10"
|
||||||
description = "Python Application Orchestrator & HTTP Server - unified gateway for multiple Python web apps"
|
description = "Python Application Orchestrator & HTTP Server - unified gateway for multiple Python web apps"
|
||||||
authors = [
|
authors = [
|
||||||
{name = "Илья Глазунов",email = "i.glazunov@sapiens.solutions"}
|
{name = "Илья Глазунов",email = "lead@pyserve.org"}
|
||||||
]
|
]
|
||||||
license = {text = "MIT"}
|
license = {text = "MIT"}
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.12"
|
requires-python = ">=3.12, <=3.13.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"starlette (>=0.47.3,<0.48.0)",
|
"starlette (>=0.47.3,<0.48.0)",
|
||||||
"uvicorn[standard] (>=0.35.0,<0.36.0)",
|
"uvicorn[standard] (>=0.35.0,<0.36.0)",
|
||||||
|
|||||||
@ -24,24 +24,24 @@ cdef class FastMountedPath:
|
|||||||
def __cinit__(self):
|
def __cinit__(self):
|
||||||
self._path = ""
|
self._path = ""
|
||||||
self._path_with_slash = "/"
|
self._path_with_slash = "/"
|
||||||
self._path_len = 0
|
self._path_len = <Py_ssize_t>0
|
||||||
self._is_root = 1
|
self._is_root = <bint>True
|
||||||
self.name = ""
|
self.name = ""
|
||||||
self.strip_path = 1
|
self.strip_path = <bint>True
|
||||||
|
|
||||||
def __init__(self, str path, str name="", bint strip_path=True):
|
def __init__(self, str path, str name="", bint strip_path=<bint>True):
|
||||||
cdef Py_ssize_t path_len
|
cdef Py_ssize_t path_len
|
||||||
|
|
||||||
path_len = len(path)
|
path_len = <Py_ssize_t>len(path)
|
||||||
if path_len > 1 and path[path_len - 1] == '/':
|
if path_len > 1 and path[path_len - 1] == '/':
|
||||||
path = path[:path_len - 1]
|
path = path[:path_len - 1]
|
||||||
|
|
||||||
self._path = path
|
self._path = path
|
||||||
self._path_len = len(path)
|
self._path_len = <Py_ssize_t>len(path)
|
||||||
self._is_root = 1 if (path == "" or path == "/") else 0
|
self._is_root = <bint>(path == "" or path == "/")
|
||||||
self._path_with_slash = path + "/" if self._is_root == 0 else "/"
|
self._path_with_slash = path + "/" if not self._is_root else "/"
|
||||||
self.name = name if name else path
|
self.name = name if name else path
|
||||||
self.strip_path = 1 if strip_path else 0
|
self.strip_path = <bint>strip_path
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def path(self) -> str:
|
def path(self) -> str:
|
||||||
@ -51,20 +51,20 @@ cdef class FastMountedPath:
|
|||||||
cdef Py_ssize_t req_len
|
cdef Py_ssize_t req_len
|
||||||
|
|
||||||
if self._is_root:
|
if self._is_root:
|
||||||
return 1
|
return <bint>True
|
||||||
|
|
||||||
req_len = len(request_path)
|
req_len = <Py_ssize_t>len(request_path)
|
||||||
|
|
||||||
if req_len < self._path_len:
|
if req_len < self._path_len:
|
||||||
return 0
|
return <bint>False
|
||||||
|
|
||||||
if req_len == self._path_len:
|
if req_len == self._path_len:
|
||||||
return 1 if request_path == self._path else 0
|
return <bint>(request_path == self._path)
|
||||||
|
|
||||||
if request_path[self._path_len] == '/':
|
if request_path[self._path_len] == '/':
|
||||||
return 1 if request_path[:self._path_len] == self._path else 0
|
return <bint>(request_path[:self._path_len] == self._path)
|
||||||
|
|
||||||
return 0
|
return <bint>False
|
||||||
|
|
||||||
cpdef str get_modified_path(self, str original_path):
|
cpdef str get_modified_path(self, str original_path):
|
||||||
cdef str new_path
|
cdef str new_path
|
||||||
@ -108,7 +108,7 @@ cdef class FastMountManager:
|
|||||||
self._mounts = sorted(self._mounts, key=_get_path_len_neg, reverse=False)
|
self._mounts = sorted(self._mounts, key=_get_path_len_neg, reverse=False)
|
||||||
self._mount_count = len(self._mounts)
|
self._mount_count = len(self._mounts)
|
||||||
|
|
||||||
cpdef FastMountedPath get_mount(self, str request_path):
|
cpdef object get_mount(self, str request_path):
|
||||||
cdef:
|
cdef:
|
||||||
int i
|
int i
|
||||||
FastMountedPath mount
|
FastMountedPath mount
|
||||||
@ -126,7 +126,7 @@ cdef class FastMountManager:
|
|||||||
Py_ssize_t path_len
|
Py_ssize_t path_len
|
||||||
FastMountedPath mount
|
FastMountedPath mount
|
||||||
|
|
||||||
path_len = len(path)
|
path_len = <Py_ssize_t>len(path)
|
||||||
if path_len > 1 and path[path_len - 1] == '/':
|
if path_len > 1 and path[path_len - 1] == '/':
|
||||||
path = path[:path_len - 1]
|
path = path[:path_len - 1]
|
||||||
|
|
||||||
@ -135,9 +135,9 @@ cdef class FastMountManager:
|
|||||||
if mount._path == path:
|
if mount._path == path:
|
||||||
del self._mounts[i]
|
del self._mounts[i]
|
||||||
self._mount_count -= 1
|
self._mount_count -= 1
|
||||||
return 1
|
return <bint>True
|
||||||
|
|
||||||
return 0
|
return <bint>False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def mounts(self) -> list:
|
def mounts(self) -> list:
|
||||||
@ -164,27 +164,27 @@ cdef class FastMountManager:
|
|||||||
|
|
||||||
cpdef bint path_matches_prefix(str request_path, str mount_path):
|
cpdef bint path_matches_prefix(str request_path, str mount_path):
|
||||||
cdef:
|
cdef:
|
||||||
Py_ssize_t mount_len = len(mount_path)
|
Py_ssize_t mount_len = <Py_ssize_t>len(mount_path)
|
||||||
Py_ssize_t req_len = len(request_path)
|
Py_ssize_t req_len = <Py_ssize_t>len(request_path)
|
||||||
|
|
||||||
if mount_len == 0 or mount_path == "/":
|
if mount_len == 0 or mount_path == "/":
|
||||||
return 1
|
return <bint>True
|
||||||
|
|
||||||
if req_len < mount_len:
|
if req_len < mount_len:
|
||||||
return 0
|
return <bint>False
|
||||||
|
|
||||||
if req_len == mount_len:
|
if req_len == mount_len:
|
||||||
return 1 if request_path == mount_path else 0
|
return <bint>(request_path == mount_path)
|
||||||
|
|
||||||
if request_path[mount_len] == '/':
|
if request_path[mount_len] == '/':
|
||||||
return 1 if request_path[:mount_len] == mount_path else 0
|
return <bint>(request_path[:mount_len] == mount_path)
|
||||||
|
|
||||||
return 0
|
return <bint>False
|
||||||
|
|
||||||
|
|
||||||
cpdef str strip_path_prefix(str original_path, str mount_path):
|
cpdef str strip_path_prefix(str original_path, str mount_path):
|
||||||
cdef:
|
cdef:
|
||||||
Py_ssize_t mount_len = len(mount_path)
|
Py_ssize_t mount_len = <Py_ssize_t>len(mount_path)
|
||||||
str result
|
str result
|
||||||
|
|
||||||
if mount_len == 0 or mount_path == "/":
|
if mount_len == 0 or mount_path == "/":
|
||||||
@ -198,11 +198,11 @@ cpdef str strip_path_prefix(str original_path, str mount_path):
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
cpdef tuple match_and_modify_path(str request_path, str mount_path, bint strip_path=True):
|
cpdef tuple match_and_modify_path(str request_path, str mount_path, bint strip_path=<bint>True):
|
||||||
cdef:
|
cdef:
|
||||||
Py_ssize_t mount_len = len(mount_path)
|
Py_ssize_t mount_len = <Py_ssize_t>len(mount_path)
|
||||||
Py_ssize_t req_len = len(request_path)
|
Py_ssize_t req_len = <Py_ssize_t>len(request_path)
|
||||||
bint is_root = 1 if (mount_len == 0 or mount_path == "/") else 0
|
bint is_root = <bint>(mount_len == 0 or mount_path == "/")
|
||||||
str modified
|
str modified
|
||||||
|
|
||||||
if is_root:
|
if is_root:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user