supervisely 6.73.410__py3-none-any.whl → 6.73.412__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",
@@ -64,7 +64,14 @@ class TrainingArtifacts:
64
64
  self.display_widgets.extend([self.validator_text])
65
65
 
66
66
  # Outputs
67
- need_generate_report = self.app_options.get("generate_report", True)
67
+ need_generate_report = self.app_options.get("generate_report", False)
68
+
69
+ # @TODO: temporary code to generate report for dev only
70
+ is_dev = "dev.internal" in api.server_address
71
+ if not is_dev:
72
+ need_generate_report = False
73
+ # ------------------------------------------------------------ #
74
+
68
75
  if need_generate_report:
69
76
  self.artifacts_thumbnail = ReportThumbnail(
70
77
  title="Experiment Report",
@@ -702,11 +702,7 @@ class TrainApp:
702
702
  self._upload_demo_files(remote_dir)
703
703
 
704
704
  # 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
705
+ output_file_info, experiment_info = self._generate_experiment_output(experiment_info, model_meta, session_link_file_info)
710
706
 
711
707
  # Step 11. Set output widgets
712
708
  self._set_text_status("reset")
@@ -1986,6 +1982,40 @@ class TrainApp:
1986
1982
 
1987
1983
  self.progress_bar_main.hide()
1988
1984
 
1985
+ def _generate_experiment_output(self, experiment_info: dict, model_meta: ProjectMeta, session_link_file_info: FileInfo) -> tuple:
1986
+ """
1987
+ Generates and uploads the experiment page to the output directory, if report generation is successful.
1988
+ Otherwise, artifacts directory link will be used for output.
1989
+
1990
+ :param experiment_info: Information about the experiment results.
1991
+ :type experiment_info: dict
1992
+ :param model_meta: Model meta with object classes.
1993
+ :type model_meta: ProjectMeta
1994
+ :param session_link_file_info: Artifacts directory link, used if report is not generated.
1995
+ :type session_link_file_info: FileInfo
1996
+ :return: Output file info and experiment info.
1997
+ :rtype: tuple
1998
+ """
1999
+ need_generate_report = self._app_options.get("generate_report", False)
2000
+ # @TODO: temporary code to generate report for dev only
2001
+ is_dev = "dev.internal" in self._api.server_address
2002
+ if not is_dev:
2003
+ need_generate_report = False
2004
+ # ------------------------------------------------------------ #
2005
+
2006
+ if need_generate_report: # link to experiment page
2007
+ try:
2008
+ output_file_info = self._generate_experiment_report(experiment_info, model_meta)
2009
+ experiment_info["has_report"] = True
2010
+ except Exception as e:
2011
+ logger.error(f"Error generating experiment report: {e}")
2012
+ output_file_info = session_link_file_info
2013
+ experiment_info["has_report"] = False
2014
+ else: # link to artifacts directory
2015
+ output_file_info = session_link_file_info
2016
+ experiment_info["has_report"] = False
2017
+ return output_file_info, experiment_info
2018
+
1989
2019
  def _get_train_val_splits_for_app_state(self) -> Dict:
1990
2020
  """
1991
2021
  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.412
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,16 +1000,16 @@ 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=c71Y9rV-0qnZ0VsE156HS9Q5Fowg8RoGsItyYFjdyPA,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
1011
1011
  supervisely/nn/training/gui/train_val_splits_selector.py,sha256=5-Ra-qFG7ki2yFBUa7mST_BbbE_RzPgA3ubP9wTC8oY,16498
1012
- supervisely/nn/training/gui/training_artifacts.py,sha256=8ReWCo46fEOPpjVf_jPWczZwaWCDH2a6VQGC7ic-BLA,10871
1012
+ supervisely/nn/training/gui/training_artifacts.py,sha256=u-vuO03YLErBSSkCMxYeijcH4c821ufORz7_5aM2b-0,11129
1013
1013
  supervisely/nn/training/gui/training_logs.py,sha256=GgEQMj9p98Z3p2b_-3BkHOhY7WQYELxctsRKmkbg3JY,4966
1014
1014
  supervisely/nn/training/gui/training_process.py,sha256=XJ3ELyys_rBFmLQnI9qe3QhmfZ6U0CrK1FbI6d-Fbns,3664
1015
1015
  supervisely/nn/training/gui/utils.py,sha256=cEOsYItxgGTGKxFAvn7zQcTpwHgcGRO_UNGBn8idMUI,4983
@@ -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.412.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1119
+ supervisely-6.73.412.dist-info/METADATA,sha256=48ufWdiEor7nRHpV9wZcI8Rcn-RmPmGfMcHgv7aMciA,35254
1120
+ supervisely-6.73.412.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
1121
+ supervisely-6.73.412.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1122
+ supervisely-6.73.412.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1123
+ supervisely-6.73.412.dist-info/RECORD,,