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 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 = 1024,
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 path, format is `Module[.Sub....]:Variable[.Attributre....]` (e.g. `module.sub:server.app`).
253
+ app : Application or function path.
235
254
  - `None`: Cannot use parameter `workers`.
236
- factory : Whether parameter `app` is factory function.
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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reyserver
3
- Version: 1.1.64
3
+ Version: 1.1.65
4
4
  Summary: Backend server method set.
5
5
  Project-URL: homepage, https://github.com/reyxbo/reyserver/
6
6
  Author-email: Rey <reyxbo@163.com>
@@ -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=fCuf8pDBM2ZdAOlXPzlFcNf63zUGjoTY3VKLoXjNqpo,10562
8
- reyserver-1.1.64.dist-info/METADATA,sha256=WhmSK0M15RiZXyO2e8fxsvScBmkfcZXOKBi24u-Hodo,1666
9
- reyserver-1.1.64.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
10
- reyserver-1.1.64.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
11
- reyserver-1.1.64.dist-info/RECORD,,
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,,