thestage 0.5.43__py3-none-any.whl → 0.5.45__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.
@@ -12,7 +12,12 @@ import typer
12
12
  from git import Commit
13
13
  from tabulate import tabulate
14
14
 
15
+ from thestage.entities.project_inference_simulator import ProjectInferenceSimulatorEntity
16
+ from thestage.entities.project_inference_simulator_model import ProjectInferenceSimulatorModelEntity
17
+ from thestage.entities.project_task import ProjectTaskEntity
15
18
  from thestage.services.clients.thestage_api.core.http_client_exception import HttpClientException
19
+ from thestage.services.clients.thestage_api.dtos.enums.inference_model_status import InferenceModelStatus
20
+ from thestage.services.clients.thestage_api.dtos.enums.inference_simulator_status import InferenceSimulatorStatus
16
21
  from thestage.services.core_files.config_entity import ConfigEntity
17
22
  from thestage.color_scheme.color_scheme import ColorScheme
18
23
  from thestage.entities.enums.yes_no_response import YesOrNoResponse
@@ -36,9 +41,12 @@ from thestage.services.clients.thestage_api.dtos.project_controller.project_star
36
41
  ProjectStartInferenceSimulatorResponse
37
42
  from thestage.services.clients.thestage_api.dtos.project_response import ProjectDto
38
43
  from thestage.services.clients.thestage_api.dtos.task_controller.task_view_response import TaskViewResponse
39
- from thestage.services.filesystem_service import FileSystemServiceCore
44
+ from thestage.services.filesystem_service import FileSystemService
40
45
  from thestage.services.project.dto.inference_simulator_dto import InferenceSimulatorDto
41
46
  from thestage.services.project.dto.inference_simulator_model_dto import InferenceSimulatorModelDto
47
+ from thestage.services.project.mapper.project_inference_simulator_mapper import ProjectInferenceSimulatorMapper
48
+ from thestage.services.project.mapper.project_inference_simulator_model_mapper import \
49
+ ProjectInferenceSimulatorModelMapper
42
50
  from thestage.services.task.dto.task_dto import TaskDto
43
51
  from thestage.services.project.dto.project_config import ProjectConfig
44
52
  from thestage.services.project.mapper.project_task_mapper import ProjectTaskMapper
@@ -58,7 +66,7 @@ class ProjectService(AbstractService):
58
66
  thestage_api_client: TheStageApiClient,
59
67
  config_provider: ConfigProvider,
60
68
  remote_server_service: RemoteServerService,
61
- file_system_service: FileSystemServiceCore,
69
+ file_system_service: FileSystemService,
62
70
  git_local_client: GitLocalClient,
63
71
  ):
