unisi 0.2.4__py3-none-any.whl → 0.2.6__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 CHANGED
@@ -17,7 +17,7 @@ class Node:
17
17
  if color:
18
18
  self.color = color
19
19
  if size:
20
- self.size = size
20
+ self.size = size
21
21
 
22
22
  class Edge:
23
23
  def __init__(self, source, target, name = '', color = '', size = 0, property = None):
@@ -30,7 +30,11 @@ class Edge:
30
30
  if size:
31
31
  self.size = size
32
32
  if property is not None:
33
- self.property = property
33
+ self.property = property
34
+ def __str__(self):
35
+ return f"Edge({self.source}->{self.target})"
36
+ def __repr__(self):
37
+ return f"Edge({self.source}->{self.target})"
34
38
 
35
39
  graph_default_value = {'nodes' : [], 'edges' : []}
36
40
 
@@ -43,33 +47,33 @@ class Graph(Unit):
43
47
  Topology = lambda: defaultdict(lambda: defaultdict(lambda: {}))
44
48
 
45
49
  def unit2image(unit):
46
- match unit:
47
- case Block():
48
- return 'https://img.icons8.com/fluency/48/object.png'
49
- case Button():
50
- return 'https://img.icons8.com/ios-filled/50/doorbell.png'
51
- case Edit() | Text():
52
- return 'https://img.icons8.com/fluency-systems-filled/50/123.png' if unit.type == 'number'\
53
- else 'https://img.icons8.com/sf-regular/48/abc.png'
54
- case Switch():
55
- return 'https://img.icons8.com/ios/50/toggle-on--v1.png'
56
- case TextArea():
57
- return 'https://img.icons8.com/color/48/align-cell-content-left.png'
58
- case Table():
59
- return 'https://img.icons8.com/color/48/day-view.png' if unit.type == 'table'\
60
- else 'https://img.icons8.com/ultraviolet/40/combo-chart.png'
61
- case Tree():
62
- return 'https://img.icons8.com/external-flatart-icons-outline-flatarticons/64/external-tree-nature-flatart-icons-outline-flatarticons-3.png'
63
- case Select():
64
- return 'https://img.icons8.com/cotton/64/list--v2.png'
65
- case Graph():
66
- return 'https://img.icons8.com/external-vitaliy-gorbachev-blue-vitaly-gorbachev/50/external-nodes-cryptocurrency-vitaliy-gorbachev-blue-vitaly-gorbachev.png'
67
- case Range():
68
- return 'https://img.icons8.com/ios/50/slider-control.png'
69
- case Unit():
70
- return 'https://img.icons8.com/ios-filled/50/link--v1.png'
71
- case _:
72
- return ''
50
+ match unit:
51
+ case Block():
52
+ return 'https://img.icons8.com/fluency/48/object.png'
53
+ case Button():
54
+ return 'https://img.icons8.com/ios-filled/50/doorbell.png'
55
+ case Edit() | Text():
56
+ return 'https://img.icons8.com/fluency-systems-filled/50/123.png' if unit.type == 'number'\
57
+ else 'https://img.icons8.com/sf-regular/48/abc.png'
58
+ case Switch():
59
+ return 'https://img.icons8.com/ios/50/toggle-on--v1.png'
60
+ case TextArea():
61
+ return 'https://img.icons8.com/color/48/align-cell-content-left.png'
62
+ case Table():
63
+ return 'https://img.icons8.com/color/48/day-view.png' if unit.type == 'table'\
64
+ else 'https://img.icons8.com/ultraviolet/40/combo-chart.png'
65
+ case Tree():
66
+ return 'https://img.icons8.com/external-flatart-icons-outline-flatarticons/64/external-tree-nature-flatart-icons-outline-flatarticons-3.png'
67
+ case Select():
68
+ return 'https://img.icons8.com/cotton/64/list--v2.png'
69
+ case Graph():
70
+ return 'https://img.icons8.com/external-vitaliy-gorbachev-blue-vitaly-gorbachev/50/external-nodes-cryptocurrency-vitaliy-gorbachev-blue-vitaly-gorbachev.png'
71
+ case Range():
72
+ return 'https://img.icons8.com/ios/50/slider-control.png'
73
+ case Unit():
74
+ return 'https://img.icons8.com/ios-filled/50/link--v1.png'
75
+ case _:
76
+ return ''
73
77
 
