unisi 0.3.6__py3-none-any.whl → 0.3.8__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.
- unisi/containers.py +15 -11
- unisi/tables.py +1 -2
- unisi/units.py +9 -9
- unisi/users.py +12 -10
- unisi/voicecom.py +12 -9
- {unisi-0.3.6.dist-info → unisi-0.3.8.dist-info}/METADATA +1 -1
- {unisi-0.3.6.dist-info → unisi-0.3.8.dist-info}/RECORD +10 -10
- {unisi-0.3.6.dist-info → unisi-0.3.8.dist-info}/WHEEL +1 -1
- {unisi-0.3.6.dist-info → unisi-0.3.8.dist-info}/entry_points.txt +0 -0
- {unisi-0.3.6.dist-info → unisi-0.3.8.dist-info}/licenses/LICENSE +0 -0
unisi/containers.py
CHANGED
@@ -8,7 +8,8 @@ class Block(Unit):
|
|
8
8
|
self._mark_changed = None
|
9
9
|
self.name = name
|
10
10
|
self.type = 'block'
|
11
|
-
self.value = list(elems)
|
11
|
+
self.value = list(elems)
|
12
|
+
self._user = None
|
12
13
|
self.add(options)
|
13
14
|
if getattr(self,'scaler', False):
|
14
15
|
scaler = ContentScaler(elements = lambda: self.scroll_list)
|
@@ -47,16 +48,15 @@ class Block(Unit):
|
|
47
48
|
else:
|
48
49
|
elem.llm = None
|
49
50
|
print(f'Empty dependency list for llm calculation for {elem.name} {elem.type}!')
|
50
|
-
|
51
|
-
user = Unishare.context_user()
|
51
|
+
|
52
52
|
if hasattr(self,'closable'):
|
53
53
|
def close(*_):
|
54
|
+
user = self._user if self._user else Unishare.context_user()
|
54
55
|
delete_unit(user.screen.blocks, self.name)
|
55
|
-
self.close = close
|
56
|
-
|
57
|
-
self.set_reactivity(user)
|
56
|
+
self.close = close
|
58
57
|
|
59
58
|
def set_reactivity(self, user, override = False):
|
59
|
+
self._user = user
|
60
60
|
if user:
|
61
61
|
super().set_reactivity(user, override)
|
62
62
|
for elem in flatten(self.value):
|
@@ -72,13 +72,14 @@ class Block(Unit):
|
|
72
72
|
|
73
73
|
@scroll_list.setter
|
74
74
|
def scroll_list(self, lst):
|
75
|
-
self.value = [self.value[0] if self.value else [], lst]
|
75
|
+
self.value = ChangedProxy([self.value[0] if self.value else [], lst], self)
|
76
76
|
if hasattr(self,'scaler'):
|
77
77
|
sval = self.scaler.value
|
78
78
|
if sval != 1:
|
79
79
|
self.scaler.value = 1
|
80
|
-
self.scaler.changed(self.scaler, sval)
|
81
|
-
|
80
|
+
self.scaler.changed(self.scaler, sval)
|
81
|
+
for image in lst:
|
82
|
+
image.set_reactivity(self._user)
|
82
83
|
|
83
84
|
def find(self, elem: Unit | str):
|
84
85
|
for e in flatten(self.value):
|
@@ -123,8 +124,6 @@ class ParamBlock(Block):
|
|
123
124
|
self.value.append(block)
|
124
125
|
cnt += 1
|
125
126
|
block.append(el)
|
126
|
-
|
127
|
-
self.set_reactivity(Unishare.context_user())
|
128
127
|
|
129
128
|
@property
|
130
129
|
def params(self):
|
@@ -160,3 +159,8 @@ class Screen(Unit):
|
|
160
159
|
self.name = name
|
161
160
|
self.type = 'screen'
|
162
161
|
|
162
|
+
def set_reactivity(self, user, override = False):
|
163
|
+
super().set_reactivity(user, override)
|
164
|
+
for block in flatten(self.blocks):
|
165
|
+
block.set_reactivity(user, override)
|
166
|
+
|
unisi/tables.py
CHANGED
@@ -271,8 +271,7 @@ def append_panda_row(table, row_index):
|
|
271
271
|
class PandaTable(Table):
|
272
272
|
""" panda = opened panda table"""
|
273
273
|
def __init__(self, name, *args, panda = None, fix_headers = True, **kwargs):
|
274
|
-
Unit.__init__(self, name, *args, **kwargs)
|
275
|
-
self.set_reactivity(None)
|
274
|
+
Unit.__init__(self, name, *args, **kwargs)
|
276
275
|
set_defaults(self, dict(type = 'table', value = None, editing = False, dense = True))
|
277
276
|
if panda is None:
|
278
277
|
raise Exception('PandaTable has to get panda = pandaTable as an argument.')
|
unisi/units.py
CHANGED
@@ -25,7 +25,7 @@ class ChangedProxy:
|
|
25
25
|
return value
|
26
26
|
|
27
27
|
def __setattr__(self, name, value):
|
28
|
-
if name
|
28
|
+
if name.startswith('_'):
|
29
29
|
super().__setattr__(name, value)
|
30
30
|
else:
|
31
31
|
self._obj.__setattr__(name, value)
|
@@ -90,14 +90,14 @@ class Unit:
|
|
90
90
|
|
91
91
|
def set_reactivity(self, user, override = False):
|
92
92
|
changed_call = None
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
93
|
+
|
94
|
+
if not hasattr(self, 'id') and (override or not self._mark_changed):
|
95
|
+
self.__dict__.update({property : ChangedProxy(value, self) for property, value in self.__dict__.items()
|
96
|
+
if property[0] != '_' and not isinstance(value, atomics) and not callable(value)})
|
97
|
+
|
98
|
+
def changed_call(property = None, value = None):
|
99
|
+
if self.specific_changed_register(property, value):
|
100
|
+
user.register_changed_unit(self, property, value)
|
101
101
|
super().__setattr__('_mark_changed', changed_call)
|
102
102
|
|
103
103
|
def add(self, kwargs):
|
unisi/users.py
CHANGED
@@ -217,7 +217,7 @@ class User:
|
|
217
217
|
return ['toolbar', e.name]
|
218
218
|
|
219
219
|
def prepare_result(self, raw):
|
220
|
-
reload_screen =
|
220
|
+
reload_screen = any(u.type == 'screen' for u in self.changed_units)
|
221
221
|
if reload_screen or raw is True or raw == Redesign:
|
222
222
|
self.screen.reload = reload_screen or raw == Redesign
|
223
223
|
raw = self.screen
|
@@ -248,15 +248,17 @@ class User:
|
|
248
248
|
if screen_change_message or message.screen_type:
|
249
249
|
for s in self.screens:
|
250
250
|
if s.name == message.value:
|
251
|
-
self.screen_module
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
self.voice
|
257
|
-
|
258
|
-
|
259
|
-
|
251
|
+
if self.screen_module != s:
|
252
|
+
self.changed_units.add(s.screen)
|
253
|
+
self.screen_module = s
|
254
|
+
if screen_change_message:
|
255
|
+
break
|
256
|
+
if self.voice:
|
257
|
+
self.voice.set_screen(s.screen)
|
258
|
+
self.voice.start()
|
259
|
+
if getattr(s.screen,'prepare', None):
|
260
|
+
s.screen.prepare()
|
261
|
+
return True
|
260
262
|
else:
|
261
263
|
error = f'Unknown screen name: {message.value}'
|
262
264
|
self.log(error)
|
unisi/voicecom.py
CHANGED
@@ -28,7 +28,7 @@ def word_to_number(word: str):
|
|
28
28
|
|
29
29
|
command_synonyms = dict( #-> words
|
30
30
|
value = ['is', 'equals'],
|
31
|
-
|
31
|
+
root = ['select', 'choose','set'],
|
32
32
|
backspace = ['back'],
|
33
33
|
enter = ['push', 'execute','run'],
|
34
34
|
clean = ['empty','erase'],
|
@@ -38,7 +38,7 @@ command_synonyms = dict( #-> words
|
|
38
38
|
ok = ['okay']
|
39
39
|
)
|
40
40
|
|
41
|
-
root_commands = ['
|
41
|
+
root_commands = ['root', 'screen', 'stop', 'reset', 'ok']
|
42
42
|
ext_root_commands = root_commands[:]
|
43
43
|
|
44
44
|
modes = dict( #-> actions
|
@@ -62,7 +62,7 @@ for mode, commands in modes.items():
|
|
62
62
|
|
63
63
|
class VoiceCom:
|
64
64
|
def __init__(self, user):
|
65
|
-
self.block = self.assist_block()
|
65
|
+
self.block = self.assist_block(user)
|
66
66
|
self.user = user
|
67
67
|
self.previous_unit_value_x = None
|
68
68
|
self.unit = None
|
@@ -72,19 +72,22 @@ class VoiceCom:
|
|
72
72
|
async def keyboard_input(self, _, value):
|
73
73
|
return await self.process_string(value)
|
74
74
|
|
75
|
-
def assist_block(self) -> Block:
|
75
|
+
def assist_block(self, user) -> Block:
|
76
76
|
self.input = Edit('Recognized words', '', update = self.keyboard_input)
|
77
77
|
self.message = Edit('System message', '', edit = False)
|
78
78
|
self.context_list = Select('Elements', None, self.select_elem, type = 'list', width = 250)
|
79
79
|
self.command_list = Select('Commands', None, self.select_command, type = 'list', width = 250)
|
80
80
|
|
81
|
-
|
81
|
+
block = Block("Mate:",
|
82
82
|
self.message,
|
83
83
|
self.input,
|
84
84
|
self.context_list,
|
85
85
|
self.command_list,
|
86
86
|
closable = True, icon = 'mic'
|
87
|
-
)
|
87
|
+
)
|
88
|
+
block.set_reactivity(user)
|
89
|
+
return block
|
90
|
+
|
88
91
|
def set_screen(self, screen):
|
89
92
|
self.calc_interactive_units()
|
90
93
|
self.screen = screen
|
@@ -94,7 +97,7 @@ class VoiceCom:
|
|
94
97
|
elem.value = value
|
95
98
|
if value:
|
96
99
|
if self.mode == 'screen':
|
97
|
-
|
100
|
+
self.user.set_screen(value)
|
98
101
|
self.activate_unit(self.name2unit.get(value, None))
|
99
102
|
|
100
103
|
async def select_command(self, _, value):
|
@@ -285,11 +288,11 @@ class VoiceCom:
|
|
285
288
|
self.input.value = ' '.join(self.buffer)
|
286
289
|
case 'screen':
|
287
290
|
if command == 'ok' and self.context:
|
288
|
-
|
291
|
+
self.user.set_screen(self.context)
|
289
292
|
else:
|
290
293
|
screen_name, similarity = self.buffer_suits_name(word)
|
291
294
|
if similarity > 0.9:
|
292
|
-
|
295
|
+
self.user.set_screen(screen_name)
|
293
296
|
else:
|
294
297
|
self.context = screen_name
|
295
298
|
self.message.value = '"Ok" to confirm'
|
@@ -1,11 +1,11 @@
|
|
1
|
-
unisi-0.3.
|
2
|
-
unisi-0.3.
|
3
|
-
unisi-0.3.
|
4
|
-
unisi-0.3.
|
1
|
+
unisi-0.3.8.dist-info/METADATA,sha256=rF-B-AngWhmxcD2mAWNDepQ6WM7R8jMy9Mdi65HRJwU,27449
|
2
|
+
unisi-0.3.8.dist-info/WHEEL,sha256=thaaA2w1JzcGC48WYufAs8nrYZjJm8LqNfnXFOFyCC4,90
|
3
|
+
unisi-0.3.8.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
|
4
|
+
unisi-0.3.8.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
5
5
|
unisi/__init__.py,sha256=JVioDSebhtmoYTldT6ChEayuRTHOgYsAflcxcBYWBTY,279
|
6
6
|
unisi/autotest.py,sha256=qYKwSPEPUEio6koUSu1tc71pDkX-doCQJlyRppaXCtY,8709
|
7
7
|
unisi/common.py,sha256=f8UEj1R4V5KxpKnetcuxsBbeONNaRrL0LpL07HsFPuM,5511
|
8
|
-
unisi/containers.py,sha256=
|
8
|
+
unisi/containers.py,sha256=va4kyqYJ8g7un1hiKx21xXixMXOomXupFPxvS9vga9A,7280
|
9
9
|
unisi/dbunits.py,sha256=G__LLHS-WqdYB4KOOfIYGfcK_SgRWD6LbMj6wqVCyxw,7423
|
10
10
|
unisi/graphs.py,sha256=DTyLUPzi9ErKY6ADXVMXf9-uJskNISZY_xDvsnhMs1Q,6959
|
11
11
|
unisi/jsoncomparison/__init__.py,sha256=lsWkYEuL6v3Qol-lwSUvB6y63tm6AKcCMUd4DZDx3Cg,350
|
@@ -19,11 +19,11 @@ unisi/multimon.py,sha256=YKwCuvMsMfdgOGkJoqiqh_9wywXMeo9bUhHmbAIUeSE,4060
|
|
19
19
|
unisi/proxy.py,sha256=QMHSSFJtmVZIexIMAsuFNlF5JpnYNG90rkTM3PYJhY4,7750
|
20
20
|
unisi/reloader.py,sha256=WKY2TrmxLbQTknvZuY1IHInnwSgWXFbUoOtrdbh6yNo,6869
|
21
21
|
unisi/server.py,sha256=URTreRlTlqpa6XnzcXk4L1LGDE9rWTca-C-85JcEtLg,6078
|
22
|
-
unisi/tables.py,sha256=
|
23
|
-
unisi/units.py,sha256=
|
24
|
-
unisi/users.py,sha256=
|
22
|
+
unisi/tables.py,sha256=tszF62VToSchILzPhJgA4U02MFjv44LopXgD5mYg7fg,13822
|
23
|
+
unisi/units.py,sha256=dz32RPejz0SlCpysgwaEuxYS0crqsyzhGITe8Tu8wzg,10962
|
24
|
+
unisi/users.py,sha256=W9QO1773xdSdk3w7bfctJSsPakAMD1_HY7sKVdHRUgY,16109
|
25
25
|
unisi/utils.py,sha256=NHoRMItaMleHg2UEp96_zzvrtGaZHcLNUZqmKkEwiHQ,2474
|
26
|
-
unisi/voicecom.py,sha256=
|
26
|
+
unisi/voicecom.py,sha256=QzS1gIrBeGLO5dEwiu7KIEdJIIVbPBZFGb5nY632Ws8,16707
|
27
27
|
unisi/web/css/715.b9adf6e0.css,sha256=qCrEgBq7Nh72Eud21l81kYXEmdx0n75yU41ksuiBosQ,3264
|
28
28
|
unisi/web/css/app.31d6cfe0.css,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
29
|
unisi/web/css/vendor.f7e3cefe.css,sha256=0cbvPPBV-_jv7jBIC9glq8c1QgCowWt_TxoBalHGdAs,220668
|
@@ -46,4 +46,4 @@ unisi/web/js/715.85ab2263.js,sha256=bFrNpz9nqi4gTv983uwGl-UReWI6r4I_IF9P1-iyQlc,
|
|
46
46
|
unisi/web/js/935.cc0c012c.js,sha256=FzVIRBr4vyQgW38ROCoh929gtzuXqM73Cf77vejfDWk,6561
|
47
47
|
unisi/web/js/app.5ba3308e.js,sha256=ddyKZ0-oImCxOSfWqS5WTXsToI9rq8FBhab-DDQA8Dw,6150
|
48
48
|
unisi/web/js/vendor.1bb14e9d.js,sha256=7q80jaZcms7UhWSqHAk2pXSx67cYQJGlsp-6DBXBZuU,1253597
|
49
|
-
unisi-0.3.
|
49
|
+
unisi-0.3.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|