ex4nicegui 0.2.18__py3-none-any.whl → 0.3.1__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.
- ex4nicegui/__init__.py +1 -1
- ex4nicegui/bi/__init__.py +13 -0
- ex4nicegui/bi/dataSource.py +203 -0
- ex4nicegui/bi/dataSourceFacade.py +148 -0
- ex4nicegui/bi/elements/__init__.py +0 -0
- ex4nicegui/bi/elements/containers.py +13 -0
- ex4nicegui/bi/elements/layouts.py +28 -0
- ex4nicegui/bi/elements/models.py +55 -0
- ex4nicegui/bi/elements/text.py +33 -0
- ex4nicegui/bi/elements/ui_aggrid.py +46 -0
- ex4nicegui/bi/elements/ui_date_picker.js +35 -0
- ex4nicegui/bi/elements/ui_date_picker.py +77 -0
- ex4nicegui/bi/elements/ui_echarts.py +72 -0
- ex4nicegui/bi/elements/ui_radio.py +60 -0
- ex4nicegui/bi/elements/ui_range.py +119 -0
- ex4nicegui/bi/elements/ui_select.py +105 -0
- ex4nicegui/bi/elements/ui_slider.py +59 -0
- ex4nicegui/bi/index.py +76 -0
- ex4nicegui/bi/protocols.py +158 -0
- ex4nicegui/bi/types.py +13 -0
- ex4nicegui/reactive/EChartsComponent/ECharts.js +1 -2
- ex4nicegui/reactive/EChartsComponent/ECharts.py +1 -0
- ex4nicegui/reactive/officials/base.py +12 -1
- ex4nicegui/reactive/officials/button.py +1 -1
- ex4nicegui/reactive/officials/drawer.py +1 -2
- ex4nicegui/reactive/officials/echarts.py +1 -1
- ex4nicegui/utils/clientScope.py +42 -0
- ex4nicegui/utils/signals.py +54 -5
- {ex4nicegui-0.2.18.dist-info → ex4nicegui-0.3.1.dist-info}/METADATA +2 -2
- {ex4nicegui-0.2.18.dist-info → ex4nicegui-0.3.1.dist-info}/RECORD +33 -13
- {ex4nicegui-0.2.18.dist-info → ex4nicegui-0.3.1.dist-info}/LICENSE +0 -0
- {ex4nicegui-0.2.18.dist-info → ex4nicegui-0.3.1.dist-info}/WHEEL +0 -0
- {ex4nicegui-0.2.18.dist-info → ex4nicegui-0.3.1.dist-info}/top_level.txt +0 -0
|
@@ -29,7 +29,7 @@ from nicegui.elements.mixins.text_element import TextElement
|
|
|
29
29
|
|
|
30
30
|
T = TypeVar("T")
|
|
31
31
|
|
|
32
|
-
TWidget = TypeVar("TWidget")
|
|
32
|
+
TWidget = TypeVar("TWidget", bound=ui.element)
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
class BindableUi(Generic[TWidget]):
|
|
@@ -61,6 +61,13 @@ class BindableUi(Generic[TWidget]):
|
|
|
61
61
|
cast(ui.element, self.element).style(add, remove=remove, replace=replace)
|
|
62
62
|
return self
|
|
63
63
|
|
|
64
|
+
def __enter__(self) -> Self:
|
|
65
|
+
self.element.__enter__()
|
|
66
|
+
return self
|
|
67
|
+
|
|
68
|
+
def __exit__(self, *_):
|
|
69
|
+
self.element.default_slot.__exit__(*_)
|
|
70
|
+
|
|
64
71
|
def tooltip(self, text: str) -> Self:
|
|
65
72
|
cast(ui.element, self.element).tooltip(text)
|
|
66
73
|
return self
|
|
@@ -78,6 +85,10 @@ class BindableUi(Generic[TWidget]):
|
|
|
78
85
|
def element(self):
|
|
79
86
|
return self.__element
|
|
80
87
|
|
|
88
|
+
def delete(self) -> None:
|
|
89
|
+
"""Delete the element."""
|
|
90
|
+
self.element.delete()
|
|
91
|
+
|
|
81
92
|
def bind_prop(self, prop: str, ref_ui: ReadonlyRef):
|
|
82
93
|
if prop == "visible":
|
|
83
94
|
return self.bind_visible(ref_ui)
|
|
@@ -51,8 +51,7 @@ class DrawerBindableUi(SingleValueBindableUi[bool, Drawer]):
|
|
|
51
51
|
else:
|
|
52
52
|
element = ui.right_drawer(**value_kws)
|
|
53
53
|
|
|
54
|
-
element.
|
|
55
|
-
element.classes("flex flex-col gap-4")
|
|
54
|
+
element.classes("flex flex-col gap-4 backdrop-blur-md bg-[#5898d4]/30")
|
|
56
55
|
|
|
57
56
|
init_value = (
|
|
58
57
|
element._props["model-value"]
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from typing import Dict, List
|
|
2
|
+
from signe.core.effect import Effect
|
|
3
|
+
from signe.core.scope import IScope
|
|
4
|
+
from nicegui import globals as ng_globals, Client
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
_TClientID = str
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class NgClientScope(IScope):
|
|
11
|
+
def __init__(self) -> None:
|
|
12
|
+
self._effects: List[Effect] = []
|
|
13
|
+
|
|
14
|
+
def add_effect(self, effect: Effect):
|
|
15
|
+
self._effects.append(effect)
|
|
16
|
+
|
|
17
|
+
def dispose(self):
|
|
18
|
+
for effect in self._effects:
|
|
19
|
+
effect.dispose()
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class NgClientScopeManager:
|
|
23
|
+
def __init__(self) -> None:
|
|
24
|
+
self._client_scope_map: Dict[_TClientID, NgClientScope] = {}
|
|
25
|
+
|
|
26
|
+
def get_scope(self):
|
|
27
|
+
if len(ng_globals.get_slot_stack()) <= 0:
|
|
28
|
+
return
|
|
29
|
+
|
|
30
|
+
client = ng_globals.get_client()
|
|
31
|
+
if client.shared:
|
|
32
|
+
return
|
|
33
|
+
|
|
34
|
+
if client.id not in self._client_scope_map:
|
|
35
|
+
self._client_scope_map[client.id] = NgClientScope()
|
|
36
|
+
|
|
37
|
+
@client.on_disconnect
|
|
38
|
+
def _(e: Client):
|
|
39
|
+
if e.id in self._client_scope_map:
|
|
40
|
+
self._client_scope_map[e.id].dispose()
|
|
41
|
+
|
|
42
|
+
return self._client_scope_map[client.id]
|
ex4nicegui/utils/signals.py
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
from signe import createSignal, effect, computed, on as signe_on
|
|
1
|
+
from signe import createSignal, effect as signe_effect, computed, on as signe_on
|
|
2
2
|
from signe.core.signal import Signal, SignalOption
|
|
3
|
+
from signe.core.effect import Effect
|
|
3
4
|
from signe import utils as signe_utils
|
|
5
|
+
from .clientScope import NgClientScopeManager
|
|
4
6
|
from signe.types import TSetter, TGetter
|
|
5
7
|
from typing import (
|
|
6
8
|
Any,
|
|
9
|
+
Dict,
|
|
7
10
|
TypeVar,
|
|
8
11
|
Generic,
|
|
9
12
|
overload,
|
|
@@ -17,6 +20,8 @@ from nicegui import ui
|
|
|
17
20
|
|
|
18
21
|
T = TypeVar("T")
|
|
19
22
|
|
|
23
|
+
_CLIENT_SCOPE_MANAGER = NgClientScopeManager()
|
|
24
|
+
|
|
20
25
|
|
|
21
26
|
class ReadonlyRef(Generic[T]):
|
|
22
27
|
def __init__(self, getter: TGetter[T]) -> None:
|
|
@@ -115,6 +120,43 @@ def ref(value: T):
|
|
|
115
120
|
return cast(Ref[T], Ref(s.getValue, s.setValue, s))
|
|
116
121
|
|
|
117
122
|
|
|
123
|
+
@overload
|
|
124
|
+
def effect(
|
|
125
|
+
fn: None = ...,
|
|
126
|
+
*,
|
|
127
|
+
priority_level=1,
|
|
128
|
+
debug_trigger: Optional[Callable] = None,
|
|
129
|
+
debug_name: Optional[str] = None,
|
|
130
|
+
) -> signe_utils._TEffect_Fn[None]:
|
|
131
|
+
...
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
@overload
|
|
135
|
+
def effect(
|
|
136
|
+
fn: Callable[..., None],
|
|
137
|
+
*,
|
|
138
|
+
priority_level=1,
|
|
139
|
+
debug_trigger: Optional[Callable] = None,
|
|
140
|
+
debug_name: Optional[str] = None,
|
|
141
|
+
) -> Effect[None]:
|
|
142
|
+
...
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def effect(
|
|
146
|
+
fn: Optional[Callable[..., None]] = None,
|
|
147
|
+
*,
|
|
148
|
+
priority_level=1,
|
|
149
|
+
debug_trigger: Optional[Callable] = None,
|
|
150
|
+
debug_name: Optional[str] = None,
|
|
151
|
+
) -> Union[signe_utils._TEffect_Fn[None], Effect[None]]:
|
|
152
|
+
kws = {
|
|
153
|
+
"debug_trigger": debug_trigger,
|
|
154
|
+
"priority_level": priority_level,
|
|
155
|
+
"debug_name": debug_name,
|
|
156
|
+
}
|
|
157
|
+
return signe_effect(fn, **kws, scope=_CLIENT_SCOPE_MANAGER.get_scope())
|
|
158
|
+
|
|
159
|
+
|
|
118
160
|
@overload
|
|
119
161
|
def ref_computed(
|
|
120
162
|
fn: Callable[[], T],
|
|
@@ -122,6 +164,7 @@ def ref_computed(
|
|
|
122
164
|
desc="",
|
|
123
165
|
debug_trigger: Optional[Callable[..., None]] = None,
|
|
124
166
|
priority_level: int = 1,
|
|
167
|
+
debug_name: Optional[str] = None,
|
|
125
168
|
) -> ReadonlyRef[T]:
|
|
126
169
|
...
|
|
127
170
|
|
|
@@ -133,6 +176,7 @@ def ref_computed(
|
|
|
133
176
|
desc="",
|
|
134
177
|
debug_trigger: Optional[Callable[..., None]] = None,
|
|
135
178
|
priority_level: int = 1,
|
|
179
|
+
debug_name: Optional[str] = None,
|
|
136
180
|
) -> Callable[[Callable[..., T]], ReadonlyRef[T]]:
|
|
137
181
|
...
|
|
138
182
|
|
|
@@ -143,14 +187,16 @@ def ref_computed(
|
|
|
143
187
|
desc="",
|
|
144
188
|
debug_trigger: Optional[Callable[..., None]] = None,
|
|
145
189
|
priority_level: int = 1,
|
|
190
|
+
debug_name: Optional[str] = None,
|
|
146
191
|
) -> Union[ReadonlyRef[T], Callable[[Callable[..., T]], ReadonlyRef[T]]]:
|
|
147
192
|
kws = {
|
|
148
193
|
"debug_trigger": debug_trigger,
|
|
149
194
|
"priority_level": priority_level,
|
|
195
|
+
"debug_name": debug_name,
|
|
150
196
|
}
|
|
151
197
|
|
|
152
198
|
if fn:
|
|
153
|
-
getter = computed(fn, **kws)
|
|
199
|
+
getter = computed(fn, **kws, scope=_CLIENT_SCOPE_MANAGER.get_scope())
|
|
154
200
|
return cast(DescReadonlyRef[T], DescReadonlyRef(getter, desc))
|
|
155
201
|
else:
|
|
156
202
|
|
|
@@ -192,20 +238,23 @@ class effect_refreshable:
|
|
|
192
238
|
re_func.refresh()
|
|
193
239
|
|
|
194
240
|
if len(self._refs) == 0:
|
|
195
|
-
runner =
|
|
241
|
+
runner = signe_effect(runner)
|
|
196
242
|
else:
|
|
197
243
|
runner = on(self._refs)(runner)
|
|
198
244
|
|
|
199
245
|
return runner
|
|
200
246
|
|
|
201
247
|
|
|
202
|
-
def on(
|
|
248
|
+
def on(
|
|
249
|
+
refs: Union[ReadonlyRef, Sequence[ReadonlyRef]],
|
|
250
|
+
effect_kws: Optional[Dict[str, Any]] = None,
|
|
251
|
+
):
|
|
203
252
|
if not isinstance(refs, Sequence):
|
|
204
253
|
refs = [refs]
|
|
205
254
|
|
|
206
255
|
getters = [getattr(r, "_ReadonlyRef___getter") for r in refs]
|
|
207
256
|
|
|
208
257
|
def wrap(fn: Callable):
|
|
209
|
-
return signe_on(getters, fn)
|
|
258
|
+
return signe_on(getters, fn, effect_kws=effect_kws)
|
|
210
259
|
|
|
211
260
|
return wrap
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ex4nicegui
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: ...
|
|
5
5
|
Home-page:
|
|
6
6
|
Author: carson_jia
|
|
@@ -13,7 +13,7 @@ Classifier: Natural Language :: English
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.8
|
|
14
14
|
Requires-Python: >=3.8
|
|
15
15
|
License-File: LICENSE
|
|
16
|
-
Requires-Dist: signe (>=0.
|
|
16
|
+
Requires-Dist: signe (>=0.2.4)
|
|
17
17
|
Requires-Dist: nicegui (>=1.3.13)
|
|
18
18
|
Requires-Dist: typing-extensions
|
|
19
19
|
|
|
@@ -1,4 +1,23 @@
|
|
|
1
|
-
ex4nicegui/__init__.py,sha256=
|
|
1
|
+
ex4nicegui/__init__.py,sha256=AHJ1FEv2tIq1TO8OrKZezKp-Ce9ykXJxqrJRiqJfFy8,396
|
|
2
|
+
ex4nicegui/bi/__init__.py,sha256=eu-2CuzzrcHCyKQOfoo87v6C9nSwFDdeLhjY0cRV13M,315
|
|
3
|
+
ex4nicegui/bi/dataSource.py,sha256=SJyYySHZBjzQnPW8x3P3sSHaKlzB21spkbw9DM8Sfgs,6212
|
|
4
|
+
ex4nicegui/bi/dataSourceFacade.py,sha256=RyglhsZVJT7qBTqER5kuQ7qKhMHrlo8oSybM6VtLR70,4786
|
|
5
|
+
ex4nicegui/bi/index.py,sha256=Zuo8V_7IZnayo8vxEMFbx-BkZTkEca-QhHVrmVTHjuc,1883
|
|
6
|
+
ex4nicegui/bi/protocols.py,sha256=RNEXeV30rFdM8RTxLzyPp37JcbZCqJuJoPZCyMczLOA,4736
|
|
7
|
+
ex4nicegui/bi/types.py,sha256=jMaEnFZw94R8FoAaOAJGqbCa1FJm841PSbwsajZfaVQ,293
|
|
8
|
+
ex4nicegui/bi/elements/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
+
ex4nicegui/bi/elements/containers.py,sha256=5a9ZkzyVNLnK7DftDYdbVRo0bQFvuMHRI9LBGR__YuI,358
|
|
10
|
+
ex4nicegui/bi/elements/layouts.py,sha256=teb0Vp-fgsByBNPTiW73kXEu2JponRRj4QQanaalcA0,898
|
|
11
|
+
ex4nicegui/bi/elements/models.py,sha256=l1sEeapYsub2Cgm8X6Mb3pBhim6JyV-N6MD53CuXnRQ,1436
|
|
12
|
+
ex4nicegui/bi/elements/text.py,sha256=vZYD0vplZIq2Wjdhv0e2NGuSch4y0zrvflndQnCE9DQ,801
|
|
13
|
+
ex4nicegui/bi/elements/ui_aggrid.py,sha256=lS01HhwdpDlt_4sI8WOiDS_FVPI5dDj8r8UuaVZR3sk,1390
|
|
14
|
+
ex4nicegui/bi/elements/ui_date_picker.js,sha256=Tk6NACKVsCnqhWZtuNA6Xt2e-AWI54AnjfHPIldaM5A,852
|
|
15
|
+
ex4nicegui/bi/elements/ui_date_picker.py,sha256=UfUioMmVQyZMzp_hZLQi96xbP0Hk1UGRRQUL1p8r8H0,2238
|
|
16
|
+
ex4nicegui/bi/elements/ui_echarts.py,sha256=YvUmYD0LbdAOVvGS-KVzM6aGj7cQUkvyDXEsVqZfyyc,2358
|
|
17
|
+
ex4nicegui/bi/elements/ui_radio.py,sha256=8qJoml1WgLETdc_SIIPsJ4Z5xNV340g-pIhSn7vga4I,1788
|
|
18
|
+
ex4nicegui/bi/elements/ui_range.py,sha256=aYAl4Z78GbPSPHamjlO8mE96GCeF_IWrOm4Z2IxPPgM,3750
|
|
19
|
+
ex4nicegui/bi/elements/ui_select.py,sha256=ZpFCGXag374Z78quGu7kqTRJO2CxViiUWsxy6DAPaq4,3171
|
|
20
|
+
ex4nicegui/bi/elements/ui_slider.py,sha256=4nuyroQEq_FTUItyLV7h687OGNdSg78Iw-QRIq4edw8,1820
|
|
2
21
|
ex4nicegui/experimental_/__init__.py,sha256=LSDd_U6eQ9g9St9kC4daau3MFGlVCRHGZJC4E0JRH34,36
|
|
3
22
|
ex4nicegui/experimental_/gridLayout/__init__.py,sha256=48y_Pm0xxgC_PRnixQB5R_5rPL4FuyeoeOao_W7pm7A,49
|
|
4
23
|
ex4nicegui/experimental_/gridLayout/index.py,sha256=zFXuvFroo5EC1CFjt-b4hMiEy67hGP5J1GYTKH6kpUU,4737
|
|
@@ -18,8 +37,8 @@ ex4nicegui/reactive/local_file_picker.py,sha256=DWNzm_IP02sY-nZWN6WEWJxlwpABW6tN
|
|
|
18
37
|
ex4nicegui/reactive/q_pagination.py,sha256=ITXBrjLnI1a5bz3Rbn7j8lZs9UJaFuMHrM9_FW_V7NA,1217
|
|
19
38
|
ex4nicegui/reactive/rxui.py,sha256=NZUgvItxqqgzHKrt4oGZnxxV9dlEudGiv4J3fhJdvdQ,24
|
|
20
39
|
ex4nicegui/reactive/usePagination.py,sha256=IP1NeLxaH3413KTEjtbyuzq0FVdtnKQsTZqM-W7iEgY,2468
|
|
21
|
-
ex4nicegui/reactive/EChartsComponent/ECharts.js,sha256=
|
|
22
|
-
ex4nicegui/reactive/EChartsComponent/ECharts.py,sha256=
|
|
40
|
+
ex4nicegui/reactive/EChartsComponent/ECharts.js,sha256=qj3HUngg-pcTjNDCiz7jgz-O2Lx3aW0HhvrcsDEb0a0,1581667
|
|
41
|
+
ex4nicegui/reactive/EChartsComponent/ECharts.py,sha256=J3Vl8h-u__z2iIVtHL-PYWmrqRAB9caMCI50h8nEdCo,3010
|
|
23
42
|
ex4nicegui/reactive/EChartsComponent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
43
|
ex4nicegui/reactive/UseDraggable/UseDraggable.js,sha256=D2_4c64qYwkqG_JzL1ZAwoNZDoz6qtHfPA_Z5RIvmIw,5235
|
|
25
44
|
ex4nicegui/reactive/UseDraggable/UseDraggable.py,sha256=ii9KGchUWUb0L_PiMQ3qkBmk98IxTfUg9DU7rT9FqXY,3509
|
|
@@ -29,15 +48,15 @@ ex4nicegui/reactive/dropZone/dropZone.js,sha256=7rSpFJX-Fk_W_NGZhOTyuEw0bzR-YUc8
|
|
|
29
48
|
ex4nicegui/reactive/dropZone/dropZone.py,sha256=hg9UKTayff8v8Ek-n38h_3wX1Qmiotvdyv1Hsqilh5Y,2590
|
|
30
49
|
ex4nicegui/reactive/officials/__init__.py,sha256=8xPx079EFXpEWtEc1vCbgQJt1TRZuRf91YOaqhkyRIo,1527
|
|
31
50
|
ex4nicegui/reactive/officials/aggrid.py,sha256=OArj_BTUrD4Y1hxURTJOLeao1lwZ31xc7Ezd_RpEdVY,2408
|
|
32
|
-
ex4nicegui/reactive/officials/base.py,sha256=
|
|
33
|
-
ex4nicegui/reactive/officials/button.py,sha256=
|
|
51
|
+
ex4nicegui/reactive/officials/base.py,sha256=OwJQ52nnVtCR47FZW45ZPZcamHkXtJY1QRiLrS18T6k,4786
|
|
52
|
+
ex4nicegui/reactive/officials/button.py,sha256=mLbPGM7CkoryfPCtOLO1DsyuCU4UQDC9m0tgRy9H_Zc,2251
|
|
34
53
|
ex4nicegui/reactive/officials/card.py,sha256=8-tBwm3xfVybolQ87i8lAYUpBV6FdaVdeSH6xu0736U,1275
|
|
35
54
|
ex4nicegui/reactive/officials/checkbox.py,sha256=Dy4zCqR_uv--EWNEr3eOIpfvO7VE_v-gOdI1o60SRvw,1772
|
|
36
55
|
ex4nicegui/reactive/officials/color_picker.py,sha256=s6zUBkCAqAnBnoLWS3bXFIqmCK5iLiQv8VdY_x33H7w,2744
|
|
37
56
|
ex4nicegui/reactive/officials/column.py,sha256=3RLvVKNaDtOb8df4uS3xRfwJJPuH1ndXk_Y4Gry0Tjo,413
|
|
38
57
|
ex4nicegui/reactive/officials/date.py,sha256=4muMUxoXwV_OYBoe-ucB5g20msT2zjbiyfGNZbKPdoU,2700
|
|
39
|
-
ex4nicegui/reactive/officials/drawer.py,sha256=
|
|
40
|
-
ex4nicegui/reactive/officials/echarts.py,sha256=
|
|
58
|
+
ex4nicegui/reactive/officials/drawer.py,sha256=8g88ppLIepYVG_0qUaZdsakvB3ag6IY_x4fAEgOiyGY,2409
|
|
59
|
+
ex4nicegui/reactive/officials/echarts.py,sha256=HmQqzcvIFum6C80_b6IPmLLy-D16l_8y1IaHYFOsylk,2198
|
|
41
60
|
ex4nicegui/reactive/officials/expansion.py,sha256=Z2aKsrtUpkO0Z4kO9kPwcu7piBcE_d62OAC2oVDFTGE,1528
|
|
42
61
|
ex4nicegui/reactive/officials/grid.py,sha256=6brGijR9ZLqOhe5r2w4BF81R8I4kJPZxZVkbQjXwlOU,925
|
|
43
62
|
ex4nicegui/reactive/officials/html.py,sha256=7CQWKu_t3MdDJX21fTC3xTMAOcg0gKZrKJsaSCpZ0e4,1687
|
|
@@ -61,10 +80,11 @@ ex4nicegui/reactive/useMouse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
|
61
80
|
ex4nicegui/tools/__init__.py,sha256=Ue6ATQC9BuQlJEcs2JnuFXZh4DYh9twKc4F7zpIPhjE,40
|
|
62
81
|
ex4nicegui/tools/debug.py,sha256=HCKlVzhHx5av-983ADgwgMkScKwTreSluLA7uikGYa0,4887
|
|
63
82
|
ex4nicegui/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
+
ex4nicegui/utils/clientScope.py,sha256=plgHxcCY1y76bK31u5zfOTX8cnYC1Jlx-N3cAgCY2G4,1143
|
|
64
84
|
ex4nicegui/utils/common.py,sha256=5fsaOkoj-Ild1LGsInZXra66gJLVoVcZGAIG6YOeM6E,430
|
|
65
|
-
ex4nicegui/utils/signals.py,sha256=
|
|
66
|
-
ex4nicegui-0.
|
|
67
|
-
ex4nicegui-0.
|
|
68
|
-
ex4nicegui-0.
|
|
69
|
-
ex4nicegui-0.
|
|
70
|
-
ex4nicegui-0.
|
|
85
|
+
ex4nicegui/utils/signals.py,sha256=CaQbiQtcOvLEnjImezzIJuOotCmPGr0VW0yXRIOP0XI,6121
|
|
86
|
+
ex4nicegui-0.3.1.dist-info/LICENSE,sha256=0KDDElS2dl-HIsWvbpy8ywbLzJMBFzXLev57LnMIZXs,1094
|
|
87
|
+
ex4nicegui-0.3.1.dist-info/METADATA,sha256=1pqxdI5s9CbS4G5VZ3dz0Ym41KdAfXhRI1T7J9G1Oqg,514
|
|
88
|
+
ex4nicegui-0.3.1.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
|
89
|
+
ex4nicegui-0.3.1.dist-info/top_level.txt,sha256=VFwMiO9AFjj5rfLMJwN1ipLRASk9fJXB8tM6DNrpvPQ,11
|
|
90
|
+
ex4nicegui-0.3.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|