74
78
  class Net(Graph):
75
79
  """Graph of Units"""
@@ -83,8 +87,9 @@ class Net(Graph):
83
87
  mark_changed = self._mark_changed
84
88
  self._mark_changed = None #turn off for 'value' diff reaction
85
89
  self._value = value
86
- value = dict(nodes = [self._narray[i] for i in value['nodes']],
87
- edges = [self._edges[i] for i in value['edges']])
90
+ narray = self._narray
91
+ value = dict(nodes = [self._narray[i] for i in value['nodes']], edges =
92
+ [Edge(narray[self._edges[i].source], narray[self._edges[i].target]) for i in value['edges']])
88
93
  if changed_handler:
89
94
  result = changed_handler(_, value)
90
95
  else:
unisi/units.py CHANGED
@@ -126,6 +126,12 @@ class Unit:
126
126
  obj.value = value
127
127
  self.changed = compose_handlers(changed_handler, handler)
128
128
 
129
+ def __str__(self):
130
+ return f'{type(self).__name__}({self.name})'
131
+
132
+ def __repr__(self):
133
+ return f'{type(self).__name__}({self.name})'
134
+
129
135
  Line = Unit("__Line__", type = 'line')
130
136
 
131
137
  def smart_complete(lst, min_input_length = 0, max_output_length = 20):
unisi/users.py CHANGED
@@ -201,7 +201,7 @@ class User:
201
201
  if c.name == elname:
202
202
  return c
203
203
 
204
- def find_path(self, elem):
204
+ def find_path(self, elem) -> list:
205
205
  for bl in flatten(self.blocks):
206
206
  if bl == elem:
207
207
  return [bl.name]
