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 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 = 1024,
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 path, format is `Module[.Sub....]:Variable[.Attributre....]` (e.g. `module.sub:server.app`).
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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reyserver
3
- Version: 1.1.63
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=sSFoWTnsSRBJ9SZT5i6yzMzDnwg0_YFbSUI7e_8QfiA,10465
8
- reyserver-1.1.63.dist-info/METADATA,sha256=de-VXiY3vj5atn-pdBUX0zz6FFg_7hWVJV_JEABCnTw,1666
9
- reyserver-1.1.63.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
10
- reyserver-1.1.63.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
11
- reyserver-1.1.63.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,,