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.
- thestage/__init__.py +1 -1
- thestage/color_scheme/color_scheme.py +2 -1
- thestage/controllers/container_controller.py +0 -3
- thestage/controllers/instance_controller.py +8 -75
- thestage/controllers/project_controller.py +92 -128
- thestage/main.py +6 -1
- thestage/services/clients/git/git_client.py +42 -24
- thestage/services/clients/thestage_api/api_client.py +16 -38
- thestage/services/clients/thestage_api/dtos/{user_profile.py → user_controller/user_profile.py} +6 -3
- thestage/services/config_provider/config_provider.py +10 -29
- thestage/services/connect/connect_service.py +12 -5
- thestage/services/container/container_service.py +2 -2
- thestage/services/core_files/config_entity.py +2 -7
- thestage/services/filesystem_service.py +20 -2
- thestage/services/instance/instance_service.py +100 -6
- thestage/services/logging/logging_service.py +1 -1
- thestage/services/project/project_service.py +202 -8
- thestage/services/remote_server_service.py +2 -2
- thestage/services/service_factory.py +4 -4
- thestage/services/validation_service.py +0 -6
- {thestage-0.5.43.dist-info → thestage-0.5.45.dist-info}/METADATA +2 -2
- {thestage-0.5.43.dist-info → thestage-0.5.45.dist-info}/RECORD +25 -25
- {thestage-0.5.43.dist-info → thestage-0.5.45.dist-info}/LICENSE.txt +0 -0
- {thestage-0.5.43.dist-info → thestage-0.5.45.dist-info}/WHEEL +0 -0
- {thestage-0.5.43.dist-info → thestage-0.5.45.dist-info}/entry_points.txt +0 -0
|
@@ -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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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[
|
|
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) ->
|
|
87
|
+
def get_file_system_service(self) -> FileSystemService:
|
|
88
88
|
if not self.__file_system_service:
|
|
89
|
-
self.__file_system_service =
|
|
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.
|
|
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.
|
|
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=
|
|
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=
|
|
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=
|
|
10
|
-
thestage/controllers/instance_controller.py,sha256=
|
|
11
|
-
thestage/controllers/project_controller.py,sha256=
|
|
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=
|
|
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
|
|
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=
|
|
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=
|
|
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=
|
|
137
|
-
thestage/services/connect/connect_service.py,sha256=
|
|
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=
|
|
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=
|
|
144
|
-
thestage/services/filesystem_service.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
165
|
-
thestage/services/remote_server_service.py,sha256=
|
|
166
|
-
thestage/services/service_factory.py,sha256=
|
|
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=
|
|
169
|
-
thestage-0.5.
|
|
170
|
-
thestage-0.5.
|
|
171
|
-
thestage-0.5.
|
|
172
|
-
thestage-0.5.
|
|
173
|
-
thestage-0.5.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|