thestage 0.5.43__py3-none-any.whl → 0.5.44__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/project_controller.py +89 -7
- thestage/services/clients/git/git_client.py +40 -22
- thestage/services/clients/thestage_api/api_client.py +1 -1
- thestage/services/filesystem_service.py +1 -0
- thestage/services/logging/logging_service.py +1 -1
- thestage/services/project/project_service.py +61 -6
- {thestage-0.5.43.dist-info → thestage-0.5.44.dist-info}/METADATA +1 -1
- {thestage-0.5.43.dist-info → thestage-0.5.44.dist-info}/RECORD +13 -13
- {thestage-0.5.43.dist-info → thestage-0.5.44.dist-info}/LICENSE.txt +0 -0
- {thestage-0.5.43.dist-info → thestage-0.5.44.dist-info}/WHEEL +0 -0
- {thestage-0.5.43.dist-info → thestage-0.5.44.dist-info}/entry_points.txt +0 -0
thestage/__init__.py
CHANGED
|
@@ -183,6 +183,34 @@ def run(
|
|
|
183
183
|
raise typer.Exit(0)
|
|
184
184
|
|
|
185
185
|
|
|
186
|
+
@task_app.command(name='cancel', no_args_is_help=True, help=__("Cancel a task by ID"))
|
|
187
|
+
def cancel_task(
|
|
188
|
+
task_id: Annotated[int, typer.Argument(
|
|
189
|
+
help=__("Task ID (required)"),
|
|
190
|
+
)],
|
|
191
|
+
):
|
|
192
|
+
"""
|
|
193
|
+
Cancels a task
|
|
194
|
+
"""
|
|
195
|
+
app_logger.info(f'Start cancel task from {get_current_directory()}')
|
|
196
|
+
|
|
197
|
+
if not task_id:
|
|
198
|
+
typer.echo(__('Task ID is required'))
|
|
199
|
+
raise typer.Exit(1)
|
|
200
|
+
|
|
201
|
+
service_factory = validate_config_and_get_service_factory()
|
|
202
|
+
config = service_factory.get_config_provider().get_full_config()
|
|
203
|
+
|
|
204
|
+
project_service = service_factory.get_project_service()
|
|
205
|
+
|
|
206
|
+
project_service.cancel_task(
|
|
207
|
+
config=config,
|
|
208
|
+
task_id=task_id
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
raise typer.Exit(0)
|
|
212
|
+
|
|
213
|
+
|
|
186
214
|
@task_app.command("ls", help=__("List tasks"))
|
|
187
215
|
def list_runs(
|
|
188
216
|
project_uid: Annotated[str, typer.Argument(help=__("Project unique ID. By default, project info is taken from the current directory"), metavar="OPTIONAL")] = None,
|
|
@@ -287,9 +315,9 @@ def checkout_project(
|
|
|
287
315
|
),
|
|
288
316
|
):
|
|
289
317
|
"""
|
|
290
|
-
|
|
318
|
+
Checkout project in current working directory
|
|
291
319
|
"""
|
|
292
|
-
app_logger.info(f'Start project
|
|
320
|
+
app_logger.info(f'Start project checkout from {get_current_directory()}')
|
|
293
321
|
|
|
294
322
|
service_factory = validate_config_and_get_service_factory(working_directory=working_directory)
|
|
295
323
|
config = service_factory.get_config_provider().get_full_config()
|
|
@@ -315,11 +343,8 @@ def checkout_project(
|
|
|
315
343
|
raise typer.Exit(0)
|
|
316
344
|
|
|
317
345
|
|
|
318
|
-
@
|
|
319
|
-
def
|
|
320
|
-
container_uid: Annotated[Optional[str], typer.Argument(
|
|
321
|
-
help=__("Unique ID of the container to use by default for running tasks"),
|
|
322
|
-
)] = None,
|
|
346
|
+
@app.command(name='pull', help=__("Pulls the changes from the remote project repository. Equivalent to 'git pull'."))
|
|
347
|
+
def pull_project(
|
|
323
348
|
working_directory: Optional[str] = typer.Option(
|
|
324
349
|
None,
|
|
325
350
|
"--working-directory",
|
|
@@ -327,6 +352,56 @@ def set_default_container(
|
|
|
327
352
|
help=__("Full path to working directory"),
|
|
328
353
|
is_eager=False,
|
|
329
354
|
),
|
|
355
|
+
):
|
|
356
|
+
"""
|
|
357
|
+
Pull project in current working directory
|
|
358
|
+
"""
|
|
359
|
+
app_logger.info(f'Start project pull from {get_current_directory()}')
|
|
360
|
+
|
|
361
|
+
service_factory = validate_config_and_get_service_factory(working_directory=working_directory)
|
|
362
|
+
config = service_factory.get_config_provider().get_full_config()
|
|
363
|
+
|
|
364
|
+
project_service = service_factory.get_project_service()
|
|
365
|
+
|
|
366
|
+
project_service.pull_project(
|
|
367
|
+
config=config,
|
|
368
|
+
)
|
|
369
|
+
|
|
370
|
+
raise typer.Exit(0)
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
@app.command(name='reset', help=__("Resets the current project branch to remote counterpart. All working tree changes will be lost. Equivalent to 'git fetch && git reset --hard origin/{ref}'."))
|
|
374
|
+
def reset_project(
|
|
375
|
+
working_directory: Optional[str] = typer.Option(
|
|
376
|
+
None,
|
|
377
|
+
"--working-directory",
|
|
378
|
+
"-wd",
|
|
379
|
+
help=__("Full path to working directory"),
|
|
380
|
+
is_eager=False,
|
|
381
|
+
),
|
|
382
|
+
):
|
|
383
|
+
"""
|
|
384
|
+
Pull project in current working directory
|
|
385
|
+
"""
|
|
386
|
+
app_logger.info(f'Start project pull from {get_current_directory()}')
|
|
387
|
+
|
|
388
|
+
service_factory = validate_config_and_get_service_factory(working_directory=working_directory)
|
|
389
|
+
config = service_factory.get_config_provider().get_full_config()
|
|
390
|
+
|
|
391
|
+
project_service = service_factory.get_project_service()
|
|
392
|
+
|
|
393
|
+
project_service.reset_project(
|
|
394
|
+
config=config
|
|
395
|
+
)
|
|
396
|
+
|
|
397
|
+
raise typer.Exit(0)
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
@config_app.command(name='set-default-container', no_args_is_help=True, help=__("Set default docker container for a project installation"))
|
|
401
|
+
def set_default_container(
|
|
402
|
+
container_uid: Annotated[Optional[str], typer.Argument(
|
|
403
|
+
help=__("Unique ID of the container to use by default for running tasks"),
|
|
404
|
+
)] = None,
|
|
330
405
|
unset_default_container: Optional[bool] = typer.Option(
|
|
331
406
|
False,
|
|
332
407
|
"--unset",
|
|
@@ -334,6 +409,13 @@ def set_default_container(
|
|
|
334
409
|
help=__("Unsets the default docker container"),
|
|
335
410
|
is_eager=False,
|
|
336
411
|
),
|
|
412
|
+
working_directory: Optional[str] = typer.Option(
|
|
413
|
+
None,
|
|
414
|
+
"--working-directory",
|
|
415
|
+
"-wd",
|
|
416
|
+
help=__("Full path to working directory"),
|
|
417
|
+
is_eager=False,
|
|
418
|
+
),
|
|
337
419
|
):
|
|
338
420
|
"""
|
|
339
421
|
Initializes project in current working directory
|
|
@@ -10,6 +10,7 @@ from gitdb.exc import BadName
|
|
|
10
10
|
from rich import print
|
|
11
11
|
|
|
12
12
|
from thestage.color_scheme.color_scheme import ColorScheme
|
|
13
|
+
from thestage.config import THESTAGE_CONFIG_DIR
|
|
13
14
|
from thestage.exceptions.git_access_exception import GitAccessException
|
|
14
15
|
from thestage.git.ProgressPrinter import ProgressPrinter
|
|
15
16
|
from thestage.services.filesystem_service import FileSystemServiceCore
|
|
@@ -18,7 +19,7 @@ from thestage.services.filesystem_service import FileSystemServiceCore
|
|
|
18
19
|
class GitLocalClient:
|
|
19
20
|
__base_name_remote: str = 'origin'
|
|
20
21
|
__base_name_local: str = 'main'
|
|
21
|
-
__git_ignore_thestage_line: str = '
|
|
22
|
+
__git_ignore_thestage_line: str = f'/{THESTAGE_CONFIG_DIR}/'
|
|
22
23
|
|
|
23
24
|
__special_main_branches = ['main', 'master']
|
|
24
25
|
|
|
@@ -30,6 +31,7 @@ class GitLocalClient:
|
|
|
30
31
|
):
|
|
31
32
|
self.__file_system_service = file_system_service
|
|
32
33
|
|
|
34
|
+
# todo delete this fuckery
|
|
33
35
|
def __get_repo(self, path: str) -> Repo:
|
|
34
36
|
return git.Repo(path)
|
|
35
37
|
|
|
@@ -105,32 +107,37 @@ class GitLocalClient:
|
|
|
105
107
|
with repo.git.custom_environment(GIT_SSH_COMMAND=git_ssh_cmd):
|
|
106
108
|
remote: Remote = repo.remote(self.__base_name_remote)
|
|
107
109
|
if remote:
|
|
110
|
+
progress = ProgressPrinter()
|
|
108
111
|
try:
|
|
109
|
-
remote.fetch()
|
|
110
|
-
except GitCommandError as
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
else:
|
|
119
|
-
raise base_ex
|
|
120
|
-
|
|
121
|
-
def git_pull(self, path: str, deploy_key_path: str, branch: Optional[str] = None):
|
|
112
|
+
remote.fetch(progress=progress)
|
|
113
|
+
except GitCommandError as ex:
|
|
114
|
+
for line in progress.allDroppedLines():
|
|
115
|
+
# returning the whole output if failed - so that user have any idea what's going on
|
|
116
|
+
print(f'>> {line}')
|
|
117
|
+
raise ex
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def git_pull(self, path: str, deploy_key_path: str):
|
|
122
121
|
repo = self.__get_repo(path=path)
|
|
123
122
|
git_ssh_cmd = 'ssh -F /dev/null -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -i %s' % deploy_key_path
|
|
124
123
|
|
|
125
124
|
with repo.git.custom_environment(GIT_SSH_COMMAND=git_ssh_cmd):
|
|
126
125
|
local_branch = self.__base_name_local
|
|
127
|
-
if
|
|
128
|
-
|
|
129
|
-
local_branch = branch.replace(f"{self.__base_name_remote}/", '').strip()
|
|
130
|
-
else:
|
|
131
|
-
local_branch = branch
|
|
126
|
+
if repo.active_branch.name:
|
|
127
|
+
local_branch = repo.active_branch.name
|
|
132
128
|
|
|
133
|
-
repo.
|
|
129
|
+
origin = repo.remote(self.__base_name_remote)
|
|
130
|
+
|
|
131
|
+
if origin:
|
|
132
|
+
progress = ProgressPrinter()
|
|
133
|
+
try:
|
|
134
|
+
origin.pull(refspec=local_branch, progress=progress)
|
|
135
|
+
typer.echo(f"Pulled remote changes to branch '{local_branch}'")
|
|
136
|
+
except GitCommandError as ex:
|
|
137
|
+
for line in progress.allDroppedLines():
|
|
138
|
+
# returning the whole output if failed - so that user have any idea what's going on
|
|
139
|
+
print(f'>> {line}')
|
|
140
|
+
raise ex
|
|
134
141
|
|
|
135
142
|
def find_main_branch_name(self, path: str) -> Optional[str]:
|
|
136
143
|
repo = self.__get_repo(path=path)
|
|
@@ -275,10 +282,16 @@ class GitLocalClient:
|
|
|
275
282
|
if repo:
|
|
276
283
|
return repo.head.is_detached
|
|
277
284
|
|
|
278
|
-
def reset_hard(self, path: str):
|
|
285
|
+
def reset_hard(self, path: str, deploy_key_path: str, reset_to_origin: bool):
|
|
279
286
|
repo = self.__get_repo(path=path)
|
|
280
287
|
if repo:
|
|
281
|
-
|
|
288
|
+
git_ssh_cmd = 'ssh -F /dev/null -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -i %s' % deploy_key_path
|
|
289
|
+
with repo.git.custom_environment(GIT_SSH_COMMAND=git_ssh_cmd):
|
|
290
|
+
if reset_to_origin:
|
|
291
|
+
repo.git.reset('--hard', f'origin/{repo.active_branch.name}')
|
|
292
|
+
typer.echo(f'Branch "{repo.active_branch.name}" is now synced to its remote counterpart')
|
|
293
|
+
else:
|
|
294
|
+
typer.echo('simple branch reset is not implemented')
|
|
282
295
|
|
|
283
296
|
# refers to a "headless commit" where something was committed while in detached head state and head is pointing at that commit
|
|
284
297
|
def is_head_committed_in_headless_state(self, path: str) -> bool:
|
|
@@ -297,6 +310,11 @@ class GitLocalClient:
|
|
|
297
310
|
for branch in repo.heads:
|
|
298
311
|
if branch.name == branch_name:
|
|
299
312
|
return True
|
|
313
|
+
|
|
314
|
+
for ref in repo.remotes.origin.refs:
|
|
315
|
+
if ref.remote_head == branch_name:
|
|
316
|
+
typer.echo(f'Found remote branch "{branch_name}"')
|
|
317
|
+
return True
|
|
300
318
|
return False
|
|
301
319
|
|
|
302
320
|
def checkout_to_new_branch(self, path: str, branch_name: str):
|
|
@@ -361,7 +361,7 @@ class TheStageApiClient(TheStageApiClientCore):
|
|
|
361
361
|
result = UserProfileResponse.model_validate(response) if response else None
|
|
362
362
|
return result if result else None
|
|
363
363
|
|
|
364
|
-
def
|
|
364
|
+
def cancel_task(
|
|
365
365
|
self,
|
|
366
366
|
token: str,
|
|
367
367
|
task_id: int,
|
|
@@ -151,7 +151,7 @@ class LoggingService(AbstractService):
|
|
|
151
151
|
print_logs_task.cancel()
|
|
152
152
|
if not input_task.result(): # result is only expected if ctrl+D triggered EOFError
|
|
153
153
|
typer.echo(f"\rTask {task_id} will be canceled")
|
|
154
|
-
self.__thestage_api_client.
|
|
154
|
+
self.__thestage_api_client.cancel_task(
|
|
155
155
|
token=config.main.thestage_auth_token,
|
|
156
156
|
task_id=task.id,
|
|
157
157
|
)
|
|
@@ -148,11 +148,6 @@ class ProjectService(AbstractService):
|
|
|
148
148
|
|
|
149
149
|
self.__git_local_client.git_fetch(path=config.runtime.working_directory, deploy_key_path=deploy_key_path)
|
|
150
150
|
|
|
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
151
|
self.__git_local_client.init_gitignore(path=config.runtime.working_directory)
|
|
157
152
|
|
|
158
153
|
self.__git_local_client.git_add_all(repo_path=config.runtime.working_directory)
|
|
@@ -401,6 +396,19 @@ class ProjectService(AbstractService):
|
|
|
401
396
|
typer.echo("The task failed with an error")
|
|
402
397
|
raise typer.Exit(1)
|
|
403
398
|
|
|
399
|
+
@error_handler()
|
|
400
|
+
def cancel_task(self, task_id: int, config: ConfigEntity):
|
|
401
|
+
cancel_result = self.__thestage_api_client.cancel_task(
|
|
402
|
+
token=config.main.thestage_auth_token,
|
|
403
|
+
task_id=task_id,
|
|
404
|
+
)
|
|
405
|
+
|
|
406
|
+
if cancel_result.is_success:
|
|
407
|
+
typer.echo(f'Task {task_id} has been canceled')
|
|
408
|
+
else:
|
|
409
|
+
typer.echo(f'Task {task_id} could not be canceled: {cancel_result.message}')
|
|
410
|
+
|
|
411
|
+
|
|
404
412
|
@error_handler()
|
|
405
413
|
def project_run_inference_simulator(
|
|
406
414
|
self,
|
|
@@ -828,6 +836,8 @@ class ProjectService(AbstractService):
|
|
|
828
836
|
typer.echo("No main branch found")
|
|
829
837
|
|
|
830
838
|
|
|
839
|
+
|
|
840
|
+
|
|
831
841
|
@error_handler()
|
|
832
842
|
def set_default_container(self, config: ConfigEntity, container_uid: Optional[str]):
|
|
833
843
|
project_config: ProjectConfig = self.__config_provider.read_project_config()
|
|
@@ -880,6 +890,8 @@ class ProjectService(AbstractService):
|
|
|
880
890
|
typer.echo(f"No project found in working directory")
|
|
881
891
|
raise typer.Exit(1)
|
|
882
892
|
|
|
893
|
+
is_deploy_key_exists = project_config.deploy_key_path and self.__file_system_service.check_if_path_exist(project_config.deploy_key_path)
|
|
894
|
+
|
|
883
895
|
typer.echo(tabulate(
|
|
884
896
|
[
|
|
885
897
|
[
|
|
@@ -888,11 +900,20 @@ class ProjectService(AbstractService):
|
|
|
888
900
|
[
|
|
889
901
|
"Default docker container unique ID", project_config.default_container_uid if project_config.default_container_uid else "<None>"
|
|
890
902
|
],
|
|
903
|
+
[
|
|
904
|
+
"Deploy key path", project_config.deploy_key_path if is_deploy_key_exists else "<None>"
|
|
905
|
+
],
|
|
891
906
|
],
|
|
892
907
|
showindex=False,
|
|
893
908
|
tablefmt="simple",
|
|
894
909
|
))
|
|
895
910
|
|
|
911
|
+
if is_deploy_key_exists:
|
|
912
|
+
typer.echo("")
|
|
913
|
+
typer.echo(f"You can insert the following text:")
|
|
914
|
+
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}]")
|
|
915
|
+
typer.echo(f"before any regular git command to manage your local Project repository directly")
|
|
916
|
+
|
|
896
917
|
@error_handler()
|
|
897
918
|
def __get_fixed_project_config(self, config: ConfigEntity) -> Optional[ProjectConfig]:
|
|
898
919
|
project_config: ProjectConfig = self.__config_provider.read_project_config()
|
|
@@ -1083,4 +1104,38 @@ class ProjectService(AbstractService):
|
|
|
1083
1104
|
|
|
1084
1105
|
except Exception as e:
|
|
1085
1106
|
typer.echo(__("Failed to deploy the inference simulator model to SageMaker: %error%", {"error": str(e)}))
|
|
1086
|
-
raise typer.Exit(1)
|
|
1107
|
+
raise typer.Exit(1)
|
|
1108
|
+
|
|
1109
|
+
|
|
1110
|
+
@error_handler()
|
|
1111
|
+
def pull_project(self, config: ConfigEntity):
|
|
1112
|
+
project_config: ProjectConfig = self.__get_fixed_project_config(config=config)
|
|
1113
|
+
if not project_config:
|
|
1114
|
+
typer.echo(__("No project found at the path: %path%. Please initialize or clone a project first.", {"path": config.runtime.working_directory}))
|
|
1115
|
+
raise typer.Exit(1)
|
|
1116
|
+
|
|
1117
|
+
typer.echo("Pulling code from remote repository...")
|
|
1118
|
+
self.__git_local_client.git_pull(
|
|
1119
|
+
path=config.runtime.working_directory,
|
|
1120
|
+
deploy_key_path=project_config.deploy_key_path,
|
|
1121
|
+
)
|
|
1122
|
+
|
|
1123
|
+
|
|
1124
|
+
@error_handler()
|
|
1125
|
+
def reset_project(self, config: ConfigEntity):
|
|
1126
|
+
project_config: ProjectConfig = self.__get_fixed_project_config(config=config)
|
|
1127
|
+
if not project_config:
|
|
1128
|
+
typer.echo(__("No project found at the path: %path%. Please initialize or clone a project first.", {"path": config.runtime.working_directory}))
|
|
1129
|
+
raise typer.Exit(1)
|
|
1130
|
+
|
|
1131
|
+
typer.echo("Fetching code from remote repository...")
|
|
1132
|
+
self.__git_local_client.git_fetch(
|
|
1133
|
+
path=config.runtime.working_directory,
|
|
1134
|
+
deploy_key_path=project_config.deploy_key_path,
|
|
1135
|
+
)
|
|
1136
|
+
typer.echo("Resetting local branch...")
|
|
1137
|
+
self.__git_local_client.reset_hard(
|
|
1138
|
+
path=config.runtime.working_directory,
|
|
1139
|
+
deploy_key_path=project_config.deploy_key_path,
|
|
1140
|
+
reset_to_origin=True
|
|
1141
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
thestage/__init__.py,sha256=
|
|
1
|
+
thestage/__init__.py,sha256=DhlhvDK-7GKoSl3QZHDW8oTMV7AnpgXhIye7Rw0LV10,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
|
|
@@ -8,7 +8,7 @@ thestage/controllers/base_controller.py,sha256=lX0XsBc7ZEPD_I56cN8IBAVuWGIkOkr7J
|
|
|
8
8
|
thestage/controllers/config_controller.py,sha256=Gzd61UeU1igFT4QUyrZ4dOo_QaNEuXuSEIroXpbBhPA,5365
|
|
9
9
|
thestage/controllers/container_controller.py,sha256=C3WC-Ypeg-vpC8LyCcPZVszbiaDYf2aQzTxYC2PPG8g,15210
|
|
10
10
|
thestage/controllers/instance_controller.py,sha256=pFhkO7U2Ta0_1dzskEj8hbE7Izw_7I4SDbq5O5-bfIY,9757
|
|
11
|
-
thestage/controllers/project_controller.py,sha256=
|
|
11
|
+
thestage/controllers/project_controller.py,sha256=GcfwJfn7_AfVBeGcm3jOVr38SOUT26yyyv91MyDX-YU,36725
|
|
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
|
|
@@ -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=2qARWz1VQBKZTG4Spdkx0wBf5oGyU3d9Hnqmeuz8Bbs,12724
|
|
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=ZkEbYOg79-RkG9on64tWTto1zXKnG38eKgIy7aS-2lc,29586
|
|
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
|
|
@@ -141,7 +141,7 @@ thestage/services/container/container_service.py,sha256=1ZVoGpdxQqU0dRuL-Zxh3Y6h
|
|
|
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
143
|
thestage/services/core_files/config_entity.py,sha256=RlTNEWEgKs7WvI7291tAXhKHb2XROgoilIR4eImqM60,1150
|
|
144
|
-
thestage/services/filesystem_service.py,sha256=
|
|
144
|
+
thestage/services/filesystem_service.py,sha256=UN5b5jtxeSAGM1yIDIyj3_Gfjixt_KsfqKSWG-gD49w,4270
|
|
145
145
|
thestage/services/instance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
146
146
|
thestage/services/instance/instance_service.py,sha256=AuhU__G1iBvxiHTp7OadgiRCpuOHbzcVW6ZlcsIw4ME,9270
|
|
147
147
|
thestage/services/instance/mapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -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=
|
|
164
|
+
thestage/services/project/project_service.py,sha256=q8j3JE2RhzBa1NiJ6PSfgClOSbpJhzGUN4Alv2Y_7FE,53246
|
|
165
165
|
thestage/services/remote_server_service.py,sha256=3VPgd9ckxXOxXGGvb3JeJ0LwuZx2gd2jWn3Pf-CxqVk,23264
|
|
166
166
|
thestage/services/service_factory.py,sha256=tWbFFDO6TeOz5jSYbe-OabqTmsjR9Xs1OZmd49Aj3g0,5098
|
|
167
167
|
thestage/services/task/dto/task_dto.py,sha256=PJwrUsLLAoO2uA9xvzb27b9iYAoNiBcsHSxKERh2VFo,2335
|
|
168
168
|
thestage/services/validation_service.py,sha256=ABb-ok-SGITE6jm8AR1hiYHYgGZL7ri02Yi0OCXbofo,2008
|
|
169
|
-
thestage-0.5.
|
|
170
|
-
thestage-0.5.
|
|
171
|
-
thestage-0.5.
|
|
172
|
-
thestage-0.5.
|
|
173
|
-
thestage-0.5.
|
|
169
|
+
thestage-0.5.44.dist-info/LICENSE.txt,sha256=U9QrxfdD7Ie7r8z1FleuvOGQvgCF1m0Mjd78cFvWaHE,572
|
|
170
|
+
thestage-0.5.44.dist-info/METADATA,sha256=ZFWB66Hr0zToO8AHTYEn-EibANQG09L_dBpBh0o-yaw,5557
|
|
171
|
+
thestage-0.5.44.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
|
172
|
+
thestage-0.5.44.dist-info/entry_points.txt,sha256=57pMhs8zaCM-jgeTffC0WVqCsh35Uq_dUDmzXR80CI4,47
|
|
173
|
+
thestage-0.5.44.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|