reyserver 1.1.52__py3-none-any.whl → 1.1.53__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of reyserver might be problematic. Click here for more details.
- reyserver/rbase.py +3 -56
- reyserver/rserver.py +57 -1
- {reyserver-1.1.52.dist-info → reyserver-1.1.53.dist-info}/METADATA +1 -1
- {reyserver-1.1.52.dist-info → reyserver-1.1.53.dist-info}/RECORD +6 -6
- {reyserver-1.1.52.dist-info → reyserver-1.1.53.dist-info}/WHEEL +0 -0
- {reyserver-1.1.52.dist-info → reyserver-1.1.53.dist-info}/licenses/LICENSE +0 -0
reyserver/rbase.py
CHANGED
|
@@ -9,11 +9,9 @@
|
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
from typing import
|
|
13
|
-
from inspect import iscoroutinefunction
|
|
14
|
-
from contextlib import asynccontextmanager, _AsyncGeneratorContextManager
|
|
12
|
+
from typing import Literal, NoReturn
|
|
15
13
|
from http import HTTPStatus
|
|
16
|
-
from fastapi import
|
|
14
|
+
from fastapi import HTTPException, UploadFile as File
|
|
17
15
|
from fastapi.params import (
|
|
18
16
|
Depends,
|
|
19
17
|
Path,
|
|
@@ -26,7 +24,7 @@ from fastapi.params import (
|
|
|
26
24
|
)
|
|
27
25
|
from reydb.rconn import DatabaseConnectionAsync
|
|
28
26
|
from reydb.rorm import DatabaseORMModel, DatabaseORMSessionAsync
|
|
29
|
-
from reykit.rbase import
|
|
27
|
+
from reykit.rbase import Base, Exit, StaticMeta, ConfigMeta, Singleton, throw
|
|
30
28
|
|
|
31
29
|
from . import rserver
|
|
32
30
|
|
|
@@ -259,57 +257,6 @@ class ServerBind(ServerBase, metaclass=StaticMeta):
|
|
|
259
257
|
"""
|
|
260
258
|
|
|
261
259
|
|
|
262
|
-
def create_lifespan(
|
|
263
|
-
before: CoroutineFunctionSimple | Sequence[CoroutineFunctionSimple] | None = None,
|
|
264
|
-
after: CoroutineFunctionSimple | Sequence[CoroutineFunctionSimple] | None = None,
|
|
265
|
-
) -> _AsyncGeneratorContextManager[None, None]:
|
|
266
|
-
"""
|
|
267
|
-
Create asynchronous function of lifespan manager.
|
|
268
|
-
|
|
269
|
-
Parameters
|
|
270
|
-
----------
|
|
271
|
-
before : Execute before server start.
|
|
272
|
-
after : Execute after server end.
|
|
273
|
-
|
|
274
|
-
Returns
|
|
275
|
-
-------
|
|
276
|
-
Asynchronous function.
|
|
277
|
-
"""
|
|
278
|
-
|
|
279
|
-
# Parameter.
|
|
280
|
-
if before is None:
|
|
281
|
-
before = ()
|
|
282
|
-
elif iscoroutinefunction(before):
|
|
283
|
-
before = (before,)
|
|
284
|
-
if after is None:
|
|
285
|
-
after = ()
|
|
286
|
-
elif iscoroutinefunction(after):
|
|
287
|
-
after = (after,)
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
@asynccontextmanager
|
|
291
|
-
async def lifespan(app: FastAPI):
|
|
292
|
-
"""
|
|
293
|
-
Server lifespan manager.
|
|
294
|
-
|
|
295
|
-
Parameters
|
|
296
|
-
----------
|
|
297
|
-
app : Server APP.
|
|
298
|
-
"""
|
|
299
|
-
|
|
300
|
-
# Before.
|
|
301
|
-
for task in before:
|
|
302
|
-
await task()
|
|
303
|
-
yield
|
|
304
|
-
|
|
305
|
-
# After.
|
|
306
|
-
for task in after:
|
|
307
|
-
await after()
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
return lifespan
|
|
311
|
-
|
|
312
|
-
|
|
313
260
|
def create_depend_db(database: str, mode: Literal['sess', 'conn']) -> Depends:
|
|
314
261
|
"""
|
|
315
262
|
Create dependencie type of asynchronous database.
|
reyserver/rserver.py
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
from typing import Literal
|
|
13
13
|
from collections.abc import Sequence, Callable, Coroutine
|
|
14
14
|
from inspect import iscoroutinefunction
|
|
15
|
+
from contextlib import asynccontextmanager, _AsyncGeneratorContextManager
|
|
15
16
|
from uvicorn import run as uvicorn_run
|
|
16
17
|
from starlette.middleware.base import _StreamingResponse
|
|
17
18
|
from fastapi import FastAPI, Request
|
|
@@ -67,7 +68,6 @@ class Server(ServerBase, Singleton):
|
|
|
67
68
|
# Parameter.
|
|
68
69
|
if type(ssl_cert) != type(ssl_key):
|
|
69
70
|
throw(AssertionError, ssl_cert, ssl_key)
|
|
70
|
-
lifespan = Bind.create_lifespan(before, after)
|
|
71
71
|
if depend is None:
|
|
72
72
|
depend = ()
|
|
73
73
|
elif iscoroutinefunction(depend):
|
|
@@ -76,6 +76,7 @@ class Server(ServerBase, Singleton):
|
|
|
76
76
|
Bind.Depend(task)
|
|
77
77
|
for task in depend
|
|
78
78
|
]
|
|
79
|
+
lifespan = self.__create_lifespan(before, after)
|
|
79
80
|
|
|
80
81
|
# Build.
|
|
81
82
|
ServerConfig.server = self
|
|
@@ -111,6 +112,61 @@ class Server(ServerBase, Singleton):
|
|
|
111
112
|
'File API store directory path.'
|
|
112
113
|
|
|
113
114
|
|
|
115
|
+
def __create_lifespan(
|
|
116
|
+
self,
|
|
117
|
+
before: CoroutineFunctionSimple | Sequence[CoroutineFunctionSimple] | None = None,
|
|
118
|
+
after: CoroutineFunctionSimple | Sequence[CoroutineFunctionSimple] | None = None,
|
|
119
|
+
) -> _AsyncGeneratorContextManager[None, None]:
|
|
120
|
+
"""
|
|
121
|
+
Create asynchronous function of lifespan manager.
|
|
122
|
+
|
|
123
|
+
Parameters
|
|
124
|
+
----------
|
|
125
|
+
before : Execute before server start.
|
|
126
|
+
after : Execute after server end.
|
|
127
|
+
|
|
128
|
+
Returns
|
|
129
|
+
-------
|
|
130
|
+
Asynchronous function.
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
# Parameter.
|
|
134
|
+
if before is None:
|
|
135
|
+
before = ()
|
|
136
|
+
elif iscoroutinefunction(before):
|
|
137
|
+
before = (before,)
|
|
138
|
+
if after is None:
|
|
139
|
+
after = ()
|
|
140
|
+
elif iscoroutinefunction(after):
|
|
141
|
+
after = (after,)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
@asynccontextmanager
|
|
145
|
+
async def lifespan(app: FastAPI):
|
|
146
|
+
"""
|
|
147
|
+
Server lifespan manager.
|
|
148
|
+
|
|
149
|
+
Parameters
|
|
150
|
+
----------
|
|
151
|
+
app : Server APP.
|
|
152
|
+
"""
|
|
153
|
+
|
|
154
|
+
# Before.
|
|
155
|
+
for task in before:
|
|
156
|
+
await task()
|
|
157
|
+
yield
|
|
158
|
+
|
|
159
|
+
# After.
|
|
160
|
+
for task in after:
|
|
161
|
+
await after()
|
|
162
|
+
|
|
163
|
+
# Database.
|
|
164
|
+
await self.db.dispose_all()
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
return lifespan
|
|
168
|
+
|
|
169
|
+
|
|
114
170
|
def __add_default_middleware(self) -> None:
|
|
115
171
|
"""
|
|
116
172
|
Add default handle middleware.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
reyserver/__init__.py,sha256=7GX64p7uI2eetJH9NJ-DTg-8iyQwOsGcviADFJCPxVA,373
|
|
2
2
|
reyserver/rall.py,sha256=riyDRTUsigco_Bee1H4aZFb8IgvjnxdX9qcnVb9i9mE,270
|
|
3
3
|
reyserver/rauth.py,sha256=oa6Iwuutcj9eO6RH7DaT-rPn_YqYwKuyHYaBd3lZoZE,11728
|
|
4
|
-
reyserver/rbase.py,sha256=
|
|
4
|
+
reyserver/rbase.py,sha256=jgjAkT1kxzVKB60xfWxZbnQJsehhcTBr24AclTYjc4g,5603
|
|
5
5
|
reyserver/rclient.py,sha256=IWZ3smyIP0_YJrfSrM8JFCr0FCtN02AyT3hp8YuSsDQ,5103
|
|
6
6
|
reyserver/rfile.py,sha256=bvuXOYO3UDM1jMiyNzQDz56_0ekZUEIRcfNFAhGgdUY,9010
|
|
7
|
-
reyserver/rserver.py,sha256=
|
|
8
|
-
reyserver-1.1.
|
|
9
|
-
reyserver-1.1.
|
|
10
|
-
reyserver-1.1.
|
|
11
|
-
reyserver-1.1.
|
|
7
|
+
reyserver/rserver.py,sha256=wQMAtCb3iu3XfYSiGS7TbqHslxdcMFLAmCaYdNToDbY,8241
|
|
8
|
+
reyserver-1.1.53.dist-info/METADATA,sha256=9DvHdPLFWZ6BASCz_WFMmGLB5ZmTstbC0_99kaQjhw4,1689
|
|
9
|
+
reyserver-1.1.53.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
10
|
+
reyserver-1.1.53.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
|
|
11
|
+
reyserver-1.1.53.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|