ex4nicegui 0.8.0__py3-none-any.whl → 0.8.2__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.
@@ -0,0 +1,153 @@
1
+ import sys
2
+ from typing import Any, Optional, SupportsIndex, Tuple, overload
3
+ from . import utils
4
+ from .base import Proxy
5
+
6
+
7
+ class FloatProxy(Proxy):
8
+ # def __new__(cls, value):
9
+ # return super().__new__(cls, value)
10
+
11
+ def __init__(self, value: float):
12
+ from ex4nicegui.utils.signals import to_ref
13
+
14
+ self._ref = to_ref(value)
15
+
16
+ def __str__(self) -> str:
17
+ return str(self._ref.value)
18
+
19
+ def as_integer_ratio(self) -> Tuple[int, int]:
20
+ return self._ref.value.as_integer_ratio()
21
+
22
+ def hex(self) -> str:
23
+ return self._ref.value.hex()
24
+
25
+ def is_integer(self) -> bool:
26
+ return self._ref.value.is_integer()
27
+
28
+ @property
29
+ def real(self) -> float:
30
+ return self._ref.value.real
31
+
32
+ @property
33
+ def imag(self) -> float:
34
+ return self._ref.value.imag
35
+
36
+ def conjugate(self) -> float:
37
+ return self._ref.value.conjugate()
38
+
39
+ def __add__(self, value: float, /) -> float:
40
+ return self._ref.value.__add__(float(utils.to_value(value)))
41
+
42
+ def __sub__(self, value: float, /) -> float:
43
+ return self._ref.value.__sub__(float(utils.to_value(value)))
44
+
45
+ def __mul__(self, value: float, /) -> float:
46
+ return self._ref.value.__mul__(float(utils.to_value(value)))
47
+
48
+ def __floordiv__(self, value: float, /) -> float:
49
+ return self._ref.value.__floordiv__(float(utils.to_value(value)))
50
+
51
+ def __truediv__(self, value: float, /) -> float:
52
+ return self._ref.value.__truediv__(float(utils.to_value(value)))
53
+
54
+ def __mod__(self, value: float, /) -> float:
55
+ return self._ref.value.__mod__(float(utils.to_value(value)))
56
+
57
+ def __divmod__(self, value: float, /) -> Tuple[float, float]:
58
+ return self._ref.value.__divmod__(float(utils.to_value(value)))
59
+
60
+ @overload
61
+ def __pow__(self, value: int, mod: None = None, /) -> float: ...
62
+ # positive __value -> float; negative __value -> complex
63
+ # return type must be Any as `float | complex` causes too many false-positive errors
64
+ @overload
65
+ def __pow__(self, value: float, mod: None = None, /) -> Any: ...
66
+
67
+ def __pow__(self, value: float, mod: None = None, /) -> Any:
68
+ return self._ref.value.__pow__(float(utils.to_value(value)), mod)
69
+
70
+ def __radd__(self, value: float, /) -> float:
71
+ return self._ref.value.__radd__(float(utils.to_value(value)))
72
+
73
+ def __rsub__(self, value: float, /) -> float:
74
+ return self._ref.value.__rsub__(float(utils.to_value(value)))
75
+
76
+ def __rmul__(self, value: float, /) -> float:
77
+ return self._ref.value.__rmul__(float(utils.to_value(value)))
78
+
79
+ def __rfloordiv__(self, value: float, /) -> float:
80
+ return self._ref.value.__rfloordiv__(float(utils.to_value(value)))
81
+
82
+ def __rtruediv__(self, value: float, /) -> float:
83
+ return self._ref.value.__rtruediv__(float(utils.to_value(value)))
84
+
85
+ def __rmod__(self, value: float, /) -> float:
86
+ return self._ref.value.__rmod__(float(utils.to_value(value)))
87
+
88
+ def __rdivmod__(self, value: float, /) -> Tuple[float, float]:
89
+ return self._ref.value.__rdivmod__(float(utils.to_value(value)))
90
+
91
+ def __rpow__(self, value, mod: None = None, /) -> float:
92
+ return self._ref.value.__rpow__(float(utils.to_value(value)), mod) # type: ignore
93
+
94
+ def __getnewargs__(self) -> Tuple[float]:
95
+ return (self._ref.value,)
96
+
97
+ def __trunc__(self) -> int:
98
+ return self._ref.value.__trunc__()
99
+
100
+ if sys.version_info >= (3, 9):
101
+
102
+ def __ceil__(self) -> int:
103
+ return self._ref.value.__ceil__()
104
+
105
+ def __floor__(self) -> int:
106
+ return self._ref.value.__floor__()
107
+
108
+ @overload
109
+ def __round__(self, ndigits: None = None, /) -> int: ...
110
+ @overload
111
+ def __round__(self, ndigits: SupportsIndex, /) -> float: ...
112
+
113
+ def __round__(self, ndigits: Optional[SupportsIndex] = None, /):
114
+ return self._ref.value.__round__(ndigits)
115
+
116
+ def __eq__(self, value: object, /) -> bool:
117
+ return self._ref.value.__eq__(float(utils.to_value(value)))
118
+
119
+ def __ne__(self, value: object, /) -> bool:
120
+ return self._ref.value.__ne__(float(utils.to_value(value)))
121
+
122
+ def __lt__(self, value: float, /) -> bool:
123
+ return self._ref.value.__lt__(float(utils.to_value(value)))
124
+
125
+ def __le__(self, value: float, /) -> bool:
126
+ return self._ref.value.__le__(float(utils.to_value(value)))
127
+
128
+ def __gt__(self, value: float, /) -> bool:
129
+ return self._ref.value.__gt__(float(utils.to_value(value)))
130
+
131
+ def __ge__(self, value: float, /) -> bool:
132
+ return self._ref.value.__ge__(float(utils.to_value(value)))
133
+
134
+ def __neg__(self) -> float:
135
+ return self._ref.value.__neg__()
136
+
137
+ def __pos__(self) -> float:
138
+ return self._ref.value.__pos__()
139
+
140
+ def __int__(self) -> int:
141
+ return self._ref.value.__int__()
142
+
143
+ def __float__(self) -> float:
144
+ return self._ref.value.__float__()
145
+
146
+ def __abs__(self) -> float:
147
+ return self._ref.value.__abs__()
148
+
149
+ def __hash__(self) -> int:
150
+ return self._ref.value.__hash__()
151
+
152
+ def __bool__(self) -> bool:
153
+ return self._ref.value.__bool__()
@@ -0,0 +1,223 @@
1
+ from __future__ import annotations
2
+ from typing import (
3
+ Literal,
4
+ Optional,
5
+ SupportsIndex,
6
+ Tuple,
7
+ Union,
8
+ )
9
+ import sys
10
+ from . import utils
11
+ from .base import Proxy
12
+
13
+
14
+ class IntProxy(Proxy):
15
+ # def __new__(cls, value):
16
+ # return super().__new__(cls, value)
17
+
18
+ def __init__(self, value: int):
19
+ from ex4nicegui.utils.signals import to_ref
20
+
21
+ self._ref = to_ref(value)
22
+
23
+ def __str__(self) -> str:
24
+ return str(self._ref.value)
25
+
26
+ def as_integer_ratio(self) -> Tuple[int, Literal[1]]:
27
+ return self._ref.value.as_integer_ratio()
28
+
29
+ @property
30
+ def real(self) -> int:
31
+ return self._ref.value.real
32
+
33
+ @property
34
+ def imag(self) -> Literal[0]:
35
+ return 0
36
+
37
+ @property
38
+ def numerator(self) -> int:
39
+ return self._ref.value.numerator
40
+
41
+ @property
42
+ def denominator(self) -> Literal[1]:
43
+ return 1
44
+
45
+ def conjugate(self) -> int:
46
+ return self._ref.value.conjugate()
47
+
48
+ def bit_length(self) -> int:
49
+ return self._ref.value.bit_length()
50
+
51
+ if sys.version_info >= (3, 10):
52
+
53
+ def bit_count(self) -> int:
54
+ return self._ref.value.bit_count()
55
+
56
+ if sys.version_info >= (3, 11):
57
+
58
+ def to_bytes(
59
+ self,
60
+ length: SupportsIndex = 1,
61
+ byteorder: Literal["little", "big"] = "big",
62
+ *,
63
+ signed: bool = False,
64
+ ) -> bytes:
65
+ return self._ref.value.to_bytes(length, byteorder, signed=signed)
66
+
67
+ else:
68
+
69
+ def to_bytes(
70
+ self,
71
+ length: SupportsIndex,
72
+ byteorder: Literal["little", "big"],
73
+ *,
74
+ signed: bool = False,
75
+ ) -> bytes:
76
+ return self._ref.value.to_bytes(length, byteorder, signed=signed)
77
+
78
+ if sys.version_info >= (3, 12):
79
+
80
+ def is_integer(self) -> Literal[True]:
81
+ return True
82
+
83
+ def __add__(self, value: Union[int, IntProxy]) -> int:
84
+ return self._ref.value.__add__(int(utils.to_value(value)))
85
+
86
+ def __sub__(self, value: Union[int, IntProxy]) -> int:
87
+ return self._ref.value.__sub__(int(utils.to_value(value)))
88
+
89
+ def __mul__(self, value: Union[int, IntProxy]) -> int:
90
+ return self._ref.value.__mul__(int(utils.to_value(value)))
91
+
92
+ def __floordiv__(self, value: Union[int, IntProxy]) -> int:
93
+ return self._ref.value.__floordiv__(int(utils.to_value(value)))
94
+
95
+ def __truediv__(self, value: Union[int, IntProxy]) -> float:
96
+ return self._ref.value.__truediv__(int(utils.to_value(value)))
97
+
98
+ def __mod__(self, value: Union[int, IntProxy]) -> int:
99
+ return self._ref.value.__mod__(int(utils.to_value(value)))
100
+
101
+ def __divmod__(self, value: Union[int, IntProxy]) -> Tuple[int, int]:
102
+ return self._ref.value.__divmod__(int(utils.to_value(value)))
103
+
104
+ def __radd__(self, value: Union[int, IntProxy]) -> int:
105
+ return self._ref.value.__radd__(int(utils.to_value(value)))
106
+
107
+ def __rsub__(self, value: Union[int, IntProxy]) -> int:
108
+ return self._ref.value.__rsub__(int(utils.to_value(value)))
109
+
110
+ def __rmul__(self, value: Union[int, IntProxy]) -> int:
111
+ return self._ref.value.__rmul__(int(utils.to_value(value)))
112
+
113
+ def __rfloordiv__(self, value: Union[int, IntProxy]) -> int:
114
+ return self._ref.value.__rfloordiv__(int(utils.to_value(value)))
115
+
116
+ def __rtruediv__(self, value: Union[int, IntProxy]) -> float:
117
+ return self._ref.value.__rtruediv__(int(utils.to_value(value)))
118
+
119
+ def __rmod__(self, value: Union[int, IntProxy]) -> int:
120
+ return self._ref.value.__rmod__(int(utils.to_value(value)))
121
+
122
+ def __rdivmod__(self, value: Union[int, IntProxy]) -> Tuple[int, int]:
123
+ return self._ref.value.__rdivmod__(int(utils.to_value(value)))
124
+
125
+ def __pow__(
126
+ self, value: Union[int, IntProxy], mod: Optional[int] = None
127
+ ) -> Union[int, float]:
128
+ return self._ref.value.__pow__(int(utils.to_value(value)), mod)
129
+
130
+ def __rpow__(
131
+ self, value: Union[int, IntProxy], mod: Optional[int] = None
132
+ ) -> Union[int, float]:
133
+ return self._ref.value.__rpow__(int(utils.to_value(value)), mod)
134
+
135
+ def __and__(self, value: Union[int, IntProxy]) -> int:
136
+ return self._ref.value.__and__(int(utils.to_value(value)))
137
+
138
+ def __or__(self, value: Union[int, IntProxy]) -> int:
139
+ return self._ref.value.__or__(int(utils.to_value(value)))
140
+
141
+ def __xor__(self, value: Union[int, IntProxy]) -> int:
142
+ return self._ref.value.__xor__(int(utils.to_value(value)))
143
+
144
+ def __lshift__(self, value: Union[int, IntProxy]) -> int:
145
+ return self._ref.value.__lshift__(int(utils.to_value(value)))
146
+
147
+ def __rshift__(self, value: Union[int, IntProxy]) -> int:
148
+ return self._ref.value.__rshift__(int(utils.to_value(value)))
149
+
150
+ def __rand__(self, value: Union[int, IntProxy]) -> int:
151
+ return self._ref.value.__rand__(int(utils.to_value(value)))
152
+
153
+ def __ror__(self, value: Union[int, IntProxy]) -> int:
154
+ return self._ref.value.__ror__(int(utils.to_value(value)))
155
+
156
+ def __rxor__(self, value: Union[int, IntProxy]) -> int:
157
+ return self._ref.value.__rxor__(int(utils.to_value(value)))
158
+
159
+ def __rlshift__(self, value: Union[int, IntProxy]) -> int:
160
+ return self._ref.value.__rlshift__(int(utils.to_value(value)))
161
+
162
+ def __rrshift__(self, value: Union[int, IntProxy]) -> int:
163
+ return self._ref.value.__rrshift__(int(utils.to_value(value)))
164
+
165
+ def __neg__(self) -> int:
166
+ return self._ref.value.__neg__()
167
+
168
+ def __pos__(self) -> int:
169
+ return self._ref.value.__pos__()
170
+
171
+ def __invert__(self) -> int:
172
+ return self._ref.value.__invert__()
173
+
174
+ def __trunc__(self) -> int:
175
+ return self._ref.value.__trunc__()
176
+
177
+ def __ceil__(self) -> int:
178
+ return self._ref.value.__ceil__()
179
+
180
+ def __floor__(self) -> int:
181
+ return self._ref.value.__floor__()
182
+
183
+ def __round__(self, ndigits: SupportsIndex = 0) -> int:
184
+ return self._ref.value.__round__(ndigits)
185
+
186
+ def __getnewargs__(self) -> Tuple[int]:
187
+ return self._ref.value.__getnewargs__()
188
+
189
+ def __eq__(self, value: object) -> bool:
190
+ return self._ref.value.__eq__(int(utils.to_value(value)))
191
+
192
+ def __ne__(self, value: object) -> bool:
193
+ return self._ref.value.__ne__(int(utils.to_value(value)))
194
+
195
+ def __lt__(self, value) -> bool:
196
+ return self._ref.value.__lt__(int(utils.to_value(value)))
197
+
198
+ def __le__(self, value) -> bool:
199
+ return self._ref.value.__le__(int(utils.to_value(value)))
200
+
201
+ def __gt__(self, value) -> bool:
202
+ return self._ref.value.__gt__(int(utils.to_value(value)))
203
+
204
+ def __ge__(self, value) -> bool:
205
+ return self._ref.value.__ge__(int(utils.to_value(value)))
206
+
207
+ def __float__(self) -> float:
208
+ return self._ref.value.__float__()
209
+
210
+ def __int__(self) -> int:
211
+ return self._ref.value.__int__()
212
+
213
+ def __abs__(self) -> int:
214
+ return self._ref.value.__abs__()
215
+
216
+ def __hash__(self) -> int:
217
+ return self._ref.value.__hash__()
218
+
219
+ def __bool__(self) -> bool:
220
+ return self._ref.value.__bool__()
221
+
222
+ def __index__(self) -> int:
223
+ return self._ref.value.__index__()
@@ -0,0 +1,147 @@
1
+ import sys
2
+ from typing import (
3
+ Any,
4
+ Callable,
5
+ Iterable,
6
+ Iterator,
7
+ List,
8
+ SupportsIndex,
9
+ TypeVar,
10
+ Generic,
11
+ Union,
12
+ overload,
13
+ )
14
+ from typing_extensions import Self
15
+ from . import utils
16
+ from .base import Proxy
17
+
18
+
19
+ _T = TypeVar("_T")
20
+ _S = TypeVar("_S")
21
+
22
+
23
+ class ListProxy(Proxy, list, Generic[_T]):
24
+ def __init__(self, value: List[_T]):
25
+ from ex4nicegui.utils.signals import deep_ref
26
+
27
+ super().__init__(value)
28
+ self._ref = deep_ref(value)
29
+
30
+ def copy(self) -> List:
31
+ return self._ref.value.copy()
32
+
33
+ def append(self, object: _T, /) -> None:
34
+ self._ref.value.append(object)
35
+
36
+ def extend(self, iterable: Iterable[_T], /) -> None:
37
+ self._ref.value.extend(iterable)
38
+
39
+ def pop(self, index: SupportsIndex = -1, /) -> _T:
40
+ return self._ref.value.pop(index)
41
+
42
+ # Signature of `list.index` should be kept in line with `collections.UserList.index()`
43
+ # and multiprocessing.managers.ListProxy.index()
44
+ def index(
45
+ self, value: _T, start: SupportsIndex = 0, stop: SupportsIndex = sys.maxsize, /
46
+ ) -> int:
47
+ return self._ref.value.index(value, start, stop)
48
+
49
+ def count(self, value: _T, /) -> int:
50
+ return self._ref.value.count(value)
51
+
52
+ def insert(self, index: SupportsIndex, object: _T, /) -> None:
53
+ self._ref.value.insert(index, object)
54
+
55
+ def remove(self, value: _T, /) -> None:
56
+ self._ref.value.remove(value)
57
+
58
+ def reverse(self) -> None:
59
+ return self._ref.value.reverse()
60
+
61
+ # Signature of `list.sort` should be kept inline with `collections.UserList.sort()`
62
+ # and multiprocessing.managers.ListProxy.sort()
63
+ #
64
+ # Use List[SupportsRichComparisonT] for the first overload rather than [SupportsRichComparison]
65
+ # to work around invariance
66
+ @overload
67
+ def sort(self: list, *, key: None = None, reverse: bool = False) -> None: ...
68
+ @overload
69
+ def sort(self, *, key: Callable[[_T], Any], reverse: bool = False) -> None: ...
70
+
71
+ def sort(
72
+ self, *, key: Union[Callable[[_T], Any], None] = None, reverse: bool = False
73
+ ) -> None:
74
+ self._ref.value.sort(key=key, reverse=reverse) # type: ignore
75
+
76
+ def __len__(self) -> int:
77
+ return len(self._ref.value)
78
+
79
+ def __iter__(self) -> Iterator[_T]:
80
+ return iter(self._ref.value)
81
+
82
+ @overload
83
+ def __getitem__(self, i: SupportsIndex, /) -> _T: ...
84
+ @overload
85
+ def __getitem__(self, s: slice, /) -> List[_T]: ...
86
+
87
+ def __getitem__(self, i: Union[SupportsIndex, slice], /) -> Union[_T, List[_T]]:
88
+ return self._ref.value.__getitem__(i)
89
+
90
+ @overload
91
+ def __setitem__(self, key: SupportsIndex, value: _T, /) -> None: ...
92
+ @overload
93
+ def __setitem__(self, key: slice, value: Iterable[_T], /) -> None: ...
94
+
95
+ def __setitem__(
96
+ self, key: Union[SupportsIndex, slice], value: Union[_T, Iterable[_T]], /
97
+ ) -> None:
98
+ self._ref.value.__setitem__(key, value)
99
+
100
+ def __delitem__(self, key: Union[SupportsIndex, slice], /) -> None:
101
+ self._ref.value.__delitem__(key)
102
+
103
+ # Overloading looks unnecessary, but is needed to work around complex mypy problems
104
+ @overload
105
+ def __add__(self, value: List[_T], /) -> List[_T]: ...
106
+ @overload
107
+ def __add__(self, value: List[_S], /) -> List[Union[_S, _T]]: ...
108
+
109
+ def __add__(
110
+ self, value: Union[List[_T], List[_S]], /
111
+ ) -> Union[List[_T], List[Union[_S, _T]]]:
112
+ return self._ref.value.__add__(utils.to_value(value))
113
+
114
+ def __iadd__(self, value: Iterable[_T], /) -> Self: # type: ignore[misc]
115
+ self._ref.value.__iadd__(utils.to_value(value))
116
+ return self
117
+
118
+ def __mul__(self, value: SupportsIndex, /) -> List[_T]:
119
+ return self._ref.value.__mul__(utils.to_value(value))
120
+
121
+ def __rmul__(self, value: SupportsIndex, /) -> List[_T]:
122
+ return self._ref.value.__rmul__(utils.to_value(value))
123
+
124
+ def __imul__(self, value: SupportsIndex, /) -> Self:
125
+ self._ref.value.__imul__(utils.to_value(value))
126
+ return self
127
+
128
+ def __contains__(self, key: object, /) -> bool:
129
+ return self._ref.value.__contains__(key)
130
+
131
+ def __reversed__(self) -> Iterator[_T]:
132
+ return self._ref.value.__reversed__()
133
+
134
+ def __gt__(self, value: List[_T], /) -> bool:
135
+ return self._ref.value.__gt__(utils.to_value(value))
136
+
137
+ def __ge__(self, value: List[_T], /) -> bool:
138
+ return self._ref.value.__ge__(utils.to_value(value))
139
+
140
+ def __lt__(self, value: List[_T], /) -> bool:
141
+ return self._ref.value.__lt__(utils.to_value(value))
142
+
143
+ def __le__(self, value: List[_T], /) -> bool:
144
+ return self._ref.value.__le__(utils.to_value(value))
145
+
146
+ def __eq__(self, value: object, /) -> bool:
147
+ return self._ref.value.__eq__(utils.to_value(value))