supervisely 6.73.410__py3-none-any.whl → 6.73.411__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.
@@ -1046,6 +1046,9 @@ class TaskApi(ModuleApiBase, ModuleWithStatus):
1046
1046
  'type': 'tensorboard',
1047
1047
  'link': '/experiments/76_Lemons/247_RT-DETRv2/logs/'
1048
1048
  },
1049
+ # These fields are present only in task_info
1050
+ 'project_preview': 'https://app.supervisely.com/...',
1051
+ 'has_report': True,
1049
1052
  }
1050
1053
  """
1051
1054
  output = {
@@ -48,7 +48,7 @@ class HyperparametersSelector:
48
48
  self.run_model_benchmark_checkbox = Checkbox(
49
49
  content="Run Model Benchmark evaluation", checked=True
50
50
  )
51
- self.run_speedtest_checkbox = Checkbox(content="Run speed test", checked=True)
51
+ self.run_speedtest_checkbox = Checkbox(content="Run speed test", checked=False)
52
52
 
53
53
  self.model_benchmark_field = Field(
54
54
  title="Model Evaluation Benchmark",
@@ -701,12 +701,9 @@ class TrainApp:
701
701
  self._generate_model_meta(remote_dir, model_meta)
702
702
  self._upload_demo_files(remote_dir)
703
703
 
704
+
704
705
  # Step 10. Generate training output
705
- need_generate_report = self._app_options.get("generate_report", True)
706
- if need_generate_report:
707
- output_file_info = self._generate_experiment_report(experiment_info, model_meta)
708
- else: # output artifacts directory
709
- output_file_info = session_link_file_info
706
+ output_file_info, experiment_info = self._generate_experiment_output(experiment_info, model_meta, session_link_file_info)
710
707
 
711
708
  # Step 11. Set output widgets
712
709
  self._set_text_status("reset")
@@ -1986,6 +1983,40 @@ class TrainApp:
1986
1983
 
1987
1984
  self.progress_bar_main.hide()
1988
1985
 
1986
+ def _generate_experiment_output(self, experiment_info: dict, model_meta: ProjectMeta, session_link_file_info: FileInfo) -> tuple:
1987
+ """
1988
+ Generates and uploads the experiment page to the output directory, if report generation is successful.
1989
+ Otherwise, artifacts directory link will be used for output.
1990
+
1991
+ :param experiment_info: Information about the experiment results.
1992
+ :type experiment_info: dict
1993
+ :param model_meta: Model meta with object classes.
1994
+ :type model_meta: ProjectMeta
1995
+ :param session_link_file_info: Artifacts directory link, used if report is not generated.
1996
+ :type session_link_file_info: FileInfo
1997
+ :return: Output file info and experiment info.
1998
+ :rtype: tuple
1999
+ """
2000
+ need_generate_report = self._app_options.get("generate_report", True)
2001
+ # @TODO: temporary code to generate report for dev only
2002
+ is_dev = "dev.internal" in self._api.server_address
2003
+ if not is_dev:
2004
+ need_generate_report = False
2005
+ # ------------------------------------------------------------ #
2006
+
2007
+ if need_generate_report: # link to experiment page
2008
+ try:
2009
+ output_file_info = self._generate_experiment_report(experiment_info, model_meta)
2010
+ experiment_info["has_report"] = True
2011
+ except Exception as e:
2012
+ logger.error(f"Error generating experiment report: {e}")
2013
+ output_file_info = session_link_file_info
2014
+ experiment_info["has_report"] = False
2015
+ else: # link to artifacts directory
2016
+ output_file_info = session_link_file_info
2017
+ experiment_info["has_report"] = False
2018
+ return output_file_info, experiment_info
2019
+
1989
2020
  def _get_train_val_splits_for_app_state(self) -> Dict:
1990
2021
  """
1991
2022
  Gets the train and val splits information for app_state.json.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: supervisely
3
- Version: 6.73.410
3
+ Version: 6.73.411
4
4
  Summary: Supervisely Python SDK.
5
5
  Home-page: https://github.com/supervisely/supervisely
6
6
  Author: Supervisely
@@ -45,7 +45,7 @@ supervisely/api/remote_storage_api.py,sha256=1O4rTIwW8s9gxC00yvFuKbEMGNsa7YSRlZ8
45
45
  supervisely/api/report_api.py,sha256=Om7CGulUbQ4BuJ16eDtz7luLe0JQNqab-LoLpUXu7YE,7123
46
46
  supervisely/api/role_api.py,sha256=c1XAU_wZg6zL4wG2R7iuS9EJOoaHHNGchxa1nYVL7yo,3047
47
47
  supervisely/api/storage_api.py,sha256=VxiflQt-SfyB1OuEOB66JsMkxCosUr4n0WHQ5if3Ltg,13039
