reyserver 1.1.64__py3-none-any.whl → 1.1.65__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/rserver.py +36 -9
- {reyserver-1.1.64.dist-info → reyserver-1.1.65.dist-info}/METADATA +1 -1
- {reyserver-1.1.64.dist-info → reyserver-1.1.65.dist-info}/RECORD +5 -5
- {reyserver-1.1.64.dist-info → reyserver-1.1.65.dist-info}/WHEEL +0 -0
- {reyserver-1.1.64.dist-info → reyserver-1.1.65.dist-info}/licenses/LICENSE +0 -0
reyserver/rserver.py
CHANGED
|
@@ -13,6 +13,7 @@ from typing import Literal
|
|
|
13
13
|
from collections.abc import Sequence, Callable, Coroutine
|
|
14
14
|
from inspect import iscoroutinefunction
|
|
15
15
|
from contextlib import asynccontextmanager, _AsyncGeneratorContextManager
|
|
16
|
+
from logging import getLogger, Filter
|
|
16
17
|
from uvicorn import run as uvicorn_run
|
|
17
18
|
from starlette.middleware.base import _StreamingResponse
|
|
18
19
|
from fastapi import FastAPI, Request
|
|
@@ -114,6 +115,9 @@ class Server(ServerBase, Singleton):
|
|
|
114
115
|
self.api_file_dir: str
|
|
115
116
|
'File API store directory path.'
|
|
116
117
|
|
|
118
|
+
# Filter warning.
|
|
119
|
+
self.__filter_warning()
|
|
120
|
+
|
|
117
121
|
|
|
118
122
|
def __create_lifespan(
|
|
119
123
|
self,
|
|
@@ -216,12 +220,27 @@ class Server(ServerBase, Singleton):
|
|
|
216
220
|
return response
|
|
217
221
|
|
|
218
222
|
|
|
223
|
+
def __filter_warning(self) -> None:
|
|
224
|
+
"""
|
|
225
|
+
Filter server default logger warning record.
|
|
226
|
+
"""
|
|
227
|
+
|
|
228
|
+
# Filter.
|
|
229
|
+
log_filter = Filter()
|
|
230
|
+
log_filter.filter = lambda record: (
|
|
231
|
+
False
|
|
232
|
+
if record.msg == 'ASGI app factory detected. Using it, but please consider setting the --factory flag explicitly.'
|
|
233
|
+
else True
|
|
234
|
+
)
|
|
235
|
+
log = getLogger('uvicorn.error')
|
|
236
|
+
log.addFilter(log_filter)
|
|
237
|
+
|
|
238
|
+
|
|
219
239
|
def run(
|
|
220
240
|
self,
|
|
221
241
|
host: str = '127.0.0.1',
|
|
222
|
-
port: int =
|
|
242
|
+
port: int = 8000,
|
|
223
243
|
app: str | None = None,
|
|
224
|
-
factory: bool = False,
|
|
225
244
|
workers: int = 1
|
|
226
245
|
) -> None:
|
|
227
246
|
"""
|
|
@@ -231,22 +250,31 @@ class Server(ServerBase, Singleton):
|
|
|
231
250
|
----------
|
|
232
251
|
host : Server host.
|
|
233
252
|
port: Server port.
|
|
234
|
-
app : Application
|
|
253
|
+
app : Application or function path.
|
|
235
254
|
- `None`: Cannot use parameter `workers`.
|
|
236
|
-
|
|
255
|
+
- `Application`: format is `module[.sub....]:var[.attr....]` (e.g. `module.sub:server.app`).
|
|
256
|
+
- `Function`: format is `module[.sub....]:func` (e.g. `module.sub:main`).
|
|
237
257
|
workers: Number of server work processes.
|
|
238
258
|
|
|
239
259
|
Examples
|
|
240
260
|
--------
|
|
241
|
-
>>> server = Server(db)
|
|
242
|
-
|
|
243
261
|
Single work process.
|
|
262
|
+
>>> server = Server(db)
|
|
244
263
|
>>> server.run()
|
|
245
264
|
|
|
246
265
|
Multiple work processes.
|
|
247
266
|
>>> server = Server(db)
|
|
248
267
|
>>> if __name__ == '__main__':
|
|
249
|
-
>>> server('module.sub:server.app')
|
|
268
|
+
>>> server('module.sub:server.app', workers=2)
|
|
269
|
+
|
|
270
|
+
Multiple work processes and define function.
|
|
271
|
+
>>> def main(run = False):
|
|
272
|
+
>>> server = Server(db)
|
|
273
|
+
>>> if run:
|
|
274
|
+
>>> server('module.sub:main', workers=2, factory=True)
|
|
275
|
+
>>> return server.app
|
|
276
|
+
>>> if __name__ == '__main__':
|
|
277
|
+
>>> main(True)
|
|
250
278
|
"""
|
|
251
279
|
|
|
252
280
|
# Parameter.
|
|
@@ -260,8 +288,7 @@ class Server(ServerBase, Singleton):
|
|
|
260
288
|
port=port,
|
|
261
289
|
workers=workers,
|
|
262
290
|
ssl_certfile=self.ssl_cert,
|
|
263
|
-
ssl_keyfile=self.ssl_key
|
|
264
|
-
factory=factory
|
|
291
|
+
ssl_keyfile=self.ssl_key
|
|
265
292
|
)
|
|
266
293
|
|
|
267
294
|
|
|
@@ -4,8 +4,8 @@ reyserver/rauth.py,sha256=JGo5lLTRGoP1SFPyQA-Q5EE-O3OU_86Mb3pvwhvFu-w,15125
|
|
|
4
4
|
reyserver/rbase.py,sha256=0ECJ1zuUpJhwaNc0u5GvR5VyGxIAnKQep-EdotwnLoE,7752
|
|
5
5
|
reyserver/rclient.py,sha256=og5YuWm-PODkFn9njBwYQpGlk0j1BfqFuEarlCFSQYI,6229
|
|
6
6
|
reyserver/rfile.py,sha256=6H5_7B9aiA3F56VToQDI9Trarkrl9gcIuFqYyCVCiCU,8877
|
|
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=IJY28_p-DAJ_6BUxVMdHQHVSyIficCzxnZRMPL6wMhQ,11474
|
|
8
|
+
reyserver-1.1.65.dist-info/METADATA,sha256=AjAAJWgQb9zKkUHk5qx51rzOooZ97P62o2cR27iemMo,1666
|
|
9
|
+
reyserver-1.1.65.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
10
|
+
reyserver-1.1.65.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
|
|
11
|
+
reyserver-1.1.65.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|