@@ -1 +1 @@
1
- thead tr:first-child th{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:1000}:root{--scrollbar-width-height:10px;--scrollbar-thumb-hover:#2176d2;--scrollbar-thumb-dark:#2176d2;--scrollbar-thumb-hover-dark:#2176d2}::-webkit-scrollbar{height:var(--scrollbar-width-height);width:var(--scrollbar-width-height)}::-webkit-scrollbar-track{box-shadow:inset 0 0 4px var(--scrollbar-track-dark)}::-webkit-scrollbar-corner{background:var(--scrollbar-track-dark)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-dark);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-dark)}body[data-v-62845b3d]{display:flex;justify-content:center}.custom-caption[data-v-62845b3d]{padding:5px!important}.web-camera-container[data-v-62845b3d]{align-items:center;border:1px solid #ccc;border-radius:4px;display:flex;flex-direction:column;justify-content:center;margin-bottom:2rem;margin-top:2rem;padding:2rem;width:500px}.web-camera-container .camera-button[data-v-62845b3d]{margin-bottom:2rem}.web-camera-container .camera-box .camera-shutter[data-v-62845b3d]{background-color:#fff;height:337.5px;opacity:0;position:absolute;width:450px}.web-camera-container .camera-box .camera-shutter.flash[data-v-62845b3d]{opacity:1}.web-camera-container .camera-shoot[data-v-62845b3d]{margin:1rem 0}.web-camera-container .camera-shoot button[data-v-62845b3d]{align-items:center;border-radius:100%;display:flex;height:60px;justify-content:center;width:60px}.web-camera-container .camera-shoot button img[data-v-62845b3d]{height:35px;object-fit:cover}.web-camera-container .camera-loading[data-v-62845b3d]{height:100%;margin:3rem 0 0 -1.2rem;min-height:150px;overflow:hidden;position:absolute;width:100%}.web-camera-container .camera-loading ul[data-v-62845b3d]{height:100%;margin:0;position:absolute;width:100%;z-index:999999}.web-camera-container .camera-loading .loader-circle[data-v-62845b3d]{display:block;height:14px;left:100%;margin:0 auto;padding:0;position:absolute;top:50%;transform:translateY(-50%);transform:translateX(-50%);width:100%}.web-camera-container .camera-loading .loader-circle li[data-v-62845b3d]{animation:preload-62845b3d 1s infinite;background:#999;border-radius:100%;display:block;float:left;height:10px;line-height:10px;margin:0 0 0 4px;padding:0;position:relative;top:-50%;width:10px}.web-camera-container .camera-loading .loader-circle li[data-v-62845b3d]:nth-child(2){animation-delay:.2s}.web-camera-container .camera-loading .loader-circle li[data-v-62845b3d]:nth-child(3){animation-delay:.4s}@keyframes preload-62845b3d{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.q-tab__label{font-size:16px;font-weight:700}
1
+ thead tr:first-child th{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:1000}:root{--scrollbar-width-height:10px;--scrollbar-thumb-hover:#2176d2;--scrollbar-thumb-dark:#2176d2;--scrollbar-thumb-hover-dark:#2176d2}::-webkit-scrollbar{height:var(--scrollbar-width-height);width:var(--scrollbar-width-height)}::-webkit-scrollbar-track{box-shadow:inset 0 0 4px var(--scrollbar-track-dark)}::-webkit-scrollbar-corner{background:var(--scrollbar-track-dark)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-dark);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-dark)}body[data-v-d1f858b4]{display:flex;justify-content:center}.custom-caption[data-v-d1f858b4]{padding:5px!important}.web-camera-container[data-v-d1f858b4]{align-items:center;border:1px solid #ccc;border-radius:4px;display:flex;flex-direction:column;justify-content:center;margin-bottom:2rem;margin-top:2rem;padding:2rem;width:500px}.web-camera-container .camera-button[data-v-d1f858b4]{margin-bottom:2rem}.web-camera-container .camera-box .camera-shutter[data-v-d1f858b4]{background-color:#fff;height:337.5px;opacity:0;position:absolute;width:450px}.web-camera-container .camera-box .camera-shutter.flash[data-v-d1f858b4]{opacity:1}.web-camera-container .camera-shoot[data-v-d1f858b4]{margin:1rem 0}.web-camera-container .camera-shoot button[data-v-d1f858b4]{align-items:center;border-radius:100%;display:flex;height:60px;justify-content:center;width:60px}.web-camera-container .camera-shoot button img[data-v-d1f858b4]{height:35px;object-fit:cover}.web-camera-container .camera-loading[data-v-d1f858b4]{height:100%;margin:3rem 0 0 -1.2rem;min-height:150px;overflow:hidden;position:absolute;width:100%}.web-camera-container .camera-loading ul[data-v-d1f858b4]{height:100%;margin:0;position:absolute;width:100%;z-index:999999}.web-camera-container .camera-loading .loader-circle[data-v-d1f858b4]{display:block;height:14px;left:100%;margin:0 auto;padding:0;position:absolute;top:50%;transform:translateY(-50%);transform:translateX(-50%);width:100%}.web-camera-container .camera-loading .loader-circle li[data-v-d1f858b4]{animation:preload-d1f858b4 1s infinite;background:#999;border-radius:100%;display:block;float:left;height:10px;line-height:10px;margin:0 0 0 4px;padding:0;position:relative;top:-50%;width:10px}.web-camera-container .camera-loading .loader-circle li[data-v-d1f858b4]:nth-child(2){animation-delay:.2s}.web-camera-container .camera-loading .loader-circle li[data-v-d1f858b4]:nth-child(3){animation-delay:.4s}@keyframes preload-d1f858b4{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.q-tab__label{font-size:16px;font-weight:700}