reyserver 1.1.63__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 -7
- {reyserver-1.1.63.dist-info → reyserver-1.1.65.dist-info}/METADATA +1 -1
- {reyserver-1.1.63.dist-info → reyserver-1.1.65.dist-info}/RECORD +5 -5
- {reyserver-1.1.63.dist-info → reyserver-1.1.65.dist-info}/WHEEL +0 -0
- {reyserver-1.1.63.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,10 +220,26 @@ 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
244
|
workers: int = 1
|
|
225
245
|
) -> None:
|
|
@@ -230,21 +250,31 @@ class Server(ServerBase, Singleton):
|
|
|
230
250
|
----------
|
|
231
251
|
host : Server host.
|
|
232
252
|
port: Server port.
|
|
233
|
-
app : Application
|
|
253
|
+
app : Application or function path.
|
|
234
254
|
- `None`: Cannot use parameter `workers`.
|
|
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`).
|
|
235
257
|
workers: Number of server work processes.
|
|
236
258
|
|
|
237
259
|
Examples
|
|
238
260
|
--------
|
|
239
|
-
>>> server = Server(db)
|
|
240
|
-
|
|
241
261
|
Single work process.
|
|
262
|
+
>>> server = Server(db)
|
|
242
263
|
>>> server.run()
|
|
243
264
|
|
|
244
265
|
Multiple work processes.
|
|
245
266
|
>>> server = Server(db)
|
|
246
267
|
>>> if __name__ == '__main__':
|
|
247
|
-
>>> 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)
|
|
248
278
|
"""
|
|
249
279
|
|
|
250
280
|
# Parameter.
|
|
@@ -258,8 +288,7 @@ class Server(ServerBase, Singleton):
|
|
|
258
288
|
port=port,
|
|
259
289
|
workers=workers,
|
|
260
290
|
ssl_certfile=self.ssl_cert,
|
|
261
|
-
ssl_keyfile=self.ssl_key
|
|
262
|
-
# factory=True
|
|
291
|
+
ssl_keyfile=self.ssl_key
|
|
263
292
|
)
|
|
264
293
|
|
|
265
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
|