48
- supervisely/api/task_api.py,sha256=5Ae3jKWgvvz_Mljk6V1UaIVqDbTvnSD6cpIJ3H3KqT0,38435
48
+ supervisely/api/task_api.py,sha256=7H-SXqywX9Vb8Wwmke0tpdoN1Hgl2h6gQOnVzMNHvHQ,38602
49
49
  supervisely/api/team_api.py,sha256=uPsBpDP_Ig9HDQ9Zm6Y-VboLbSYKIV9S_a1S7e4vqvo,19470
50
50
  supervisely/api/user_api.py,sha256=m29GP9tvem8P2fJZgg7DAZ9yhFdBX26ZBcWxCKdnhn4,24943
51
51
  supervisely/api/video_annotation_tool_api.py,sha256=3A9-U8WJzrTShP_n9T8U01M9FzGYdeS51CCBTzUnooo,6686
@@ -1000,11 +1000,11 @@ supervisely/nn/tracking/__init__.py,sha256=Ld1ed7ZZQZPkhX-5Xr-UbHZx5zLCm2-tInHnP
1000
1000
  supervisely/nn/tracking/boxmot.py,sha256=H9cQjYGL9nX_TLrfKDChhljTIiE9lffcgbwWCf_4PJU,4277
1001
1001
  supervisely/nn/tracking/tracking.py,sha256=WNrNm02B1pspA3d_AmzSJ-54RZTqWV2NZiC7FHe88bo,857
1002
1002
  supervisely/nn/training/__init__.py,sha256=gY4PCykJ-42MWKsqb9kl-skemKa8yB6t_fb5kzqR66U,111
1003
- supervisely/nn/training/train_app.py,sha256=rFq6qggZb9ZaH7mnwqRbqmMUNq5B1laMGUNVGZdfRd8,123629
1003
+ supervisely/nn/training/train_app.py,sha256=0l80Oz_910gvnArAv5JMdEj-2DuLXlrcuClkG9UBVCs,125210
1004
1004
  supervisely/nn/training/gui/__init__.py,sha256=Nqnn8clbgv-5l0PgxcTOldg8mkMKrFn4TvPL-rYUUGg,1
1005
1005
  supervisely/nn/training/gui/classes_selector.py,sha256=tqmVwUfC2u5K53mZmvDvNOhu9Mw5mddjpB2kxRXXUO8,12453
1006
1006
  supervisely/nn/training/gui/gui.py,sha256=RLCVtKefWYPHlPN-U8iyAdPHH6Qvx6HE3fFCqyq3rZ4,49210
1007
- supervisely/nn/training/gui/hyperparameters_selector.py,sha256=bcCxJ9-8NjZa0U9XWHysrMzr8dxqXiqUgX5lbDiAm5A,7767
1007
+ supervisely/nn/training/gui/hyperparameters_selector.py,sha256=tEyppV5ay7nECi6qBQ9seKgfidPa_FxxtGmqsfQapa4,7768
1008
1008
  supervisely/nn/training/gui/input_selector.py,sha256=rmirJzpdxuYONI6y5_cvMdGWBJ--T20YTsISghATHu4,2510
1009
1009
  supervisely/nn/training/gui/model_selector.py,sha256=Fvsja7n75PzqxDkDhPEkCltYsbAPPRpUxgWgIZCseks,7439
1010
1010
  supervisely/nn/training/gui/tags_selector.py,sha256=0yg2OGPqiHUBp3iML2vrzTOVeSKtRtR9JoMy4Snx41U,3755
@@ -1115,9 +1115,9 @@ supervisely/worker_proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
1115
1115
  supervisely/worker_proto/worker_api_pb2.py,sha256=VQfi5JRBHs2pFCK1snec3JECgGnua3Xjqw_-b3aFxuM,59142
1116
1116
  supervisely/worker_proto/worker_api_pb2_grpc.py,sha256=3BwQXOaP9qpdi0Dt9EKG--Lm8KGN0C5AgmUfRv77_Jk,28940
1117
1117
  supervisely_lib/__init__.py,sha256=7-3QnN8Zf0wj8NCr2oJmqoQWMKKPKTECvjH9pd2S5vY,159
1118
- supervisely-6.73.410.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1119
- supervisely-6.73.410.dist-info/METADATA,sha256=CNGxrr7PWqWR6ZPxhf6ujqvjgoEq4TxkKeUbTRLoiEw,35254
1120
- supervisely-6.73.410.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
1121
- supervisely-6.73.410.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1122
- supervisely-6.73.410.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1123
- supervisely-6.73.410.dist-info/RECORD,,
1118
+ supervisely-6.73.411.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1119
+ supervisely-6.73.411.dist-info/METADATA,sha256=IcBvgafucBiE_bB3WFVE_DxSbt66oNFIDKoF86YLBw4,35254
1120
+ supervisely-6.73.411.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
1121
+ supervisely-6.73.411.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1122
+ supervisely-6.73.411.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1123
+ supervisely-6.73.411.dist-info/RECORD,,