64
72
  super(ProjectService, self).__init__(
@@ -148,11 +156,6 @@ class ProjectService(AbstractService):
148
156
 
149
157
  self.__git_local_client.git_fetch(path=config.runtime.working_directory, deploy_key_path=deploy_key_path)
150
158
 
151
- branch = self.__git_local_client.find_main_branch_name(path=config.runtime.working_directory, )
152
- if branch:
153
- self.__git_local_client.git_pull(path=config.runtime.working_directory, deploy_key_path=deploy_key_path,
154
- branch=branch)
155
-
156
159
  self.__git_local_client.init_gitignore(path=config.runtime.working_directory)
157
160
 
158
161
  self.__git_local_client.git_add_all(repo_path=config.runtime.working_directory)
@@ -401,6 +404,19 @@ class ProjectService(AbstractService):
401
404
  typer.echo("The task failed with an error")
402
405
  raise typer.Exit(1)
403
406
 
407
+ @error_handler()
408
+ def cancel_task(self, task_id: int, config: ConfigEntity):
409
+ cancel_result = self.__thestage_api_client.cancel_task(
410
+ token=config.main.thestage_auth_token,
411
+ task_id=task_id,
412
+ )
413
+
414
+ if cancel_result.is_success:
415
+ typer.echo(f'Task {task_id} has been canceled')
416
+ else:
417
+ typer.echo(f'Task {task_id} could not be canceled: {cancel_result.message}')
418
+
419
+
404
420
  @error_handler()
405
421
  def project_run_inference_simulator(
406
422
  self,
@@ -828,6 +844,8 @@ class ProjectService(AbstractService):
828
844
  typer.echo("No main branch found")
829
845
 
830
846
 
847
+
848
+
831
849
  @error_handler()
832
850
  def set_default_container(self, config: ConfigEntity, container_uid: Optional[str]):
833
851
  project_config: ProjectConfig = self.__config_provider.read_project_config()
@@ -880,6 +898,8 @@ class ProjectService(AbstractService):
880
898
  typer.echo(f"No project found in working directory")
881
899
  raise typer.Exit(1)
882
900
 
901
+ is_deploy_key_exists = project_config.deploy_key_path and self.__file_system_service.check_if_path_exist(project_config.deploy_key_path)
902
+
883
903
  typer.echo(tabulate(
884
904
  [
885
905
  [
@@ -888,11 +908,20 @@ class ProjectService(AbstractService):
888
908
  [
889
909
  "Default docker container unique ID", project_config.default_container_uid if project_config.default_container_uid else "<None>"
890
910
  ],
911
+ [
912
+ "Deploy key path", project_config.deploy_key_path if is_deploy_key_exists else "<None>"
913
+ ],
891
914
  ],
892
915
  showindex=False,
893
916
  tablefmt="simple",
894
917
  ))
895
918
 
919
+ if is_deploy_key_exists:
920
+ typer.echo("")
921
+ typer.echo(f"You can insert the following text:")
922
+ print(f"[{ColorScheme.USEFUL_INFO.value}]GIT_SSH_COMMAND=\"ssh -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -i {project_config.deploy_key_path}\"[{ColorScheme.USEFUL_INFO.value}]")
923
+ typer.echo(f"before any regular git command to manage your local Project repository directly")
924
+
896
925
  @error_handler()
897
926
  def __get_fixed_project_config(self, config: ConfigEntity) -> Optional[ProjectConfig]:
898
927
  project_config: ProjectConfig = self.__config_provider.read_project_config()
@@ -1083,4 +1112,169 @@ class ProjectService(AbstractService):
1083
1112
 
1084
1113
  except Exception as e:
1085
1114
  typer.echo(__("Failed to deploy the inference simulator model to SageMaker: %error%", {"error": str(e)}))
1086
- raise typer.Exit(1)
1115
+ raise typer.Exit(1)
1116
+
1117
+
1118
+ @error_handler()
1119
+ def pull_project(self, config: ConfigEntity):
1120
+ project_config: ProjectConfig = self.__get_fixed_project_config(config=config)
1121
+ if not project_config:
1122
+ typer.echo(__("No project found at the path: %path%. Please initialize or clone a project first.", {"path": config.runtime.working_directory}))
1123
+ raise typer.Exit(1)
1124
+
1125
+ typer.echo("Pulling code from remote repository...")
1126
+ self.__git_local_client.git_pull(
1127
+ path=config.runtime.working_directory,
1128
+ deploy_key_path=project_config.deploy_key_path,
1129
+ )
1130
+
1131
+
1132
+ @error_handler()
1133
+ def reset_project(self, config: ConfigEntity):
1134
+ project_config: ProjectConfig = self.__get_fixed_project_config(config=config)
1135
+ if not project_config:
1136
+ typer.echo(__("No project found at the path: %path%. Please initialize or clone a project first.", {"path": config.runtime.working_directory}))
1137
+ raise typer.Exit(1)
1138
+
1139
+ typer.echo("Fetching code from remote repository...")
1140
+ self.__git_local_client.git_fetch(
1141
+ path=config.runtime.working_directory,
1142
+ deploy_key_path=project_config.deploy_key_path,
1143
+ )
1144
+ typer.echo("Resetting local branch...")
1145
+ self.__git_local_client.reset_hard(
1146
+ path=config.runtime.working_directory,
1147
+ deploy_key_path=project_config.deploy_key_path,
1148
+ reset_to_origin=True
1149
+ )
1150
+
1151
+
1152
+ @error_handler()
1153
+ def print_inference_simulator_list(self, config, project_uid, statuses, row, page):
1154
+ if not project_uid:
1155
+ project_config: ProjectConfig = self.__config_provider.read_project_config()
1156
+ if not project_config:
1157
+ typer.echo(__("Provide the project unique ID or run this command from within an initialized project directory"))
1158
+ raise typer.Exit(1)
1159
+ project_uid = project_config.slug
1160
+
1161
+ inference_simulator_status_map = self.__thestage_api_client.get_inference_simulator_business_status_map(
1162
+ config.main.thestage_auth_token)
1163
+
1164
+ if not statuses:
1165
+ statuses = ({key: inference_simulator_status_map[key] for key in [
1166
+ InferenceSimulatorStatus.SCHEDULED,
1167
+ InferenceSimulatorStatus.CREATING,
1168
+ InferenceSimulatorStatus.RUNNING,
1169
+ ]}).values()
1170
+
1171
+ if "all" in statuses:
1172
+ statuses = inference_simulator_status_map.values()
1173
+
1174
+ for input_status_item in statuses:
1175
+ if input_status_item not in inference_simulator_status_map.values():
1176
+ typer.echo(__("'%invalid_status%' is not one of %valid_statuses%", {
1177
+ 'invalid_status': input_status_item,
1178
+ 'valid_statuses': str(list(inference_simulator_status_map.values()))
1179
+ }))
1180
+ raise typer.Exit(1)
1181
+
1182
+ typer.echo(__(
1183
+ "Listing inference simulators with the following statuses: %statuses%, to view all inference simulators, use --status all",
1184
+ placeholders={
1185
+ 'statuses': ', '.join([status_item for status_item in statuses])
1186
+ }))
1187
+
1188
+ backend_statuses: List[str] = [key for key, value in inference_simulator_status_map.items() if value in statuses]
1189
+
1190
+ self.print(
1191
+ func_get_data=self.get_project_inference_simulator_list,
1192
+ func_special_params={
1193
+ 'project_slug': project_uid,
1194
+ 'statuses': backend_statuses,
1195
+ },
1196
+ mapper=ProjectInferenceSimulatorMapper(),
1197
+ config=config,
1198
+ headers=list(map(lambda x: x.alias, ProjectInferenceSimulatorEntity.model_fields.values())),
1199
+ row=row,
1200
+ page=page,
1201
+ max_col_width=[100, 100, 100, 100, 100, 100, 100, 100],
1202
+ show_index="never",
1203
+ )
1204
+
1205
+
1206
+ @error_handler()
1207
+ def print_inference_simulator_model_list(self, config, project_uid, statuses, row, page):
1208
+ if not project_uid:
1209
+ project_config: ProjectConfig = self.__config_provider.read_project_config()
1210
+ if not project_config:
1211
+ typer.echo(__("Provide the project unique ID or run this command from within an initialized project directory"))
1212
+ raise typer.Exit(1)
1213
+ project_uid = project_config.slug
1214
+
1215
+ inference_simulator_model_status_map = self.__thestage_api_client.get_inference_simulator_model_business_status_map(
1216
+ config.main.thestage_auth_token)
1217
+
1218
+ if not statuses:
1219
+ statuses = ({key: inference_simulator_model_status_map[key] for key in [
1220
+ InferenceModelStatus.SCHEDULED,
1221
+ InferenceModelStatus.PROCESSING,
1222
+ InferenceModelStatus.PUSH_SUCCEED,
1223
+ ]}).values()
1224
+
1225
+ if "all" in statuses:
1226
+ statuses = inference_simulator_model_status_map.values()
1227
+
1228
+ for input_status_item in statuses:
1229
+ if input_status_item not in inference_simulator_model_status_map.values():
1230
+ typer.echo(__("'%invalid_status%' is not one of %valid_statuses%", {
1231
+ 'invalid_status': input_status_item,
1232
+ 'valid_statuses': str(list(inference_simulator_model_status_map.values()))
1233
+ }))
1234
+ raise typer.Exit(1)
1235
+
1236
+ typer.echo(__(
1237
+ "Listing inference simulator models with the following statuses: %statuses%, to view all inference simulator models, use --status all",
1238
+ placeholders={
1239
+ 'statuses': ', '.join([status_item for status_item in statuses])
1240
+ }))
1241
+
1242
+ backend_statuses: List[str] = [key for key, value in inference_simulator_model_status_map.items() if value in statuses]
1243
+
1244
+ self.print(
1245
+ func_get_data=self.get_project_inference_simulator_model_list,
1246
+ func_special_params={
1247
+ 'project_slug': project_uid,
1248
+ 'statuses': backend_statuses,
1249
+ },
1250
+ mapper=ProjectInferenceSimulatorModelMapper(),
1251
+ config=config,
1252
+ headers=list(map(lambda x: x.alias, ProjectInferenceSimulatorModelEntity.model_fields.values())),
1253
+ row=row,
1254
+ page=page,
1255
+ max_col_width=[100, 100, 100, 100, 100, 100, 100, 100],
1256
+ show_index="never",
1257
+ )
1258
+
1259
+
1260
+ def print_task_list(self, config: ConfigEntity, project_uid, row, page):
1261
+ if not project_uid:
1262
+ project_config: ProjectConfig = self.__config_provider.read_project_config()
1263
+ if not project_config:
1264
+ typer.echo(__("Provide the project unique ID or run this command from within an initialized project directory"))
1265
+ raise typer.Exit(1)
1266
+ project_uid = project_config.slug
1267
+
1268
+ self.print(
1269
+ func_get_data=self.get_project_task_list,
1270
+ func_special_params={
1271
+ 'project_slug': project_uid,
1272
+ },
1273
+ mapper=ProjectTaskMapper(),
1274
+ config=config,
1275
+ headers=list(map(lambda x: x.alias, ProjectTaskEntity.model_fields.values())),
1276
+ row=row,
1277
+ page=page,
1278
+ max_col_width=[100, 100, 100, 100, 100, 100, 100, 100],
1279
+ show_index="never",
1280
+ )
@@ -21,7 +21,7 @@ from thestage.helpers.ssh_util import parse_private_key
21
21
  from thestage.i18n.translation import __
22
22
  from thestage.services.clients.thestage_api.dtos.sftp_path_helper import SftpFileItemEntity
23
23
  from thestage.services.config_provider.config_provider import ConfigProvider
24
- from thestage.services.filesystem_service import FileSystemServiceCore
24
+ from thestage.services.filesystem_service import FileSystemService
25
25
 
26
26
  old_value: int = 0
27
27
 
@@ -30,7 +30,7 @@ class RemoteServerService:
30
30
 
31
31
  def __init__(
32
32
  self,
33
- file_system_service: FileSystemServiceCore,
33
+ file_system_service: FileSystemService,
34
34
  config_provider: ConfigProvider,
35
35
  ):
36
36
  self.__file_system_service = file_system_service
@@ -1,7 +1,7 @@
1
1
  from typing import Optional
2
2
 
3
3
  from thestage.services.connect.connect_service import ConnectService
4
- from thestage.services.filesystem_service import FileSystemServiceCore
4
+ from thestage.services.filesystem_service import FileSystemService
5
5
  from thestage.services.logging.logging_service import LoggingService
6
6
  from thestage.services.project.project_service import ProjectService
7
7
  from thestage.services.remote_server_service import RemoteServerService
@@ -18,7 +18,7 @@ class ServiceFactory:
18
18
  __config_provider: Optional[ConfigProvider] = None
19
19
  __thestage_api_client: Optional[TheStageApiClient] = None
20
20
  __git_local_client: Optional[GitLocalClient] = None
21
- __file_system_service: Optional[FileSystemServiceCore] = None
21
+ __file_system_service: Optional[FileSystemService] = None
22
22
 
23
23
  def __init__(
24
24
  self,
@@ -84,9 +84,9 @@ class ServiceFactory:
84
84
  self.__git_local_client = GitLocalClient(file_system_service=self.get_file_system_service())
85
85
  return self.__git_local_client
86
86
 
87
- def get_file_system_service(self) -> FileSystemServiceCore:
87
+ def get_file_system_service(self) -> FileSystemService:
88
88
  if not self.__file_system_service:
89
- self.__file_system_service = FileSystemServiceCore()
89
+ self.__file_system_service = FileSystemService()
90
90
  return self.__file_system_service
91
91
 
92
92
  def get_app_config_service(self, config_provider: Optional[ConfigProvider] = None,) -> AppConfigService:
@@ -53,10 +53,4 @@ class ValidationService:
53
53
  if not config.main.thestage_auth_token:
54
54
  present_token = False
55
55
 
56
- if config.start_on_daemon:
57
- if config.daemon and config.daemon.daemon_token:
58
- present_token = True
59
- else:
60
- present_token = False
61
-
62
56
  return present_token
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: thestage
3
- Version: 0.5.43
3
+ Version: 0.5.45
4
4
  Summary:
5
5
  Author: TheStage AI team
6
6
  Author-email: hello@thestage.ai
@@ -21,7 +21,7 @@ Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
21
21
  Requires-Dist: python-gettext-translations (>=1.1.0,<2.0.0)
22
22
  Requires-Dist: requests (>=2.31.0,<3.0.0)
23
23
  Requires-Dist: tabulate (>=0.9.0,<0.10.0)
24
- Requires-Dist: typer[all] (>=0.9.0,<0.10.0)
24
+ Requires-Dist: typer[all] (>=0.15.2,<0.16.0)
25
25
  Description-Content-Type: text/markdown
26
26
 
27
27
  # Introduction
@@ -1,14 +1,14 @@
1
- thestage/__init__.py,sha256=2AyzlmhzrqADr8xt8n54FzyseX-iUutY-ndNo6UGbLg,65
1
+ thestage/__init__.py,sha256=jF3zpsm_hT2fThFl_9xh6OFpHhG5nMHLJtncxIQBu1A,65
2
2
  thestage/__main__.py,sha256=4ObdWrDRaIASaR06IxtFSsoMu58eyL0MnD64habvPj8,101
3
- thestage/color_scheme/color_scheme.py,sha256=cL2SwCCCME2sy9n1ve6dakUFIENnFZCVQyvg6EAe3ew,115
3
+ thestage/color_scheme/color_scheme.py,sha256=qaSSS_OzPsqI7yV1TC3Ne0PnsWDWo5xqU8j_7JYG-TI,210
4
4
  thestage/config/__init__.py,sha256=RNobilYVK1WAM1utcQ8ZuATKc9Zh9M9BAjCLZTnR_TA,428
5
5
  thestage/config/env_base.py,sha256=RNBQ17yk1ieu1kdUlM7Qe7mDCoxstgGUwwhe265o4dQ,367
6
6
  thestage/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  thestage/controllers/base_controller.py,sha256=lX0XsBc7ZEPD_I56cN8IBAVuWGIkOkr7JHvist3_FEM,2135
8
8
  thestage/controllers/config_controller.py,sha256=Gzd61UeU1igFT4QUyrZ4dOo_QaNEuXuSEIroXpbBhPA,5365
9
- thestage/controllers/container_controller.py,sha256=C3WC-Ypeg-vpC8LyCcPZVszbiaDYf2aQzTxYC2PPG8g,15210
10
- thestage/controllers/instance_controller.py,sha256=pFhkO7U2Ta0_1dzskEj8hbE7Izw_7I4SDbq5O5-bfIY,9757
11
- thestage/controllers/project_controller.py,sha256=yxYBed4fHGjw9ofQSXNg2TUPobGrFj9lb5_iHATuYfA,34274
9
+ thestage/controllers/container_controller.py,sha256=sSjrkjCQtn-DQJTeUCYYdzwOoGIGniA-MQ3y3BleVsE,14967
10
+ thestage/controllers/instance_controller.py,sha256=3jaM7bYICviAl9_rgkt4S1v9S-bEAAJ18qKDzuMpZlQ,6687
11
+ thestage/controllers/project_controller.py,sha256=ueQJI7lAwwPMJa7evVg_unUnAsTmgz204veOQIxFWSU,31778
12
12
  thestage/controllers/utils_controller.py,sha256=FV35yte7jTZRzy2DaL3OZCNzmlVrsNKxksC8P0FD7hM,1030
13
13
  thestage/debug_main.dist.py,sha256=UPIJ58yf-6FtXZj-FLAwxi7HononseuCYm9xb5KlxTs,783
14
14
  thestage/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -41,7 +41,7 @@ thestage/helpers/logger/app_logger.py,sha256=hUuxgUsj4pl9Ogjt1xJePTf71iVxKzyx46d
41
41
  thestage/helpers/ssh_util.py,sha256=JuDwddHxEGcA24Y8a-jLv339cG-jq4hEaBAl5TSVVFw,1262
42
42
  thestage/i18n/en_GB/messages.po,sha256=BuVIhd5TRQkgFkAbTGvbSRuO88lSJGpnk9TT2J9BC8E,32375
43
43
  thestage/i18n/translation.py,sha256=c62OicQ4phSMuqDe7hqGebIsk0W2-8ZJUfgfdtjjqEc,284
44
- thestage/main.py,sha256=3gHKEbOmpUTT5byvD9gPgT2uoaijAJUoa7G5dSnVlbs,784
44
+ thestage/main.py,sha256=qjlm4kSgT4Gnr4kyjYmHypj0RTk90JYHscP1w8P1Zwg,935
45
45
  thestage/services/.env,sha256=K2VpzFAVjD75XawAHZdR0HWmypryA_mXNY4WHNgR-wQ,184
46
46
  thestage/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  thestage/services/abstract_mapper.py,sha256=_q7YLkPNRsNW5wOCqvZIu1KfpLkc7uVaAQKrMZtsGuY,218
@@ -50,9 +50,9 @@ thestage/services/app_config_service.py,sha256=a7zrbVCJx6XCSRCMv346AYQ_gV3fzw8g7
50
50
  thestage/services/clients/.DS_Store,sha256=EYALnKLNXhZ-2jJTMck8Fo1bIxlFCvaXGUUUf-lgHxM,6148
51
51
  thestage/services/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  thestage/services/clients/git/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- thestage/services/clients/git/git_client.py,sha256=-5WSoDj0Fi6PJD_Eo04ne83Z6IGQ85qa4eVmIsLnpb4,11737
53
+ thestage/services/clients/git/git_client.py,sha256=y1ZHgFu5l6tQ3l7SCJVLP81VDGTkCWofhOsVruZwJHo,12716
54
54
  thestage/services/clients/thestage_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- thestage/services/clients/thestage_api/api_client.py,sha256=FeP9ltSZqrra5j9PTy-JBIw3S-LOWG_q9CddXsmtBV4,29596
55
+ thestage/services/clients/thestage_api/api_client.py,sha256=W28SETPflYnOQgb0WoGaleqYtR8EtiOYllcOqUbK-pE,29336
56
56
  thestage/services/clients/thestage_api/core/api_client_abstract.py,sha256=nJ0OiT4Ecexp-3HHK332pvyzrf1JsZ1WQYdvn-aeIL8,2984
57
57
  thestage/services/clients/thestage_api/core/api_client_core.py,sha256=WwtzdTAxog-l2UU8Up40BxepgM7OTXn-XHgzlHorXT0,908
58
58
  thestage/services/clients/thestage_api/core/http_client_exception.py,sha256=JH-874Gu9T1b1_FpPBLqdyt9U0PyhpwRCe_oDc6c_jI,385
@@ -131,19 +131,19 @@ thestage/services/clients/thestage_api/dtos/task_controller/task_list_for_projec
131
131
  thestage/services/clients/thestage_api/dtos/task_controller/task_list_for_project_response.py,sha256=r2R2efDZmaAyfiNs_kuftpgaP-j6VWpKnA1qkHDQfII,466
132
132
  thestage/services/clients/thestage_api/dtos/task_controller/task_status_localized_map_response.py,sha256=Q0YahAKtlWIV0l2XXEwzjjyORchPlBolA2xXZ8c3zpw,285
133
133
  thestage/services/clients/thestage_api/dtos/task_controller/task_view_response.py,sha256=30P19Fipas4wzHguvzmxsAoDkKcGNbcKQ_SjJOQVsq8,462
134
- thestage/services/clients/thestage_api/dtos/user_profile.py,sha256=kWnGeYKe4umMzWBqzk0y0aWx8czZ-zs2WRvVRSopcFA,286
134
+ thestage/services/clients/thestage_api/dtos/user_controller/user_profile.py,sha256=cDH5azyVBXi3V7kIOEuzsF1aKONQnxcI7YsDwXjRmuE,268
135
135
  thestage/services/config_provider/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
- thestage/services/config_provider/config_provider.py,sha256=7vVCwQO-LsY4erkOcl6PG5A-ZrZx7HulFCz7Ncv9OCo,9729
137
- thestage/services/connect/connect_service.py,sha256=6XK2ttKSAly3Vh0SOwM2FVY0OHyjp61XUpTKagX51NI,9508
136
+ thestage/services/config_provider/config_provider.py,sha256=_BNP_pAw40deKyMzDuTR6ze3on-NCxR_yKwl8ZcoUEU,9115
137
+ thestage/services/connect/connect_service.py,sha256=bVUqHh3-AdEhNmh0iRmgBIuR3z7k7rAkE5ldH9dHA5U,9916
138
138
  thestage/services/connect/dto/remote_server_config.py,sha256=yuO0tTAgUxCiQ-h1nVvWUMlCUtR-WB_eOH6KYspV7zQ,272
139
139
  thestage/services/container/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
140
- thestage/services/container/container_service.py,sha256=1ZVoGpdxQqU0dRuL-Zxh3Y6h8CPcymVEK8CqfyCuCw0,14767
140
+ thestage/services/container/container_service.py,sha256=wqgteC2fVue0rCKnZIRPyhGH3Is1L2E2nMt8i0wYlyA,14759
141
141
  thestage/services/container/mapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
142
  thestage/services/container/mapper/container_mapper.py,sha256=ymIjBLGZnpodh0W2KwNUqRxT0VgM1hsCViNza1nhWHk,1088
143
- thestage/services/core_files/config_entity.py,sha256=RlTNEWEgKs7WvI7291tAXhKHb2XROgoilIR4eImqM60,1150
144
- thestage/services/filesystem_service.py,sha256=jWo2Pwfrm3EiMY6S95zrkczLPhgyS7L5_8_ZRRa4KJ8,4226
143
+ thestage/services/core_files/config_entity.py,sha256=qMMjqQrTQmlts93r_NunR5na5uScc526NV9_a3SgPVQ,867
144
+ thestage/services/filesystem_service.py,sha256=U_-U7UcTMFwJeYu-iD8OVYQgcKjTnnrENKVqfDqQwY4,4832
145
145
  thestage/services/instance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
- thestage/services/instance/instance_service.py,sha256=AuhU__G1iBvxiHTp7OadgiRCpuOHbzcVW6ZlcsIw4ME,9270
146
+ thestage/services/instance/instance_service.py,sha256=cAuyDozqVNy9FkyQqMu037LghqaUeFfmR9kGbUxLhY4,13371
147
147
  thestage/services/instance/mapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
148
  thestage/services/instance/mapper/instance_mapper.py,sha256=OA0-Z6ODfAK1yBjf7nF-JDKERr8lZUm5vYKk_TFw-v8,1132
149
149
  thestage/services/instance/mapper/selfhosted_mapper.py,sha256=KpkvsDV0OWzHhN53md4mgo3xc8siM5idDwL_pSRTouE,1286
@@ -152,7 +152,7 @@ thestage/services/logging/dto/log_message.py,sha256=k2clfz2fQnQ-ycFI8g8WYJ_XOjK0
152
152
  thestage/services/logging/dto/log_type.py,sha256=a6JWnq0ZjJ-2BQrG-fKYYy3UeJS2U2ZzE5P_EXglBfE,95
153
153
  thestage/services/logging/exception/log_polling_exception.py,sha256=rKQ7AtNCGKkk5OINIyyjvLT92PU5i_yJUH-Msr9hXQw,226
154
154
  thestage/services/logging/logging_constants.py,sha256=4Gk2tglHW_-jnjB8uVIh-ds4fAVBqNW8igfQt8k7Quc,137
155
- thestage/services/logging/logging_service.py,sha256=nan5ycoaKbNyJx0lcxO99zJFVxNtV_rHfjBIqJqXQ6w,18576
155
+ thestage/services/logging/logging_service.py,sha256=V790CqOSgSMKTwMMkLzAViprtQ4e5jM1jw4Xd8v3zAU,18566
156
156
  thestage/services/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
157
  thestage/services/project/dto/inference_simulator_dto.py,sha256=5U4uGp7VC1Yr-T0fqZiSNqZUIybs4J9sV25vjBbAUxI,1312
158
158
  thestage/services/project/dto/inference_simulator_model_dto.py,sha256=j4dT-7cduzLd59QnmnfQt_aFsiUucpyJFGb-9rNx5K8,1172
@@ -161,13 +161,13 @@ thestage/services/project/mapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
161
161
  thestage/services/project/mapper/project_inference_simulator_mapper.py,sha256=UdOu9IIF5rlNPoWSaaeSKU3ODe8E5uSMgm2V5ywMWKE,812
162
162
  thestage/services/project/mapper/project_inference_simulator_model_mapper.py,sha256=PWY0iWbXhvD-G0X0_aQZAFY2bqc0lvRJcQAyC8Y-88Q,869
163
163
  thestage/services/project/mapper/project_task_mapper.py,sha256=SHIEXjYwt4vm2B1X2QiI4sCPbBarum0bTOnmTWPOlto,813
164
- thestage/services/project/project_service.py,sha256=KWcYzYZL56QSoYiwkresglGeDKvYSlUXlQqBjTVAQBo,50927
165
- thestage/services/remote_server_service.py,sha256=3VPgd9ckxXOxXGGvb3JeJ0LwuZx2gd2jWn3Pf-CxqVk,23264
166
- thestage/services/service_factory.py,sha256=tWbFFDO6TeOz5jSYbe-OabqTmsjR9Xs1OZmd49Aj3g0,5098
164
+ thestage/services/project/project_service.py,sha256=dvWKLV0M5LieO4v0Kye4wQbs-kQmGhifomCsmpxhEBM,59743
165
+ thestage/services/remote_server_service.py,sha256=AsTzlI7mvlJpqFqrhn4o9l3CYliLgeq3GQdyaZ17m9c,23256
166
+ thestage/services/service_factory.py,sha256=Hx9DeFP3x3FDj2g9FCuUnAQSUEfZbJGli_WD805wg40,5082
167
167
  thestage/services/task/dto/task_dto.py,sha256=PJwrUsLLAoO2uA9xvzb27b9iYAoNiBcsHSxKERh2VFo,2335
168
- thestage/services/validation_service.py,sha256=ABb-ok-SGITE6jm8AR1hiYHYgGZL7ri02Yi0OCXbofo,2008
169
- thestage-0.5.43.dist-info/LICENSE.txt,sha256=U9QrxfdD7Ie7r8z1FleuvOGQvgCF1m0Mjd78cFvWaHE,572
170
- thestage-0.5.43.dist-info/METADATA,sha256=rDmxq80SVJmJ-ZTPqL1TabIKTDcy7ql1t9Nll3qbP8M,5557
171
- thestage-0.5.43.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
172
- thestage-0.5.43.dist-info/entry_points.txt,sha256=57pMhs8zaCM-jgeTffC0WVqCsh35Uq_dUDmzXR80CI4,47
173
- thestage-0.5.43.dist-info/RECORD,,
168
+ thestage/services/validation_service.py,sha256=RFVZA_Ri2bzOBKGz6qs5WHK8Z7wVNUMjuj8uRz38YbU,1798
169
+ thestage-0.5.45.dist-info/LICENSE.txt,sha256=U9QrxfdD7Ie7r8z1FleuvOGQvgCF1m0Mjd78cFvWaHE,572
170
+ thestage-0.5.45.dist-info/METADATA,sha256=nrVxlmjYX1TjrTIIAjbQFWLwLvoH4XaJuUSptgY6yFk,5558
171
+ thestage-0.5.45.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
172
+ thestage-0.5.45.dist-info/entry_points.txt,sha256=57pMhs8zaCM-jgeTffC0WVqCsh35Uq_dUDmzXR80CI4,47
173
+ thestage-0.5.45.dist-info/RECORD,,