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.
@@ -1,5 +1,5 @@
1
1
  # coding: utf-8
2
- """deploy and connect to to running inference apps"""
2
+ """deploy and connect to running serving apps"""
3
3
 
4
4
  from __future__ import annotations
5
5
 
@@ -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
- self._icon = f'<i class="{icon}" style="margin-right: {icon_gap}px"></i>'
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:
@@ -20,7 +20,7 @@ endif
20
20
  @click="{{{widget._get_on_click()}}}"
21
21
  {% endif %}
22
22
  {% if widget._style %}
23
- style="{{{widget._style}}}"
23
+ :style="data.{{{widget.widget_id}}}.style"
24
24
  {% endif %}
25
25
  >
26
26
  <span v-html="data.{{{widget.widget_id}}}.icon"></span>
@@ -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
+ });
@@ -12,6 +12,7 @@
12
12
  :sort.sync="state.{{{widget.widget_id}}}.sort"
13
13
  :search.sync="state.{{{widget.widget_id}}}.search"
14
14
  :data="data.{{{widget.widget_id}}}.data"
15
+ :show-header="data.{{{widget.widget_id}}}.showHeader"
15
16
  {%
16
17
  if
17
18
  widget._row_click_handled
@@ -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
- return
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
- return
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
- return
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
- # Shutdown the app after training is finished
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
- self.gui.training_logs.tensorboard_button.hide()
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
- return
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()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: supervisely
3
- Version: 6.73.375
3
+ Version: 6.73.376
4
4
  Summary: Supervisely Python SDK.
5
5
  Home-page: https://github.com/supervisely/supervisely
6
6
  Author: Supervisely
@@ -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=dVETXQzMpmrLe3S5-jUx5Hw-rAjX8wdS_2f3XbQa3ic,10648
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=NTtMn4d4c0ysMKn6J9OeJm2Wog-9JkreRya-rrUc1_U,1790
123
- supervisely/app/widgets/agent_selector/template.html,sha256=_n6y0WEekHuASRsKt9MhfY_UH0ivzacTlqhQvE2i85k,850
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=ddAXJqnotoeqgbmi_ewNE9jQqxjdu-NFdqpSsYu8a4Q,10561
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=CUT6WJJN9WyX7PIAslQApLwH4GmVpQHfMj0-8tZwLOY,913
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=xmkTHxqx6k-G9DOSewCrnMKbpcj07KmzSwSO7Ue61Ok,6117
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=B25DBz_iRKq9p0qgUx6t0Ep1ytNNvLiVLVeFrNRP4GE,577
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=yjosUFCt1eELj6ripF24pt2svVsQZxQrGdXf8StS_lE,20646
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=hLdb-9Vj18RbOWYGFcm3hGIXzBzTuvNDDTP7bQRGtFs,35321
263
- supervisely/app/widgets/fast_table/script.js,sha256=U3lmOucE_IJBuW0n6he1y3um6Ge3vFyhC6gKdmfKxOo,8782
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=P4mkLysZywc5F_jWuRMzYi89juudGm-6Dh7mo5SsDLo,1060
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=GKjJL6pF7eTPYaGNCWByQBQ6fLHillSLml_2-VxPtxM,3419
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=ljzN7qn77_kNeUN4kakb9AZt-6PhCM2hQNqe3pfCDWg,118026
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.375.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1104
- supervisely-6.73.375.dist-info/METADATA,sha256=H70Ig1kNXFXCPzzuh64i6Uy5zWYm1Ry8qpfJWdKO_78,35154
1105
- supervisely-6.73.375.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
1106
- supervisely-6.73.375.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1107
- supervisely-6.73.375.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1108
- supervisely-6.73.375.dist-info/RECORD,,
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,,