Skip to content

Commit 8414e1d

Browse files
committed
_init_self_delete intended for dummy clients which we call .delete() ourselves
1 parent 015a6bd commit 8414e1d

File tree

4 files changed

+8
-6
lines changed

4 files changed

+8
-6
lines changed

nicegui/client.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class Client:
5858
shared_body_html = ''
5959
'''HTML to be inserted in the <body> of every page template.'''
6060

61-
def __init__(self, page: page, *, request: Request | None = None) -> None:
61+
def __init__(self, page: page, *, request: Request | None = None, _init_self_delete: bool = True) -> None:
6262
self._request = request
6363
self.id = str(uuid.uuid4())
6464
self.created = time.time()
@@ -101,7 +101,8 @@ def __init__(self, page: page, *, request: Request | None = None) -> None:
101101
with self:
102102
self.sub_pages_router = SubPagesRouter(request)
103103

104-
self._reset_self_delete(timeout=60.0)
104+
if _init_self_delete: # don't pass this unless you will call client.delete() yourself
105+
self._reset_self_delete(timeout=60.0)
105106

106107
@property
107108
def request(self) -> Request:

nicegui/context.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ def slot_stack(self) -> list[Slot]:
2121
from .page import page # pylint: disable=import-outside-toplevel,cyclic-import
2222
if not Client.instances: # in case some kind of dummy client is already created
2323
core.script_mode = True
24-
core.script_client = Client(page('/')).__enter__() # pylint: disable=unnecessary-dunder-call
24+
core.script_client = Client(
25+
page('/'), _init_self_delete=False).__enter__() # pylint: disable=unnecessary-dunder-call
2526
stack = Slot.get_stack()
2627
return stack
2728

nicegui/ui_run.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ def run_script() -> None:
131131
runpy.run_path(sys.argv[0], run_name='__main__')
132132
root = run_script
133133
assert core.script_client is not None
134-
core.script_client.delete()
134+
core.script_client.delete() # hence why _init_self_delete=False
135135

136136
core.app.config.add_run_config(
137137
reload=reload,

website/documentation/content/doc/api.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727
def dummy_client() -> Generator[Client, None, None]:
2828
"""Create a dummy client for pre-rendering UI."""
2929
try:
30-
with Client(nicegui_ui.page('')) as client:
30+
with Client(nicegui_ui.page(''), _init_self_delete=False) as client:
3131
yield client
3232
finally:
33-
client.delete()
33+
client.delete() # hence _init_self_delete=False above
3434

3535

3636
def auto_execute(function: Callable) -> Callable:

0 commit comments

Comments
 (0)