supervisely 6.73.375__py3-none-any.whl → 6.73.376__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.
- supervisely/api/nn/neural_network_api.py +1 -1
- supervisely/app/widgets/agent_selector/agent_selector.py +6 -0
- supervisely/app/widgets/agent_selector/template.html +2 -0
- supervisely/app/widgets/button/button.py +28 -1
- supervisely/app/widgets/button/template.html +1 -1
- supervisely/app/widgets/card/card.py +4 -0
- supervisely/app/widgets/card/template.html +1 -1
- supervisely/app/widgets/classes_table/classes_table.py +3 -1
- supervisely/app/widgets/fast_table/fast_table.py +16 -0
- supervisely/app/widgets/fast_table/script.js +6 -2
- supervisely/app/widgets/fast_table/template.html +1 -0
- supervisely/app/widgets/random_splits_table/random_splits_table.py +2 -0
- supervisely/nn/training/train_app.py +10 -14
- {supervisely-6.73.375.dist-info → supervisely-6.73.376.dist-info}/METADATA +1 -1
- {supervisely-6.73.375.dist-info → supervisely-6.73.376.dist-info}/RECORD +19 -19
- {supervisely-6.73.375.dist-info → supervisely-6.73.376.dist-info}/LICENSE +0 -0
- {supervisely-6.73.375.dist-info → supervisely-6.73.376.dist-info}/WHEEL +0 -0
- {supervisely-6.73.375.dist-info → supervisely-6.73.376.dist-info}/entry_points.txt +0 -0
- {supervisely-6.73.375.dist-info → supervisely-6.73.376.dist-info}/top_level.txt +0 -0
|
@@ -49,6 +49,12 @@ class AgentSelector(Widget):
|
|
|
49
49
|
|
|
50
50
|
def get_value(self) -> int:
|
|
51
51
|
return StateJson()[self.widget_id]["agentId"]
|
|
52
|
+
|
|
53
|
+
def set_value(self, agent_id: int) -> None:
|
|
54
|
+
if not isinstance(agent_id, int):
|
|
55
|
+
raise TypeError("Agent ID must be an integer.")
|
|
56
|
+
StateJson()[self.widget_id]["agentId"] = agent_id
|
|
57
|
+
StateJson().send_changes()
|
|
52
58
|
|
|
53
59
|
def value_changed(self, func):
|
|
54
60
|
route_path = self.get_route_path(AgentSelector.Routes.VALUE_CHANGED)
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
:is-community="data.{{{ widget.widget_id }}}.isCommunity"
|
|
8
8
|
{% if widget._changes_handled == true %}
|
|
9
9
|
@input="state.{{{ widget.widget_id }}}.agentId = $event; post('/{{{ widget.widget_id }}}/value_changed')"
|
|
10
|
+
{% else %}
|
|
11
|
+
@input="state.{{{ widget.widget_id }}}.agentId = $event"
|
|
10
12
|
{% endif %}
|
|
11
13
|
></sly-select-agent>
|
|
12
14
|
|
|
@@ -40,6 +40,8 @@ class Button(Widget):
|
|
|
40
40
|
:type style: Optional[str]
|
|
41
41
|
:param call_on_click: Function to be called on button click.
|
|
42
42
|
:type call_on_click: Optional[str]
|
|
43
|
+
:param icon_color: Color of the icon.
|
|
44
|
+
:type icon_color: Optional[str]
|
|
43
45
|
|
|
44
46
|
:Usage example:
|
|
45
47
|
.. code-block:: python
|
|
@@ -68,6 +70,7 @@ class Button(Widget):
|
|
|
68
70
|
style: Optional[str] = None,
|
|
69
71
|
call_on_click: Optional[str] = None,
|
|
70
72
|
visible_by_vue_field: Optional[str] = "",
|
|
73
|
+
icon_color: Optional[str] = None,
|
|
71
74
|
):
|
|
72
75
|
self._widget_routes = {}
|
|
73
76
|
|
|
@@ -80,7 +83,10 @@ class Button(Widget):
|
|
|
80
83
|
if icon is None:
|
|
81
84
|
self._icon = ""
|
|
82
85
|
else:
|
|
83
|
-
|
|
86
|
+
icon_style = f"margin-right: {icon_gap}px"
|
|
87
|
+
if icon_color is not None:
|
|
88
|
+
icon_style += f"; color: {icon_color}"
|
|
89
|
+
self._icon = f'<i class="{icon}" style="{icon_style}"></i>'
|
|
84
90
|
|
|
85
91
|
self._loading = False
|
|
86
92
|
self._disabled = False
|
|
@@ -115,6 +121,7 @@ class Button(Widget):
|
|
|
115
121
|
"disabled": self._disabled,
|
|
116
122
|
"icon": self._icon,
|
|
117
123
|
"link": self._link,
|
|
124
|
+
"style": self._style,
|
|
118
125
|
}
|
|
119
126
|
|
|
120
127
|
def get_json_state(self) -> None:
|
|
@@ -263,6 +270,26 @@ class Button(Widget):
|
|
|
263
270
|
:rtype: bool
|
|
264
271
|
"""
|
|
265
272
|
return self._disabled
|
|
273
|
+
|
|
274
|
+
@property
|
|
275
|
+
def style(self) -> Optional[str]:
|
|
276
|
+
"""Returns the CSS style applied to the button.
|
|
277
|
+
|
|
278
|
+
:return: CSS style applied to the button.
|
|
279
|
+
:rtype: Optional[str]
|
|
280
|
+
"""
|
|
281
|
+
return self._style
|
|
282
|
+
|
|
283
|
+
@style.setter
|
|
284
|
+
def style(self, value: Optional[str]) -> None:
|
|
285
|
+
"""Sets the CSS style to be applied to the button.
|
|
286
|
+
|
|
287
|
+
:param value: CSS style to be applied to the button.
|
|
288
|
+
:type value: Optional[str]
|
|
289
|
+
"""
|
|
290
|
+
self._style = value
|
|
291
|
+
DataJson()[self.widget_id]["style"] = self._style
|
|
292
|
+
DataJson().send_changes()
|
|
266
293
|
|
|
267
294
|
@disabled.setter
|
|
268
295
|
def disabled(self, value: bool) -> None:
|
|
@@ -28,6 +28,8 @@ class Card(Widget):
|
|
|
28
28
|
:type remove_padding: Optional[bool]
|
|
29
29
|
:param overflow: Overflow property of the card. Can be "auto", "unset" or "scroll".
|
|
30
30
|
:type overflow: Optional[Literal["auto", "unset", "scroll"]]
|
|
31
|
+
:param style: CSS styles string of the card.
|
|
32
|
+
:type style: Optional[str]
|
|
31
33
|
:param widget_id: Unique widget identifier.
|
|
32
34
|
:type widget_id: str
|
|
33
35
|
|
|
@@ -51,6 +53,7 @@ class Card(Widget):
|
|
|
51
53
|
widget_id: Optional[str] = None,
|
|
52
54
|
remove_padding: Optional[bool] = False,
|
|
53
55
|
overflow: Optional[Literal["auto", "unset", "scroll"]] = "auto",
|
|
56
|
+
style: Optional[str] = "",
|
|
54
57
|
):
|
|
55
58
|
self._title = title
|
|
56
59
|
self._description = description
|
|
@@ -63,6 +66,7 @@ class Card(Widget):
|
|
|
63
66
|
if self._slot_content is not None:
|
|
64
67
|
self._show_slot = True
|
|
65
68
|
self._overflow = overflow
|
|
69
|
+
self._style = style
|
|
66
70
|
self._options = {
|
|
67
71
|
"collapsable": self._collapsable,
|
|
68
72
|
"marginBottom": "0px",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
:options="data.{{{widget.widget_id}}}.options"
|
|
15
15
|
:disabled="state.{{{widget.widget_id}}}.disabled"
|
|
16
16
|
:collapsed="state.{{{widget.widget_id}}}.collapsed"
|
|
17
|
-
style="width: 100
|
|
17
|
+
style="width: 100%; {{{widget._style}}}"
|
|
18
18
|
>
|
|
19
19
|
<div>{{{widget._content}}}</div>
|
|
20
20
|
<div v-if="data.{{{widget.widget_id}}}.show_slot" slot="header">
|
|
@@ -412,10 +412,12 @@ class ClassesTable(Widget):
|
|
|
412
412
|
:rtype: List[str]
|
|
413
413
|
"""
|
|
414
414
|
classes = []
|
|
415
|
+
checkboxes = StateJson()[self.widget_id]["checkboxes"]
|
|
415
416
|
for i, line in enumerate(self._table_data):
|
|
416
|
-
checkboxes = StateJson()[self.widget_id]["checkboxes"]
|
|
417
417
|
if len(checkboxes) == 0:
|
|
418
418
|
checkboxes = [False] * len(self._table_data)
|
|
419
|
+
if i >= len(checkboxes):
|
|
420
|
+
continue
|
|
419
421
|
if checkboxes[i]:
|
|
420
422
|
for col in line:
|
|
421
423
|
if col["name"] == "CLASS":
|
|
@@ -112,6 +112,7 @@ class FastTable(Widget):
|
|
|
112
112
|
sort_order: Optional[Literal["asc", "desc"]] = None,
|
|
113
113
|
width: Optional[str] = "auto",
|
|
114
114
|
widget_id: Optional[str] = None,
|
|
115
|
+
show_header: bool = True,
|
|
115
116
|
):
|
|
116
117
|
self._supported_types = tuple([pd.DataFrame, list, type(None)])
|
|
117
118
|
self._row_click_handled = False
|
|
@@ -127,6 +128,7 @@ class FastTable(Widget):
|
|
|
127
128
|
self._clickable_rows = False
|
|
128
129
|
self._clickable_cells = False
|
|
129
130
|
self._search_str = ""
|
|
131
|
+
self._show_header = show_header
|
|
130
132
|
self._project_meta = self._unpack_project_meta(project_meta)
|
|
131
133
|
|
|
132
134
|
# table_options
|
|
@@ -212,6 +214,7 @@ class FastTable(Widget):
|
|
|
212
214
|
"fixColumns": self._fix_columns,
|
|
213
215
|
},
|
|
214
216
|
"pageSize": self._page_size,
|
|
217
|
+
"showHeader": self._show_header,
|
|
215
218
|
}
|
|
216
219
|
|
|
217
220
|
def get_json_state(self) -> Dict[str, Any]:
|
|
@@ -469,6 +472,17 @@ class FastTable(Widget):
|
|
|
469
472
|
DataJson().send_changes()
|
|
470
473
|
return popped_row
|
|
471
474
|
|
|
475
|
+
def clear(self) -> None:
|
|
476
|
+
"""Clears the table data."""
|
|
477
|
+
self._source_data = pd.DataFrame(columns=self._columns_first_idx)
|
|
478
|
+
self._parsed_source_data = {"data": [], "columns": []}
|
|
479
|
+
self._sliced_data = pd.DataFrame(columns=self._columns_first_idx)
|
|
480
|
+
self._parsed_active_data = {"data": [], "columns": []}
|
|
481
|
+
self._rows_total = 0
|
|
482
|
+
DataJson()[self.widget_id]["data"] = []
|
|
483
|
+
DataJson()[self.widget_id]["total"] = 0
|
|
484
|
+
DataJson().send_changes()
|
|
485
|
+
|
|
472
486
|
def row_click(self, func: Callable[[ClickedRow], Any]) -> Callable[[], None]:
|
|
473
487
|
"""Decorator for function that handles row click event.
|
|
474
488
|
|
|
@@ -802,6 +816,8 @@ class FastTable(Widget):
|
|
|
802
816
|
failed_column_idxs = []
|
|
803
817
|
failed_column_idx = 0
|
|
804
818
|
for column, value in zip(self._source_data.columns, row):
|
|
819
|
+
if len(self._source_data[column].values) == 0:
|
|
820
|
+
continue
|
|
805
821
|
col_type = type(self._source_data[column].values[0])
|
|
806
822
|
if col_type == str and not isinstance(value, str):
|
|
807
823
|
failed_column_idxs.append(
|
|
@@ -40,6 +40,10 @@ Vue.component('fast-table', {
|
|
|
40
40
|
type: String,
|
|
41
41
|
default: '',
|
|
42
42
|
},
|
|
43
|
+
showHeader: {
|
|
44
|
+
type: Boolean,
|
|
45
|
+
default: true,
|
|
46
|
+
},
|
|
43
47
|
},
|
|
44
48
|
data() {
|
|
45
49
|
return {
|
|
@@ -116,7 +120,7 @@ Vue.component('fast-table', {
|
|
|
116
120
|
template: `
|
|
117
121
|
<div class="tailwind fast-table">
|
|
118
122
|
<div class="rounded-lg border border-slate-200 shadow bg-white" ref="wrapper">
|
|
119
|
-
<div class="py-2 px-2 md:px-5 md:py-4 flex flex-col md:flex-row gap-2 justify-between items-center">
|
|
123
|
+
<div v-if ="showHeader === true" class="py-2 px-2 md:px-5 md:py-4 flex flex-col md:flex-row gap-2 justify-between items-center">
|
|
120
124
|
<div class="relative w-full md:max-w-[18rem]">
|
|
121
125
|
<i class="zmdi zmdi-search h-4 absolute top-2 left-2.5 opacity-50"></i>
|
|
122
126
|
<!--<img alt="Search" src="~assets/icons/search.png" class="h-4 absolute top-2 left-2.5 opacity-50" />
|
|
@@ -194,4 +198,4 @@ Vue.component('fast-table', {
|
|
|
194
198
|
</div>
|
|
195
199
|
</div>
|
|
196
200
|
`,
|
|
197
|
-
});
|
|
201
|
+
});
|
|
@@ -22,6 +22,8 @@ class RandomSplitsTable(Widget):
|
|
|
22
22
|
{"name": "val", "type": "primary"},
|
|
23
23
|
{"name": "total", "type": "gray"},
|
|
24
24
|
]
|
|
25
|
+
if items_count is None:
|
|
26
|
+
items_count = 0
|
|
25
27
|
self._items_count = items_count
|
|
26
28
|
train_count = int(items_count / 100 * start_train_percent)
|
|
27
29
|
self._count = {"total": items_count, "train": train_count, "val": items_count - train_count}
|
|
@@ -44,7 +44,7 @@ from supervisely import (
|
|
|
44
44
|
)
|
|
45
45
|
from supervisely._utils import abs_url, get_filename_from_headers
|
|
46
46
|
from supervisely.api.file_api import FileInfo
|
|
47
|
-
from supervisely.app import get_synced_data_dir
|
|
47
|
+
from supervisely.app import get_synced_data_dir, show_dialog
|
|
48
48
|
from supervisely.app.widgets import Progress
|
|
49
49
|
from supervisely.nn.benchmark import (
|
|
50
50
|
InstanceSegmentationBenchmark,
|
|
@@ -2602,9 +2602,8 @@ class TrainApp:
|
|
|
2602
2602
|
except Exception as e:
|
|
2603
2603
|
message = f"Error occurred during training initialization. {check_logs_text}"
|
|
2604
2604
|
self._show_error(message, e)
|
|
2605
|
-
self._restore_train_widgets_state_on_error()
|
|
2606
2605
|
self._set_ws_progress_status("reset")
|
|
2607
|
-
|
|
2606
|
+
raise e
|
|
2608
2607
|
|
|
2609
2608
|
try:
|
|
2610
2609
|
self._set_text_status("preparing")
|
|
@@ -2613,9 +2612,8 @@ class TrainApp:
|
|
|
2613
2612
|
except Exception as e:
|
|
2614
2613
|
message = f"Error occurred during data preparation. {check_logs_text}"
|
|
2615
2614
|
self._show_error(message, e)
|
|
2616
|
-
self._restore_train_widgets_state_on_error()
|
|
2617
2615
|
self._set_ws_progress_status("reset")
|
|
2618
|
-
|
|
2616
|
+
raise e
|
|
2619
2617
|
|
|
2620
2618
|
try:
|
|
2621
2619
|
self._set_text_status("training")
|
|
@@ -2629,15 +2627,13 @@ class TrainApp:
|
|
|
2629
2627
|
"Please check input data and hyperparameters."
|
|
2630
2628
|
)
|
|
2631
2629
|
self._show_error(message, e)
|
|
2632
|
-
self._restore_train_widgets_state_on_error()
|
|
2633
2630
|
self._set_ws_progress_status("reset")
|
|
2634
2631
|
return
|
|
2635
2632
|
except Exception as e:
|
|
2636
2633
|
message = f"Error occurred during training. {check_logs_text}"
|
|
2637
2634
|
self._show_error(message, e)
|
|
2638
|
-
self._restore_train_widgets_state_on_error()
|
|
2639
2635
|
self._set_ws_progress_status("reset")
|
|
2640
|
-
|
|
2636
|
+
raise e
|
|
2641
2637
|
|
|
2642
2638
|
try:
|
|
2643
2639
|
self._set_text_status("finalizing")
|
|
@@ -2645,18 +2641,17 @@ class TrainApp:
|
|
|
2645
2641
|
self._finalize(experiment_info)
|
|
2646
2642
|
self.gui.training_process.start_button.loading = False
|
|
2647
2643
|
|
|
2648
|
-
|
|
2644
|
+
if is_production() and self.gui.training_logs.tensorboard_offline_button is not None:
|
|
2645
|
+
self.gui.training_logs.tensorboard_button.hide()
|
|
2646
|
+
self.gui.training_logs.tensorboard_offline_button.show()
|
|
2649
2647
|
|
|
2650
|
-
|
|
2651
|
-
self.gui.training_logs.tensorboard_offline_button.show()
|
|
2652
|
-
sleep(1) # wait for the button to be shown
|
|
2648
|
+
sleep(1)
|
|
2653
2649
|
self.app.shutdown()
|
|
2654
2650
|
except Exception as e:
|
|
2655
2651
|
message = f"Error occurred during finalizing and uploading training artifacts. {check_logs_text}"
|
|
2656
2652
|
self._show_error(message, e)
|
|
2657
|
-
self._restore_train_widgets_state_on_error()
|
|
2658
2653
|
self._set_ws_progress_status("reset")
|
|
2659
|
-
|
|
2654
|
+
raise e
|
|
2660
2655
|
|
|
2661
2656
|
def _show_error(self, message: str, e=None):
|
|
2662
2657
|
if e is not None:
|
|
@@ -2667,6 +2662,7 @@ class TrainApp:
|
|
|
2667
2662
|
self.gui.training_process.validator_text.show()
|
|
2668
2663
|
self.gui.training_process.start_button.loading = False
|
|
2669
2664
|
self._restore_train_widgets_state_on_error()
|
|
2665
|
+
show_dialog(title="Error", description=message, status="error")
|
|
2670
2666
|
|
|
2671
2667
|
def _set_train_widgets_state_on_start(self):
|
|
2672
2668
|
self.gui.disable_select_buttons()
|
|
@@ -56,7 +56,7 @@ supervisely/api/entity_annotation/object_api.py,sha256=gbcNvN_KY6G80Me8fHKQgryc2
|
|
|
56
56
|
supervisely/api/entity_annotation/tag_api.py,sha256=h19YsJzJLDp0VIicQzoYCRyVhY149KY7pUysb4XX0RI,11114
|
|
57
57
|
supervisely/api/nn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
58
|
supervisely/api/nn/deploy_api.py,sha256=fA5yk3-Q66BL821iu68HpsGWWO2qHXCcWTmrXoHE4gE,37008
|
|
59
|
-
supervisely/api/nn/neural_network_api.py,sha256=
|
|
59
|
+
supervisely/api/nn/neural_network_api.py,sha256=VYqpHb6xqCeEUofTNfOGUhvjI_5Di3T26qwVp5Z-0hE,10643
|
|
60
60
|
supervisely/api/pointcloud/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
61
|
supervisely/api/pointcloud/pointcloud_annotation_api.py,sha256=xIXqCu0rKYsGt5ezh2EFT2utwsVrr2Xo-MOWUCnbvXc,11259
|
|
62
62
|
supervisely/api/pointcloud/pointcloud_api.py,sha256=Gii6INYqo5f3EUCkI14VMi2XuaxbRHEaqSb_HHmJJTA,53497
|
|
@@ -119,8 +119,8 @@ supervisely/app/widgets/__init__.py,sha256=nk4rXFHrtPWw6VsqFG92sC_xkFYSQ3aCwYt88
|
|
|
119
119
|
supervisely/app/widgets/select_sly_utils.py,sha256=gBenYkJyCl3Fa4u2GI6BKXul-AqnzvGK32Y6hxXKccA,288
|
|
120
120
|
supervisely/app/widgets/widget.py,sha256=e9tyZj7XhqDWiN5Wwk2xScXOmf__vRCoHflpGtv1RS0,9820
|
|
121
121
|
supervisely/app/widgets/agent_selector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
122
|
-
supervisely/app/widgets/agent_selector/agent_selector.py,sha256=
|
|
123
|
-
supervisely/app/widgets/agent_selector/template.html,sha256=
|
|
122
|
+
supervisely/app/widgets/agent_selector/agent_selector.py,sha256=Tjn3TKP0xLbEZLkeKhZ63T-2sXlpbLoaHMUjomH4YXY,2038
|
|
123
|
+
supervisely/app/widgets/agent_selector/template.html,sha256=QuImSt9aElZG-D3m6Qmn4sDHEj84rNZHCdQaxICay4w,938
|
|
124
124
|
supervisely/app/widgets/apexchart/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
125
125
|
supervisely/app/widgets/apexchart/apexchart.py,sha256=8UFwDpLTC99GRw87FuaHkMVjef2QHIOI7826sw8TGJc,7377
|
|
126
126
|
supervisely/app/widgets/apexchart/template.html,sha256=u-4oiCH6xJcJQqaQCky_e2nulSqwE_8h2CzgyiF4_fw,794
|
|
@@ -137,13 +137,13 @@ supervisely/app/widgets/bokeh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
|
|
|
137
137
|
supervisely/app/widgets/bokeh/bokeh.py,sha256=ta1LtmfzJNs0D62Zx30SwDMtmdrRumzotkRiVbBKeWk,13636
|
|
138
138
|
supervisely/app/widgets/bokeh/template.html,sha256=ntsh7xx4q9OHG62sa_r3INDxsXgvdPFIWTtYaWn_0t8,12
|
|
139
139
|
supervisely/app/widgets/button/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
140
|
-
supervisely/app/widgets/button/button.py,sha256=
|
|
140
|
+
supervisely/app/widgets/button/button.py,sha256=iLIfSn-56CO7-ZCLvgkXl-3PBT97c1tX_fE16tmcMiM,11445
|
|
141
141
|
supervisely/app/widgets/button/style.css,sha256=ya4kKrQGwVhVtBydftudgjPpDdN3rcUvKSlrY-2h1Kw,93
|
|
142
|
-
supervisely/app/widgets/button/template.html,sha256=
|
|
142
|
+
supervisely/app/widgets/button/template.html,sha256=toRxOgPmlEyemgYtIFwOyNDA33vW65FjyyAmmrfsKsI,928
|
|
143
143
|
supervisely/app/widgets/card/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
144
|
-
supervisely/app/widgets/card/card.py,sha256=
|
|
144
|
+
supervisely/app/widgets/card/card.py,sha256=Ah-YHMhgbfsZXS5TflITJQNNpJeSHbP7U3SrzcLbLyc,6260
|
|
145
145
|
supervisely/app/widgets/card/style.css,sha256=SSLN3HTYGBt_7MzUsXrtfGo0ylGMaOdDITDfjn-v8sk,51
|
|
146
|
-
supervisely/app/widgets/card/template.html,sha256=
|
|
146
|
+
supervisely/app/widgets/card/template.html,sha256=SfwwJUTiHoeNMNiw0OSLqEiRD26zhifSJA44AXDt1aw,598
|
|
147
147
|
supervisely/app/widgets/carousel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
148
148
|
supervisely/app/widgets/carousel/carousel.py,sha256=r3f6oY5ueg2519zSDmNJwY96Iiosu084aa0P_qIO9yk,9747
|
|
149
149
|
supervisely/app/widgets/carousel/template.html,sha256=sABDgglRUsYvxw4r0A4qY2e_S5ivgu5cgUuqtS2eu0o,879
|
|
@@ -182,7 +182,7 @@ supervisely/app/widgets/classes_mapping_preview/classes_mapping_preview.py,sha25
|
|
|
182
182
|
supervisely/app/widgets/classes_mapping_preview/style.css,sha256=i5UkUvCDBwIu_vLCEePNLpUk6_UYpHdNPu6mK5DSWpQ,128
|
|
183
183
|
supervisely/app/widgets/classes_mapping_preview/template.html,sha256=a0blGgpVI32PLwwyVkzu1DhZPyDQtxCVm0193MBZoOg,1028
|
|
184
184
|
supervisely/app/widgets/classes_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
185
|
-
supervisely/app/widgets/classes_table/classes_table.py,sha256=
|
|
185
|
+
supervisely/app/widgets/classes_table/classes_table.py,sha256=FjSLuHjzXJdT_Vhb6rqDVtgPRtsAB-5owrB4f5YVbXc,20704
|
|
186
186
|
supervisely/app/widgets/classes_table/style.css,sha256=-BOLDIEiMXRRrz2GVKUG58Zj3wfpaBSEr43yZlSZr2w,493
|
|
187
187
|
supervisely/app/widgets/classes_table/template.html,sha256=VvaQTEA_YKRbKguxw4N2ik0SR-6zfO_RQ0ICR5wasK8,2362
|
|
188
188
|
supervisely/app/widgets/classic_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -259,10 +259,10 @@ supervisely/app/widgets/experiment_selector/experiment_selector.py,sha256=MButdi
|
|
|
259
259
|
supervisely/app/widgets/experiment_selector/style.css,sha256=-zPPXHnJvatYj_xVVAb7T8uoSsUTyhm5xCKWkkFQ78E,548
|
|
260
260
|
supervisely/app/widgets/experiment_selector/template.html,sha256=k7f_Xl6nDUXXwu6IY_RblYni5TbZRRxCBduY5O_SyFs,2908
|
|
261
261
|
supervisely/app/widgets/fast_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
262
|
-
supervisely/app/widgets/fast_table/fast_table.py,sha256=
|
|
263
|
-
supervisely/app/widgets/fast_table/script.js,sha256=
|
|
262
|
+
supervisely/app/widgets/fast_table/fast_table.py,sha256=7VLdcf0kySg7_cQwBCOjSFEPUBuru_0_zQ6oAbZ7fSE,36024
|
|
263
|
+
supervisely/app/widgets/fast_table/script.js,sha256=3XnKAYsGyVIvOGyxxW6djCr2-7tYYK84oWKUZ999W2I,8878
|
|
264
264
|
supervisely/app/widgets/fast_table/style.css,sha256=nr3wUB_n9sjQy_A8D85OIxhC6qX9LcEFaCNljzP6DGQ,15409
|
|
265
|
-
supervisely/app/widgets/fast_table/template.html,sha256=
|
|
265
|
+
supervisely/app/widgets/fast_table/template.html,sha256=cUNS1UIEHbzqhj52uTUWH9RG3fKJTag1DTevYMN4GcA,1116
|
|
266
266
|
supervisely/app/widgets/field/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
267
267
|
supervisely/app/widgets/field/field.py,sha256=FqBqfIEcUK7R3va30YS_zijWTUSD5QT3-kpLKJNPq7o,6258
|
|
268
268
|
supervisely/app/widgets/field/style.css,sha256=sLMbqxS4EDPykcQZNMXeYdR4v1y1OP6iqcX0tRz7C68,56
|
|
@@ -414,7 +414,7 @@ supervisely/app/widgets/radio_tabs/radio_tabs.py,sha256=FekXYGQ3cxEsk8zvBTi31hJ3
|
|
|
414
414
|
supervisely/app/widgets/radio_tabs/style.css,sha256=tqyv-Du8ZBYO6kr9lsAiEJPMxjKwM6526yBC4dXwv9s,759
|
|
415
415
|
supervisely/app/widgets/radio_tabs/template.html,sha256=f5Yu7uLZJaZuOQ7S31-Nrp8-ilXbgPXQQLs4uBFCdjQ,969
|
|
416
416
|
supervisely/app/widgets/random_splits_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
417
|
-
supervisely/app/widgets/random_splits_table/random_splits_table.py,sha256=
|
|
417
|
+
supervisely/app/widgets/random_splits_table/random_splits_table.py,sha256=lU_55tAjfCvTr1B4rkza4bqMw8i0-cOPeS-W8rnX2S8,3479
|
|
418
418
|
supervisely/app/widgets/random_splits_table/template.html,sha256=whTSGXDjWMtMGJyh9dZKqsROwKI6UAicUuUxzuHobSQ,2075
|
|
419
419
|
supervisely/app/widgets/rate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
420
420
|
supervisely/app/widgets/rate/rate.py,sha256=Ib6-NyOacAEyUOD0Xbpl3p0tbljGhFS4kXh7quxrGDM,5811
|
|
@@ -997,7 +997,7 @@ supervisely/nn/tracking/__init__.py,sha256=Ld1ed7ZZQZPkhX-5Xr-UbHZx5zLCm2-tInHnP
|
|
|
997
997
|
supervisely/nn/tracking/boxmot.py,sha256=H9cQjYGL9nX_TLrfKDChhljTIiE9lffcgbwWCf_4PJU,4277
|
|
998
998
|
supervisely/nn/tracking/tracking.py,sha256=WNrNm02B1pspA3d_AmzSJ-54RZTqWV2NZiC7FHe88bo,857
|
|
999
999
|
supervisely/nn/training/__init__.py,sha256=gY4PCykJ-42MWKsqb9kl-skemKa8yB6t_fb5kzqR66U,111
|
|
1000
|
-
supervisely/nn/training/train_app.py,sha256=
|
|
1000
|
+
supervisely/nn/training/train_app.py,sha256=A-L0KufMdq4-eRa1u5xB-jMyYdyDSIFZUKCOaK_hYB8,117843
|
|
1001
1001
|
supervisely/nn/training/gui/__init__.py,sha256=Nqnn8clbgv-5l0PgxcTOldg8mkMKrFn4TvPL-rYUUGg,1
|
|
1002
1002
|
supervisely/nn/training/gui/classes_selector.py,sha256=Bpp-RFDQqcZ0kLJmS6ZnExkdscWwRusvF4vbWjEsKlQ,3926
|
|
1003
1003
|
supervisely/nn/training/gui/gui.py,sha256=FbKsd4Tur1YsUwQmoHhFdkP6IZILbprXbOliD9jrEyQ,44882
|
|
@@ -1100,9 +1100,9 @@ supervisely/worker_proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
|
|
|
1100
1100
|
supervisely/worker_proto/worker_api_pb2.py,sha256=VQfi5JRBHs2pFCK1snec3JECgGnua3Xjqw_-b3aFxuM,59142
|
|
1101
1101
|
supervisely/worker_proto/worker_api_pb2_grpc.py,sha256=3BwQXOaP9qpdi0Dt9EKG--Lm8KGN0C5AgmUfRv77_Jk,28940
|
|
1102
1102
|
supervisely_lib/__init__.py,sha256=7-3QnN8Zf0wj8NCr2oJmqoQWMKKPKTECvjH9pd2S5vY,159
|
|
1103
|
-
supervisely-6.73.
|
|
1104
|
-
supervisely-6.73.
|
|
1105
|
-
supervisely-6.73.
|
|
1106
|
-
supervisely-6.73.
|
|
1107
|
-
supervisely-6.73.
|
|
1108
|
-
supervisely-6.73.
|
|
1103
|
+
supervisely-6.73.376.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
1104
|
+
supervisely-6.73.376.dist-info/METADATA,sha256=snAPM3paMF3bm1RBxA6aFdod4pc-A8s3GOtQ_wog5SU,35154
|
|
1105
|
+
supervisely-6.73.376.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
|
|
1106
|
+
supervisely-6.73.376.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
|
|
1107
|
+
supervisely-6.73.376.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
|
|
1108
|
+
supervisely-6.73.376.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|