Explorar o código

introducing parameters to fine-control reload_dir and include/exclude patterns

Rodja Trappe %!s(int64=3) %!d(string=hai) anos
pai
achega
3124429a0e
Modificáronse 3 ficheiros con 14 adicións e 1 borrados
  1. 4 1
      README.md
  2. 3 0
      nicegui/config.py
  3. 7 0
      nicegui/run.py

+ 4 - 1
README.md

@@ -71,7 +71,10 @@ You can call `ui.run()` with optional arguments for some high-level configuratio
 - `show`: automatically open the ui in a browser tab (default: `True`)
 - `on_connect`: default function or coroutine which is called for each new client connection; the optional `request` argument provides session infos
 - `uvicorn_logging_level`: logging level for uvicorn server (default: `'warning'`)
-- `main_page_classes`: configure Quasar classes of main page (default: `q-ma-md column items-start`)
+- `uvicorn_reload_dirs`: string with comma separated list for directories to be monitored (default is current working dir only)
+- `uvicorn_reload_includes`: string with comma separated list of glob-patterns which trigger reload on modification (default is all files; can be changed to `'.py'` or `'.py, .yaml'` for example)
+- `uvicorn_reload_excludes`: string with comma separated list of glob-patterns which should be ignored for reload (default is `'.*, .py[cod], .sw.*, ~*'`)
+- `main_page_classes`: configure Quasar classes of main page (default: `'q-ma-md column items-start'`)
 - `binding_refresh_interval`: time between binding updates (default: `0.1` seconds, bigger is more cpu friendly)
 - `interactive`: used internally when run in interactive Python shell (default: `False`)
 

+ 3 - 0
nicegui/config.py

@@ -17,6 +17,9 @@ class Config():
     show: bool = True
     on_connect: Optional[Union[Callable, Awaitable]] = None
     uvicorn_logging_level: str = 'warning'
+    uvicorn_reload_dirs: str = '.'
+    uvicorn_reload_includes: str = '*'
+    uvicorn_reload_excludes: str = '.*, .py[cod], .sw.*, ~*'
     main_page_classes: str = 'q-ma-md column items-start'
     binding_refresh_interval: float = 0.1
     interactive: bool = False

+ 7 - 0
nicegui/run.py

@@ -1,3 +1,4 @@
+from distutils.command.config import config
 from typing import Awaitable, Callable, Optional, Union
 import inspect
 import sys
@@ -11,6 +12,9 @@ if not globals.config.interactive and globals.config.reload and not inspect.stac
     if globals.config.show:
         webbrowser.open(f'http://{globals.config.host}:{globals.config.port}/')
     uvicorn.run('nicegui:app', host=globals.config.host, port=globals.config.port, lifespan='on', reload=True,
+                reload_includes=globals.config.uvicorn_reload_includes,
+                reload_excludes=globals.config.uvicorn_reload_excludes,
+                reload_dirs=globals.config.uvicorn_reload_dirs,
                 log_level=globals.config.uvicorn_logging_level)
     sys.exit()
 
@@ -24,6 +28,9 @@ def run(self, *,
         show: bool = True,
         on_connect: Optional[Union[Callable, Awaitable]] = None,
         uvicorn_logging_level: str = 'warning',
+        uvicorn_reload_dirs: str = '.',
+        uvicorn_reload_includes: str = '*',
+        uvicorn_reload_excludes: str = '.*, .py[cod], .sw.*, ~*',
         main_page_classes: str = 'q-ma-md column items-start',
         binding_refresh_interval: float = 0.1,
         ):