Skip to content

Commit f7d3fb7

Browse files
fix backward compatibility of event argument classes
1 parent 08f9021 commit f7d3fb7

File tree

6 files changed

+11
-12
lines changed

6 files changed

+11
-12
lines changed

nicegui/element.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,8 @@ def on(self,
380380
def _handle_event(self, sid: str, msg: Dict) -> None:
381381
listener = self._event_listeners[msg['listener_id']]
382382
storage.request_contextvar.set(listener.request)
383-
args = events.GenericEventArguments(sender=self, client=self.client, socket_id=sid, args=msg['args'])
383+
args = events.GenericEventArguments(sender=self, client=self.client, args=msg['args'])
384+
args.socket_id = sid
384385
events.handle_event(listener.handler, args)
385386

386387
def update(self) -> None:

nicegui/elements/mixins/selectable_element.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ def _handle_selection_change(self, selected: bool) -> None:
111111
"""
112112
self._props['selected'] = selected
113113
self.update()
114-
args = ValueChangeEventArguments(sender=self, client=self.client, socket_id=self._current_socket_id,
115-
value=self._props['selected'])
114+
args = ValueChangeEventArguments(sender=self, client=self.client, value=self._props['selected'])
115+
args.socket_id = self._current_socket_id
116116
for handler in self._selection_change_handlers:
117117
handle_event(handler, args)

nicegui/elements/mixins/value_element.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ def _handle_value_change(self, value: Any) -> None:
114114
self._props[self.VALUE_PROP] = self._value_to_model_value(value)
115115
if self._send_update_on_value_change:
116116
self.update()
117-
args = ValueChangeEventArguments(sender=self, client=self.client, socket_id=self._current_socket_id,
118-
value=self._value_to_event_value(value))
117+
args = ValueChangeEventArguments(sender=self, client=self.client, value=self._value_to_event_value(value))
118+
args.socket_id = self._current_socket_id
119119
for handler in self._change_handlers:
120120
handle_event(handler, args)
121121

nicegui/elements/upload.py

-2
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,13 @@ def handle_uploads(self, uploads: List[UploadFile]) -> None:
7777
handle_event(upload_handler, UploadEventArguments(
7878
sender=self,
7979
client=self.client,
80-
socket_id='', # TODO: can we do better here?
8180
content=upload.file,
8281
name=upload.filename or '',
8382
type=upload.content_type or '',
8483
))
8584
multi_upload_args = MultiUploadEventArguments(
8685
sender=self,
8786
client=self.client,
88-
socket_id='', # TODO: can we do better here?
8987
contents=[upload.file for upload in uploads],
9088
names=[upload.filename or '' for upload in uploads],
9189
types=[upload.content_type or '' for upload in uploads],

nicegui/events.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from __future__ import annotations
22

33
from contextlib import contextmanager, nullcontext
4-
from dataclasses import dataclass
4+
from dataclasses import dataclass, field
55
from inspect import Parameter, signature
66
from typing import (
77
TYPE_CHECKING,
@@ -46,12 +46,14 @@ class ObservableChangeEventArguments(EventArguments):
4646
class UiEventArguments(EventArguments):
4747
sender: Element
4848
client: Client
49-
socket_id: str
49+
socket_id: str = field(init=False, default='')
5050

5151
@classmethod
5252
def from_generic_event(cls, e: GenericEventArguments, **kwargs: Any) -> Self:
5353
"""Create new event arguments from ``GenericEventArguments``."""
54-
return cls(sender=e.sender, client=e.client, socket_id=e.socket_id, **kwargs)
54+
ui_event_arguments = cls(sender=e.sender, client=e.client, **kwargs)
55+
ui_event_arguments.socket_id = e.socket_id
56+
return ui_event_arguments
5557

5658
@property
5759
@contextmanager

nicegui/testing/user_interaction.py

-2
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ def trigger(self, event: str) -> Self:
5050
events.handle_event(listener.handler, events.GenericEventArguments(
5151
sender=element,
5252
client=self.user.client,
53-
socket_id='', # TODO: can we do better here?
5453
args={},
5554
))
5655
return self
@@ -93,7 +92,6 @@ def click(self) -> Self:
9392
events.handle_event(listener.handler, events.GenericEventArguments(
9493
sender=element,
9594
client=self.user.client,
96-
socket_id='', # TODO: can we do better here?
9795
args=args,
9896
))
9997
return self

0 commit comments

Comments
 (0)