thestage 0.6.2__py3-none-any.whl → 0.6.3__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/.env +4 -5
- thestage/__init__.py +3 -3
- thestage/__main__.py +9 -9
- thestage/cli_command.py +56 -56
- thestage/cli_command_helper.py +51 -51
- thestage/color_scheme/color_scheme.py +7 -7
- thestage/config/__init__.py +18 -18
- thestage/config/config_storage.py +5 -5
- thestage/config/env_base.py +7 -7
- thestage/controllers/__init__.py +0 -0
- thestage/controllers/base_controller.py +67 -67
- thestage/controllers/config_controller.py +137 -137
- thestage/controllers/container_controller.py +389 -389
- thestage/controllers/instance_controller.py +183 -183
- thestage/controllers/project_controller.py +810 -810
- thestage/controllers/utils_controller.py +32 -32
- thestage/debug_main.dist.py +28 -28
- thestage/entities/__init__.py +0 -0
- thestage/entities/container.py +17 -17
- thestage/entities/enums/__init__.py +0 -0
- thestage/entities/enums/order_direction_type.py +6 -6
- thestage/entities/enums/shell_type.py +7 -7
- thestage/entities/enums/tail_output_type.py +6 -6
- thestage/entities/enums/yes_no_response.py +7 -7
- thestage/entities/file_item.py +27 -27
- thestage/entities/project_inference_simulator.py +18 -18
- thestage/entities/project_inference_simulator_model.py +16 -16
- thestage/entities/project_task.py +19 -19
- thestage/entities/rented_instance.py +19 -19
- thestage/entities/self_hosted_instance.py +18 -18
- thestage/exceptions/__init__.py +0 -0
- thestage/exceptions/auth_exception.py +6 -6
- thestage/exceptions/base_exception.py +13 -13
- thestage/exceptions/business_logic_exception.py +6 -6
- thestage/exceptions/config_exception.py +6 -6
- thestage/exceptions/file_system_exception.py +6 -6
- thestage/exceptions/git_access_exception.py +17 -17
- thestage/exceptions/remote_server_exception.py +24 -24
- thestage/git/ProgressPrinter.py +22 -22
- thestage/helpers/__init__.py +0 -0
- thestage/helpers/error_handler.py +115 -115
- thestage/helpers/exception_hook.py +14 -14
- thestage/helpers/logger/__init__.py +0 -0
- thestage/helpers/logger/app_logger.py +50 -50
- thestage/helpers/ssh_util.py +38 -38
- thestage/i18n/en_GB/messages.po +947 -947
- thestage/i18n/translation.py +9 -9
- thestage/main.py +36 -36
- thestage/services/.env +6 -6
- thestage/services/__init__.py +0 -0
- thestage/services/abstract_mapper.py +9 -9
- thestage/services/abstract_service.py +87 -87
- thestage/services/app_config_service.py +52 -52
- thestage/services/clients/__init__.py +0 -0
- thestage/services/clients/git/__init__.py +0 -0
- thestage/services/clients/git/git_client.py +436 -436
- thestage/services/clients/thestage_api/__init__.py +0 -0
- thestage/services/clients/thestage_api/api_client.py +718 -718
- thestage/services/clients/thestage_api/core/api_client_core.py +108 -108
- thestage/services/clients/thestage_api/core/http_client_exception.py +12 -12
- thestage/services/clients/thestage_api/dtos/__init__.py +0 -0
- thestage/services/clients/thestage_api/dtos/base_response.py +13 -13
- thestage/services/clients/thestage_api/dtos/cloud_provider_region.py +19 -19
- thestage/services/clients/thestage_api/dtos/container_param_request.py +11 -11
- thestage/services/clients/thestage_api/dtos/container_response.py +67 -67
- thestage/services/clients/thestage_api/dtos/docker_container_assigned_device.py +10 -10
- thestage/services/clients/thestage_api/dtos/docker_container_controller/docker_container_list_request.py +13 -13
- thestage/services/clients/thestage_api/dtos/docker_container_controller/docker_container_list_response.py +13 -13
- thestage/services/clients/thestage_api/dtos/docker_container_mapping.py +10 -10
- thestage/services/clients/thestage_api/dtos/entity_filter_request.py +14 -14
- thestage/services/clients/thestage_api/dtos/enums/__init__.py +0 -0
- thestage/services/clients/thestage_api/dtos/enums/container_pending_action.py +10 -10
- thestage/services/clients/thestage_api/dtos/enums/container_status.py +17 -17
- thestage/services/clients/thestage_api/dtos/enums/cpu_type.py +8 -8
- thestage/services/clients/thestage_api/dtos/enums/currency_type.py +10 -10
- thestage/services/clients/thestage_api/dtos/enums/daemon_status.py +9 -9
- thestage/services/clients/thestage_api/dtos/enums/disk_type.py +7 -7
- thestage/services/clients/thestage_api/dtos/enums/drive_type.py +7 -7
- thestage/services/clients/thestage_api/dtos/enums/gpu_name.py +8 -8
- thestage/services/clients/thestage_api/dtos/enums/inference_model_status.py +9 -9
- thestage/services/clients/thestage_api/dtos/enums/inference_simulator_status.py +15 -15
- thestage/services/clients/thestage_api/dtos/enums/instance_rented_status.py +17 -17
- thestage/services/clients/thestage_api/dtos/enums/instance_type.py +7 -7
- thestage/services/clients/thestage_api/dtos/enums/location_region.py +11 -11
- thestage/services/clients/thestage_api/dtos/enums/power_status.py +10 -10
- thestage/services/clients/thestage_api/dtos/enums/provider_name.py +11 -11
- thestage/services/clients/thestage_api/dtos/enums/selfhosted_status.py +10 -10
- thestage/services/clients/thestage_api/dtos/enums/task_execution_status.py +12 -12
- thestage/services/clients/thestage_api/dtos/enums/task_status.py +12 -12
- thestage/services/clients/thestage_api/dtos/frontend_status.py +10 -10
- thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_instance_request.py +13 -13
- thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_instance_response.py +13 -13
- thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_sagemaker_request.py +12 -12
- thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_sagemaker_response.py +12 -12
- thestage/services/clients/thestage_api/dtos/inference_controller/get_inference_simulator_request.py +10 -10
- thestage/services/clients/thestage_api/dtos/inference_controller/get_inference_simulator_response.py +13 -13
- thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_list_for_project_request.py +14 -14
- thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_list_for_project_response.py +12 -12
- thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_model_list_for_project_request.py +12 -12
- thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_model_list_for_project_response.py +13 -13
- thestage/services/clients/thestage_api/dtos/inference_simulator_model_response.py +11 -11
- thestage/services/clients/thestage_api/dtos/inference_simulator_response.py +11 -11
- thestage/services/clients/thestage_api/dtos/installed_service.py +17 -17
- thestage/services/clients/thestage_api/dtos/instance_detected_gpus.py +20 -20
- thestage/services/clients/thestage_api/dtos/instance_rented_response.py +71 -71
- thestage/services/clients/thestage_api/dtos/logging_controller/docker_container_log_stream_request.py +7 -7
- thestage/services/clients/thestage_api/dtos/logging_controller/log_polling_request.py +13 -13
- thestage/services/clients/thestage_api/dtos/logging_controller/log_polling_response.py +14 -14
- thestage/services/clients/thestage_api/dtos/logging_controller/task_log_stream_request.py +7 -7
- thestage/services/clients/thestage_api/dtos/logging_controller/user_logs_query_request.py +21 -21
- thestage/services/clients/thestage_api/dtos/logging_controller/user_logs_query_response.py +14 -14
- thestage/services/clients/thestage_api/dtos/paginated_entity_list.py +11 -11
- thestage/services/clients/thestage_api/dtos/pagination_data.py +10 -10
- thestage/services/clients/thestage_api/dtos/price_definition.py +14 -14
- thestage/services/clients/thestage_api/dtos/project_controller/project_get_deploy_ssh_key_request.py +7 -7
- thestage/services/clients/thestage_api/dtos/project_controller/project_get_deploy_ssh_key_response.py +10 -10
- thestage/services/clients/thestage_api/dtos/project_controller/project_push_inference_simulator_model_request.py +8 -8
- thestage/services/clients/thestage_api/dtos/project_controller/project_push_inference_simulator_model_response.py +6 -6
- thestage/services/clients/thestage_api/dtos/project_controller/project_run_task_request.py +15 -15
- thestage/services/clients/thestage_api/dtos/project_controller/project_run_task_response.py +10 -10
- thestage/services/clients/thestage_api/dtos/project_controller/project_start_inference_simulator_request.py +13 -13
- thestage/services/clients/thestage_api/dtos/project_controller/project_start_inference_simulator_response.py +10 -10
- thestage/services/clients/thestage_api/dtos/project_response.py +32 -32
- thestage/services/clients/thestage_api/dtos/selfhosted_instance_response.py +56 -56
- thestage/services/clients/thestage_api/dtos/sftp_path_helper.py +13 -13
- thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_key_to_user_request.py +8 -8
- thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_key_to_user_response.py +11 -11
- thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_public_key_to_instance_request.py +8 -8
- thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_public_key_to_instance_response.py +11 -11
- thestage/services/clients/thestage_api/dtos/ssh_key_controller/is_user_has_public_ssh_key_request.py +7 -7
- thestage/services/clients/thestage_api/dtos/ssh_key_controller/is_user_has_public_ssh_key_response.py +12 -12
- thestage/services/clients/thestage_api/dtos/task_controller/task_list_for_project_request.py +10 -10
- thestage/services/clients/thestage_api/dtos/task_controller/task_list_for_project_response.py +12 -12
- thestage/services/clients/thestage_api/dtos/task_controller/task_status_localized_map_response.py +9 -9
- thestage/services/clients/thestage_api/dtos/task_controller/task_view_response.py +12 -12
- thestage/services/clients/thestage_api/dtos/user_controller/user_profile.py +12 -12
- thestage/services/clients/thestage_api/dtos/validate_token_response.py +11 -11
- thestage/services/config_provider/__init__.py +0 -0
- thestage/services/config_provider/config_provider.py +237 -237
- thestage/services/connect/connect_service.py +193 -196
- thestage/services/connect/dto/remote_server_config.py +9 -9
- thestage/services/container/__init__.py +0 -0
- thestage/services/container/container_service.py +374 -374
- thestage/services/container/mapper/__init__.py +0 -0
- thestage/services/container/mapper/container_mapper.py +30 -30
- thestage/services/core_files/config_entity.py +26 -26
- thestage/services/filesystem_service.py +133 -133
- thestage/services/instance/__init__.py +0 -0
- thestage/services/instance/instance_service.py +303 -303
- thestage/services/instance/mapper/__init__.py +0 -0
- thestage/services/instance/mapper/instance_mapper.py +24 -24
- thestage/services/instance/mapper/selfhosted_mapper.py +33 -33
- thestage/services/logging/byte_print_style.py +5 -5
- thestage/services/logging/dto/log_message.py +15 -15
- thestage/services/logging/dto/log_type.py +6 -6
- thestage/services/logging/exception/log_polling_exception.py +6 -6
- thestage/services/logging/logging_constants.py +3 -3
- thestage/services/logging/logging_service.py +367 -367
- thestage/services/project/__init__.py +0 -0
- thestage/services/project/dto/inference_simulator_dto.py +22 -22
- thestage/services/project/dto/inference_simulator_model_dto.py +20 -20
- thestage/services/project/dto/project_config.py +14 -14
- thestage/services/project/mapper/__init__.py +0 -0
- thestage/services/project/mapper/project_inference_simulator_mapper.py +21 -21
- thestage/services/project/mapper/project_inference_simulator_model_mapper.py +21 -21
- thestage/services/project/mapper/project_task_mapper.py +22 -22
- thestage/services/project/project_service.py +1253 -1253
- thestage/services/remote_server_service.py +609 -609
- thestage/services/service_factory.py +97 -97
- thestage/services/task/dto/task_dto.py +40 -40
- thestage/services/validation_service.py +61 -61
- {thestage-0.6.2.dist-info → thestage-0.6.3.dist-info}/LICENSE.txt +12 -12
- {thestage-0.6.2.dist-info → thestage-0.6.3.dist-info}/METADATA +3 -2
- thestage-0.6.3.dist-info/RECORD +176 -0
- {thestage-0.6.2.dist-info → thestage-0.6.3.dist-info}/WHEEL +1 -1
- thestage-0.6.2.dist-info/RECORD +0 -176
- {thestage-0.6.2.dist-info → thestage-0.6.3.dist-info}/entry_points.txt +0 -0
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
|
-
from thestage.services.config_provider.config_provider import ConfigProvider
|
|
4
|
-
from thestage.services.connect.connect_service import ConnectService
|
|
5
|
-
from thestage.services.filesystem_service import FileSystemService
|
|
6
|
-
from thestage.services.logging.logging_service import LoggingService
|
|
7
|
-
from thestage.services.project.project_service import ProjectService
|
|
8
|
-
from thestage.services.remote_server_service import RemoteServerService
|
|
9
|
-
from thestage.services.container.container_service import ContainerService
|
|
10
|
-
from thestage.services.instance.instance_service import InstanceService
|
|
11
|
-
from thestage.services.app_config_service import AppConfigService
|
|
12
|
-
from thestage.services.clients.git.git_client import GitLocalClient
|
|
13
|
-
from thestage.services.clients.thestage_api.api_client import TheStageApiClient
|
|
14
|
-
from thestage.services.validation_service import ValidationService
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class ServiceFactory:
|
|
18
|
-
__thestage_api_client: Optional[TheStageApiClient] = None
|
|
19
|
-
__git_local_client: Optional[GitLocalClient] = None
|
|
20
|
-
__file_system_service: Optional[FileSystemService] = None
|
|
21
|
-
__config_provider: Optional[ConfigProvider] = None
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def get_validation_service(self) -> ValidationService:
|
|
25
|
-
return ValidationService(
|
|
26
|
-
thestage_api_client=self.get_thestage_api_client(),
|
|
27
|
-
config_provider=self.get_config_provider(),
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
def get_instance_service(self) -> InstanceService:
|
|
31
|
-
return InstanceService(
|
|
32
|
-
thestage_api_client=self.get_thestage_api_client(),
|
|
33
|
-
remote_server_service=self.get_remote_server_service(),
|
|
34
|
-
config_provider=self.get_config_provider(),
|
|
35
|
-
)
|
|
36
|
-
|
|
37
|
-
def get_container_service(self) -> ContainerService:
|
|
38
|
-
return ContainerService(
|
|
39
|
-
thestage_api_client=self.get_thestage_api_client(),
|
|
40
|
-
remote_server_service=self.get_remote_server_service(),
|
|
41
|
-
file_system_service=self.get_file_system_service(),
|
|
42
|
-
config_provider=self.get_config_provider(),
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
def get_connect_service(self) -> ConnectService:
|
|
46
|
-
return ConnectService(
|
|
47
|
-
thestage_api_client=self.get_thestage_api_client(),
|
|
48
|
-
instance_service=self.get_instance_service(),
|
|
49
|
-
container_service=self.get_container_service(),
|
|
50
|
-
logging_service=self.get_logging_service(),
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
def get_project_service(self) -> ProjectService:
|
|
54
|
-
return ProjectService(
|
|
55
|
-
thestage_api_client=self.get_thestage_api_client(),
|
|
56
|
-
remote_server_service=self.get_remote_server_service(),
|
|
57
|
-
file_system_service=self.get_file_system_service(),
|
|
58
|
-
git_local_client=self.get_git_local_client(),
|
|
59
|
-
config_provider=self.get_config_provider(),
|
|
60
|
-
)
|
|
61
|
-
|
|
62
|
-
def get_remote_server_service(self) -> RemoteServerService:
|
|
63
|
-
return RemoteServerService(
|
|
64
|
-
file_system_service=self.get_file_system_service(),
|
|
65
|
-
config_provider=self.get_config_provider(),
|
|
66
|
-
)
|
|
67
|
-
|
|
68
|
-
def get_thestage_api_client(self) -> TheStageApiClient:
|
|
69
|
-
if not self.__thestage_api_client:
|
|
70
|
-
self.__thestage_api_client = TheStageApiClient(config_provider=self.get_config_provider())
|
|
71
|
-
return self.__thestage_api_client
|
|
72
|
-
|
|
73
|
-
def get_git_local_client(self):
|
|
74
|
-
if not self.__git_local_client:
|
|
75
|
-
self.__git_local_client = GitLocalClient(file_system_service=self.get_file_system_service())
|
|
76
|
-
return self.__git_local_client
|
|
77
|
-
|
|
78
|
-
def get_file_system_service(self) -> FileSystemService:
|
|
79
|
-
if not self.__file_system_service:
|
|
80
|
-
self.__file_system_service = FileSystemService()
|
|
81
|
-
return self.__file_system_service
|
|
82
|
-
|
|
83
|
-
def get_app_config_service(self) -> AppConfigService:
|
|
84
|
-
return AppConfigService(
|
|
85
|
-
config_provider=self.get_config_provider(),
|
|
86
|
-
validation_service=self.get_validation_service(),
|
|
87
|
-
)
|
|
88
|
-
|
|
89
|
-
def get_logging_service(self) -> LoggingService:
|
|
90
|
-
return LoggingService(
|
|
91
|
-
thestage_api_client=self.get_thestage_api_client(),
|
|
92
|
-
)
|
|
93
|
-
|
|
94
|
-
def get_config_provider(self) -> ConfigProvider:
|
|
95
|
-
if not self.__config_provider:
|
|
96
|
-
self.__config_provider = ConfigProvider(self.get_file_system_service())
|
|
97
|
-
return self.__config_provider
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from thestage.services.config_provider.config_provider import ConfigProvider
|
|
4
|
+
from thestage.services.connect.connect_service import ConnectService
|
|
5
|
+
from thestage.services.filesystem_service import FileSystemService
|
|
6
|
+
from thestage.services.logging.logging_service import LoggingService
|
|
7
|
+
from thestage.services.project.project_service import ProjectService
|
|
8
|
+
from thestage.services.remote_server_service import RemoteServerService
|
|
9
|
+
from thestage.services.container.container_service import ContainerService
|
|
10
|
+
from thestage.services.instance.instance_service import InstanceService
|
|
11
|
+
from thestage.services.app_config_service import AppConfigService
|
|
12
|
+
from thestage.services.clients.git.git_client import GitLocalClient
|
|
13
|
+
from thestage.services.clients.thestage_api.api_client import TheStageApiClient
|
|
14
|
+
from thestage.services.validation_service import ValidationService
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class ServiceFactory:
|
|
18
|
+
__thestage_api_client: Optional[TheStageApiClient] = None
|
|
19
|
+
__git_local_client: Optional[GitLocalClient] = None
|
|
20
|
+
__file_system_service: Optional[FileSystemService] = None
|
|
21
|
+
__config_provider: Optional[ConfigProvider] = None
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def get_validation_service(self) -> ValidationService:
|
|
25
|
+
return ValidationService(
|
|
26
|
+
thestage_api_client=self.get_thestage_api_client(),
|
|
27
|
+
config_provider=self.get_config_provider(),
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
def get_instance_service(self) -> InstanceService:
|
|
31
|
+
return InstanceService(
|
|
32
|
+
thestage_api_client=self.get_thestage_api_client(),
|
|
33
|
+
remote_server_service=self.get_remote_server_service(),
|
|
34
|
+
config_provider=self.get_config_provider(),
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
def get_container_service(self) -> ContainerService:
|
|
38
|
+
return ContainerService(
|
|
39
|
+
thestage_api_client=self.get_thestage_api_client(),
|
|
40
|
+
remote_server_service=self.get_remote_server_service(),
|
|
41
|
+
file_system_service=self.get_file_system_service(),
|
|
42
|
+
config_provider=self.get_config_provider(),
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
def get_connect_service(self) -> ConnectService:
|
|
46
|
+
return ConnectService(
|
|
47
|
+
thestage_api_client=self.get_thestage_api_client(),
|
|
48
|
+
instance_service=self.get_instance_service(),
|
|
49
|
+
container_service=self.get_container_service(),
|
|
50
|
+
logging_service=self.get_logging_service(),
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
def get_project_service(self) -> ProjectService:
|
|
54
|
+
return ProjectService(
|
|
55
|
+
thestage_api_client=self.get_thestage_api_client(),
|
|
56
|
+
remote_server_service=self.get_remote_server_service(),
|
|
57
|
+
file_system_service=self.get_file_system_service(),
|
|
58
|
+
git_local_client=self.get_git_local_client(),
|
|
59
|
+
config_provider=self.get_config_provider(),
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
def get_remote_server_service(self) -> RemoteServerService:
|
|
63
|
+
return RemoteServerService(
|
|
64
|
+
file_system_service=self.get_file_system_service(),
|
|
65
|
+
config_provider=self.get_config_provider(),
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
def get_thestage_api_client(self) -> TheStageApiClient:
|
|
69
|
+
if not self.__thestage_api_client:
|
|
70
|
+
self.__thestage_api_client = TheStageApiClient(config_provider=self.get_config_provider())
|
|
71
|
+
return self.__thestage_api_client
|
|
72
|
+
|
|
73
|
+
def get_git_local_client(self):
|
|
74
|
+
if not self.__git_local_client:
|
|
75
|
+
self.__git_local_client = GitLocalClient(file_system_service=self.get_file_system_service())
|
|
76
|
+
return self.__git_local_client
|
|
77
|
+
|
|
78
|
+
def get_file_system_service(self) -> FileSystemService:
|
|
79
|
+
if not self.__file_system_service:
|
|
80
|
+
self.__file_system_service = FileSystemService()
|
|
81
|
+
return self.__file_system_service
|
|
82
|
+
|
|
83
|
+
def get_app_config_service(self) -> AppConfigService:
|
|
84
|
+
return AppConfigService(
|
|
85
|
+
config_provider=self.get_config_provider(),
|
|
86
|
+
validation_service=self.get_validation_service(),
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
def get_logging_service(self) -> LoggingService:
|
|
90
|
+
return LoggingService(
|
|
91
|
+
thestage_api_client=self.get_thestage_api_client(),
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
def get_config_provider(self) -> ConfigProvider:
|
|
95
|
+
if not self.__config_provider:
|
|
96
|
+
self.__config_provider = ConfigProvider(self.get_file_system_service())
|
|
97
|
+
return self.__config_provider
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
|
-
from pydantic import BaseModel, ConfigDict, Field
|
|
4
|
-
|
|
5
|
-
from thestage.services.clients.thestage_api.dtos.container_response import DockerContainerDto
|
|
6
|
-
from thestage.services.clients.thestage_api.dtos.frontend_status import FrontendStatusDto
|
|
7
|
-
from thestage.services.clients.thestage_api.dtos.instance_rented_response import InstanceRentedDto
|
|
8
|
-
from thestage.services.clients.thestage_api.dtos.selfhosted_instance_response import SelfHostedInstanceDto
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class TaskDto(BaseModel):
|
|
12
|
-
model_config = ConfigDict(use_enum_values=True)
|
|
13
|
-
|
|
14
|
-
id: Optional[int] = Field(None, alias='id')
|
|
15
|
-
instance_rented_id: Optional[int] = Field(None, alias='instanceRentedId')
|
|
16
|
-
selfhosted_instance_id: Optional[int] = Field(None, alias='selfhostedInstanceId')
|
|
17
|
-
docker_container_id: Optional[int] = Field(None, alias='dockerContainerId')
|
|
18
|
-
description: Optional[str] = Field(None, alias='description')
|
|
19
|
-
title: Optional[str] = Field(None, alias='title')
|
|
20
|
-
source_path: Optional[str] = Field(None, alias='sourcePath')
|
|
21
|
-
source_target_path: Optional[str] = Field(None, alias='sourceTargetPath')
|
|
22
|
-
data_path: Optional[str] = Field(None, alias='dataPath')
|
|
23
|
-
result_destination_path: Optional[str] = Field(None, alias='resultDestinationPath')
|
|
24
|
-
run_command: Optional[str] = Field(None, alias='runCommand')
|
|
25
|
-
commit_hash: Optional[str] = Field(None, alias='commitHash')
|
|
26
|
-
ordinal_number_for_sketch: Optional[int] = Field(None, alias='ordinalNumberForSketch')
|
|
27
|
-
user_id: Optional[int] = Field(None, alias='userId')
|
|
28
|
-
frontend_status: FrontendStatusDto = Field(None, alias='frontendStatus')
|
|
29
|
-
created_at: Optional[str] = Field(None, alias='createdAt')
|
|
30
|
-
updated_at: Optional[str] = Field(None, alias='updatedAt')
|
|
31
|
-
started_at: Optional[str] = Field(None, alias='startedAt')
|
|
32
|
-
finished_at: Optional[str] = Field(None, alias='finishedAt')
|
|
33
|
-
client_id: Optional[int] = Field(None, alias='clientId')
|
|
34
|
-
|
|
35
|
-
instance_rented: Optional[InstanceRentedDto] = Field(None, alias='instanceRented')
|
|
36
|
-
selfhosted_instance: Optional[SelfHostedInstanceDto] = Field(None, alias='selfhostedInstance')
|
|
37
|
-
docker_container: Optional[DockerContainerDto] = Field(None, alias='dockerContainer')
|
|
38
|
-
|
|
39
|
-
exit_code: Optional[int] = Field(None, alias='exitCode')
|
|
40
|
-
failure_reason: Optional[str] = Field(None, alias='failureReason')
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
4
|
+
|
|
5
|
+
from thestage.services.clients.thestage_api.dtos.container_response import DockerContainerDto
|
|
6
|
+
from thestage.services.clients.thestage_api.dtos.frontend_status import FrontendStatusDto
|
|
7
|
+
from thestage.services.clients.thestage_api.dtos.instance_rented_response import InstanceRentedDto
|
|
8
|
+
from thestage.services.clients.thestage_api.dtos.selfhosted_instance_response import SelfHostedInstanceDto
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TaskDto(BaseModel):
|
|
12
|
+
model_config = ConfigDict(use_enum_values=True)
|
|
13
|
+
|
|
14
|
+
id: Optional[int] = Field(None, alias='id')
|
|
15
|
+
instance_rented_id: Optional[int] = Field(None, alias='instanceRentedId')
|
|
16
|
+
selfhosted_instance_id: Optional[int] = Field(None, alias='selfhostedInstanceId')
|
|
17
|
+
docker_container_id: Optional[int] = Field(None, alias='dockerContainerId')
|
|
18
|
+
description: Optional[str] = Field(None, alias='description')
|
|
19
|
+
title: Optional[str] = Field(None, alias='title')
|
|
20
|
+
source_path: Optional[str] = Field(None, alias='sourcePath')
|
|
21
|
+
source_target_path: Optional[str] = Field(None, alias='sourceTargetPath')
|
|
22
|
+
data_path: Optional[str] = Field(None, alias='dataPath')
|
|
23
|
+
result_destination_path: Optional[str] = Field(None, alias='resultDestinationPath')
|
|
24
|
+
run_command: Optional[str] = Field(None, alias='runCommand')
|
|
25
|
+
commit_hash: Optional[str] = Field(None, alias='commitHash')
|
|
26
|
+
ordinal_number_for_sketch: Optional[int] = Field(None, alias='ordinalNumberForSketch')
|
|
27
|
+
user_id: Optional[int] = Field(None, alias='userId')
|
|
28
|
+
frontend_status: FrontendStatusDto = Field(None, alias='frontendStatus')
|
|
29
|
+
created_at: Optional[str] = Field(None, alias='createdAt')
|
|
30
|
+
updated_at: Optional[str] = Field(None, alias='updatedAt')
|
|
31
|
+
started_at: Optional[str] = Field(None, alias='startedAt')
|
|
32
|
+
finished_at: Optional[str] = Field(None, alias='finishedAt')
|
|
33
|
+
client_id: Optional[int] = Field(None, alias='clientId')
|
|
34
|
+
|
|
35
|
+
instance_rented: Optional[InstanceRentedDto] = Field(None, alias='instanceRented')
|
|
36
|
+
selfhosted_instance: Optional[SelfHostedInstanceDto] = Field(None, alias='selfhostedInstance')
|
|
37
|
+
docker_container: Optional[DockerContainerDto] = Field(None, alias='dockerContainer')
|
|
38
|
+
|
|
39
|
+
exit_code: Optional[int] = Field(None, alias='exitCode')
|
|
40
|
+
failure_reason: Optional[str] = Field(None, alias='failureReason')
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
import typer
|
|
2
|
-
|
|
3
|
-
from thestage.i18n.translation import __
|
|
4
|
-
# from thestage.main import update_allowed_commands
|
|
5
|
-
from thestage.services.clients.thestage_api.api_client import TheStageApiClient
|
|
6
|
-
from thestage.services.config_provider.config_provider import ConfigProvider
|
|
7
|
-
from thestage.services.core_files.config_entity import ConfigEntity
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class ValidationService:
|
|
11
|
-
_thestage_api_client: TheStageApiClient = None
|
|
12
|
-
_config_provider: ConfigProvider = None
|
|
13
|
-
|
|
14
|
-
def __init__(
|
|
15
|
-
self,
|
|
16
|
-
thestage_api_client: TheStageApiClient,
|
|
17
|
-
config_provider: ConfigProvider,
|
|
18
|
-
):
|
|
19
|
-
self._thestage_api_client = thestage_api_client
|
|
20
|
-
self._config_provider = config_provider
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def check_token(self):
|
|
24
|
-
config = self._config_provider.get_config()
|
|
25
|
-
token = config.main.thestage_auth_token
|
|
26
|
-
if not token:
|
|
27
|
-
token: str = typer.prompt(
|
|
28
|
-
text=f'Authenticate using valid TheStage AI API token ({config.main.thestage_api_url})',
|
|
29
|
-
show_choices=False,
|
|
30
|
-
type=str,
|
|
31
|
-
show_default=False,
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
# TODO this fails with 503 error - AttributeError("'bytes' object has no attribute 'text'") from _parse_api_response method in core
|
|
35
|
-
if not token:
|
|
36
|
-
return
|
|
37
|
-
|
|
38
|
-
token_validate_response = self._thestage_api_client.validate_token(token=token)
|
|
39
|
-
is_valid = token_validate_response.is_success if token_validate_response else False
|
|
40
|
-
if not is_valid:
|
|
41
|
-
typer.echo(__(
|
|
42
|
-
'API token is invalid: generate API token using TheStage AI WebApp'
|
|
43
|
-
))
|
|
44
|
-
raise typer.Exit(1)
|
|
45
|
-
|
|
46
|
-
if config.main.thestage_auth_token != token:
|
|
47
|
-
config.main.thestage_auth_token = token
|
|
48
|
-
self._config_provider.update_config(updated_config=config)
|
|
49
|
-
self._config_provider.update_allowed_commands_and_is_token_valid(validate_token_response=token_validate_response)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
@staticmethod
|
|
53
|
-
def is_present_token(config: ConfigEntity) -> bool:
|
|
54
|
-
present_token = True
|
|
55
|
-
if not config:
|
|
56
|
-
present_token = False
|
|
57
|
-
else:
|
|
58
|
-
if not config.main.thestage_auth_token:
|
|
59
|
-
present_token = False
|
|
60
|
-
|
|
61
|
-
return present_token
|
|
1
|
+
import typer
|
|
2
|
+
|
|
3
|
+
from thestage.i18n.translation import __
|
|
4
|
+
# from thestage.main import update_allowed_commands
|
|
5
|
+
from thestage.services.clients.thestage_api.api_client import TheStageApiClient
|
|
6
|
+
from thestage.services.config_provider.config_provider import ConfigProvider
|
|
7
|
+
from thestage.services.core_files.config_entity import ConfigEntity
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ValidationService:
|
|
11
|
+
_thestage_api_client: TheStageApiClient = None
|
|
12
|
+
_config_provider: ConfigProvider = None
|
|
13
|
+
|
|
14
|
+
def __init__(
|
|
15
|
+
self,
|
|
16
|
+
thestage_api_client: TheStageApiClient,
|
|
17
|
+
config_provider: ConfigProvider,
|
|
18
|
+
):
|
|
19
|
+
self._thestage_api_client = thestage_api_client
|
|
20
|
+
self._config_provider = config_provider
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def check_token(self):
|
|
24
|
+
config = self._config_provider.get_config()
|
|
25
|
+
token = config.main.thestage_auth_token
|
|
26
|
+
if not token:
|
|
27
|
+
token: str = typer.prompt(
|
|
28
|
+
text=f'Authenticate using valid TheStage AI API token ({config.main.thestage_api_url})',
|
|
29
|
+
show_choices=False,
|
|
30
|
+
type=str,
|
|
31
|
+
show_default=False,
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
# TODO this fails with 503 error - AttributeError("'bytes' object has no attribute 'text'") from _parse_api_response method in core
|
|
35
|
+
if not token:
|
|
36
|
+
return
|
|
37
|
+
|
|
38
|
+
token_validate_response = self._thestage_api_client.validate_token(token=token)
|
|
39
|
+
is_valid = token_validate_response.is_success if token_validate_response else False
|
|
40
|
+
if not is_valid:
|
|
41
|
+
typer.echo(__(
|
|
42
|
+
'API token is invalid: generate API token using TheStage AI WebApp'
|
|
43
|
+
))
|
|
44
|
+
raise typer.Exit(1)
|
|
45
|
+
|
|
46
|
+
if config.main.thestage_auth_token != token:
|
|
47
|
+
config.main.thestage_auth_token = token
|
|
48
|
+
self._config_provider.update_config(updated_config=config)
|
|
49
|
+
self._config_provider.update_allowed_commands_and_is_token_valid(validate_token_response=token_validate_response)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
@staticmethod
|
|
53
|
+
def is_present_token(config: ConfigEntity) -> bool:
|
|
54
|
+
present_token = True
|
|
55
|
+
if not config:
|
|
56
|
+
present_token = False
|
|
57
|
+
else:
|
|
58
|
+
if not config.main.thestage_auth_token:
|
|
59
|
+
present_token = False
|
|
60
|
+
|
|
61
|
+
return present_token
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
Copyright 2024 TheStage AI. All rights reserved.
|
|
2
|
-
|
|
3
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
you may not use this file except in compliance with the License.
|
|
5
|
-
You may obtain a copy of the License at
|
|
6
|
-
|
|
7
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
|
|
9
|
-
Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
See the License for the specific language governing permissions and
|
|
1
|
+
Copyright 2024 TheStage AI. All rights reserved.
|
|
2
|
+
|
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
you may not use this file except in compliance with the License.
|
|
5
|
+
You may obtain a copy of the License at
|
|
6
|
+
|
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
13
|
limitations under the License.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: thestage
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.3
|
|
4
4
|
Summary:
|
|
5
5
|
Author: TheStage AI team
|
|
6
6
|
Author-email: hello@thestage.ai
|
|
@@ -10,6 +10,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.10
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.11
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
13
14
|
Requires-Dist: aioconsole (>=0.8.0,<0.9.0)
|
|
14
15
|
Requires-Dist: boto3 (>=1.35.80,<2.0.0)
|
|
15
16
|
Requires-Dist: gitpython (>=3.1.40,<4.0.0)
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
thestage/.env,sha256=lHeR-H4TiBp4z06bWt7oND9LMMVXP3WCKY7lQltDM3M,129
|
|
2
|
+
thestage/__init__.py,sha256=_DRvfFKWKADujVE2sliedLGBeSo7nwI-3kPAatcyvDk,64
|
|
3
|
+
thestage/__main__.py,sha256=4ObdWrDRaIASaR06IxtFSsoMu58eyL0MnD64habvPj8,101
|
|
4
|
+
thestage/cli_command.py,sha256=P93LXDruJWecmF5xn-D2uhMOSD9iSJl-gP4oG9aD56k,2173
|
|
5
|
+
thestage/cli_command_helper.py,sha256=f5NZQ4MZJ7yyxPvkQW7ilIAxN_19Mx_zzSqedhZtd6g,1939
|
|
6
|
+
thestage/color_scheme/color_scheme.py,sha256=qaSSS_OzPsqI7yV1TC3Ne0PnsWDWo5xqU8j_7JYG-TI,210
|
|
7
|
+
thestage/config/__init__.py,sha256=RNobilYVK1WAM1utcQ8ZuATKc9Zh9M9BAjCLZTnR_TA,428
|
|
8
|
+
thestage/config/config_storage.py,sha256=QxUCPJCCNs_PHuz_5TbAOXaeTCIT34IiQXJQzPAXlss,140
|
|
9
|
+
thestage/config/env_base.py,sha256=RNBQ17yk1ieu1kdUlM7Qe7mDCoxstgGUwwhe265o4dQ,367
|
|
10
|
+
thestage/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
thestage/controllers/base_controller.py,sha256=52uvBAL9Z-otP-oXGZoRZ7AjR0nAOrXzBang9PhyVyE,2458
|
|
12
|
+
thestage/controllers/config_controller.py,sha256=hj9SiPCC1o1loJx8txl5wMh_S52RD-OdpvOWJG1NM6E,5417
|
|
13
|
+
thestage/controllers/container_controller.py,sha256=Es3s4NOa0fYCqYSUv6unv3ryqRQ5t_f6yrybZhileZM,15312
|
|
14
|
+
thestage/controllers/instance_controller.py,sha256=uV0ZLqTsz7CfQA6T_ZhepPz3KfDFCW5wgiWoNvrH_OE,6680
|
|
15
|
+
thestage/controllers/project_controller.py,sha256=zFCcst-zO0msU3Jx3uVdKhYdPG5bHoxmXpxdVBP6s5U,32039
|
|
16
|
+
thestage/controllers/utils_controller.py,sha256=ac-TLWC2wrmxJYNFOltoQKCTpFaKB6p937odona64OI,912
|
|
17
|
+
thestage/debug_main.dist.py,sha256=UPIJ58yf-6FtXZj-FLAwxi7HononseuCYm9xb5KlxTs,783
|
|
18
|
+
thestage/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
|
+
thestage/entities/container.py,sha256=jP8ZUQPSMdAG5Z68FFKLYpBFI7Hf42Jz4_NXnRj5css,533
|
|
20
|
+
thestage/entities/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
+
thestage/entities/enums/order_direction_type.py,sha256=zC9-FLhn8-6NVmSlgeKXKBnVJKH8RLtuUYApQIb1zcU,95
|
|
22
|
+
thestage/entities/enums/shell_type.py,sha256=-XcPiI3psjeIzd0VXWHdca5Ttgbu9M5oQPeZUZLJRMc,118
|
|
23
|
+
thestage/entities/enums/tail_output_type.py,sha256=6S55VRRosrI3yZW8XeAGm4u12H4haeiBRvoaExUCWcU,84
|
|
24
|
+
thestage/entities/enums/yes_no_response.py,sha256=PXXkB7KMB-XCHvKOBRuX6NRKyq8UW0G228OICRr2ZTk,86
|
|
25
|
+
thestage/entities/file_item.py,sha256=hxUbdne6AYFHJfuQ8l0XQO86IuC8Pyx_OrPw_0lhN_o,828
|
|
26
|
+
thestage/entities/project_inference_simulator.py,sha256=J7Kq3Stb9EElaa8LYLo5kzLLAzgG0ibg4u1iNo0ZUns,597
|
|
27
|
+
thestage/entities/project_inference_simulator_model.py,sha256=_xfjaaCSUfVKFQLlsyMEvD4oboKAzIOl6YoMyS59XyQ,546
|
|
28
|
+
thestage/entities/project_task.py,sha256=7uewPIC_HF32OviQHU7uyJ8KokCuK5OjB47r-ltdpyI,672
|
|
29
|
+
thestage/entities/rented_instance.py,sha256=NjYKaO0oZ3a55OJHrMyWK9ueeXw8HtVgm9-0nobo_kg,632
|
|
30
|
+
thestage/entities/self_hosted_instance.py,sha256=oJeKpLyqBdFxWiaoxJq6XDyXjRwYsCs40uM1AF6YMng,629
|
|
31
|
+
thestage/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
+
thestage/exceptions/auth_exception.py,sha256=HZeiF3aocqukmClUfIDCk5izb4tpG4KEbhyXtVl2z34,214
|
|
33
|
+
thestage/exceptions/base_exception.py,sha256=ekov63Q0OZLeLOu6bhHN9KLo8pPn0XLCMZwZrVULhDw,282
|
|
34
|
+
thestage/exceptions/business_logic_exception.py,sha256=vNiSq9hUjrB0gx1umFcq4Eft99Cg59wCayOYSazT_oc,232
|
|
35
|
+
thestage/exceptions/config_exception.py,sha256=c2V8ccEoPWOV5fd_rSgaj9HB4rQfj6DOdnALEq_U8-Q,218
|
|
36
|
+
thestage/exceptions/file_system_exception.py,sha256=OiBCtjzV1ToXfn5HtmXv9Ihp6uDcKNSyKzQxut-xhQQ,226
|
|
37
|
+
thestage/exceptions/git_access_exception.py,sha256=ZyB5qrz6fok1jOEKtt3PXP9vq3vOmKOK2OZcFztH9gM,465
|
|
38
|
+
thestage/exceptions/remote_server_exception.py,sha256=Z1R5Wjw3w7VdqURhjidGkNhJL9lsA76txkAZPA5Uv70,595
|
|
39
|
+
thestage/git/ProgressPrinter.py,sha256=z99BPq3KYycClL-7fmsERIIuZ03papdIYOhR8A7b9AA,573
|
|
40
|
+
thestage/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
+
thestage/helpers/error_handler.py,sha256=_KArMtEmlwvZmPcbbO-fGYSuMKMmOTErZONf1jkFpu8,5355
|
|
42
|
+
thestage/helpers/exception_hook.py,sha256=jekDs7smzI1UjXkuMut_uM725GL3c6Gr_zmyEYdDjV8,334
|
|
43
|
+
thestage/helpers/logger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
44
|
+
thestage/helpers/logger/app_logger.py,sha256=4dgZ_8k28R887rmIHmCTn2QVg0stqTk8hcXa5CF4VJc,1607
|
|
45
|
+
thestage/helpers/ssh_util.py,sha256=JuDwddHxEGcA24Y8a-jLv339cG-jq4hEaBAl5TSVVFw,1262
|
|
46
|
+
thestage/i18n/en_GB/messages.po,sha256=BuVIhd5TRQkgFkAbTGvbSRuO88lSJGpnk9TT2J9BC8E,32375
|
|
47
|
+
thestage/i18n/translation.py,sha256=c62OicQ4phSMuqDe7hqGebIsk0W2-8ZJUfgfdtjjqEc,284
|
|
48
|
+
thestage/main.py,sha256=P59_DqDeb6metD6RBCmpp1crEh9VhsKTYPt4SUdPfS4,1789
|
|
49
|
+
thestage/services/.env,sha256=K2VpzFAVjD75XawAHZdR0HWmypryA_mXNY4WHNgR-wQ,184
|
|
50
|
+
thestage/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
+
thestage/services/abstract_mapper.py,sha256=_q7YLkPNRsNW5wOCqvZIu1KfpLkc7uVaAQKrMZtsGuY,218
|
|
52
|
+
thestage/services/abstract_service.py,sha256=fsGXb0plZ9SvGBWAY4y599BH196YoFP3BJ7LS_pgTcc,2707
|
|
53
|
+
thestage/services/app_config_service.py,sha256=bbiXxcLoh_XC3mgsAo9ciksblPvUEcnG2oCIm1jMyo4,1679
|
|
54
|
+
thestage/services/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
|
+
thestage/services/clients/git/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
+
thestage/services/clients/git/git_client.py,sha256=PAob7rcwLNoHMDW1ZyRGGGpbYKWahaAp0DrPVKrKUzM,16811
|
|
57
|
+
thestage/services/clients/thestage_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
|
+
thestage/services/clients/thestage_api/api_client.py,sha256=CGB-IlumCFd3auYcTRrslQ8qTRDpf5gFA_rGVVV5xBM,30322
|
|
59
|
+
thestage/services/clients/thestage_api/core/api_client_core.py,sha256=lEffuh30f6oV2lp90UuET90OUxnrMh2PHjquF6_sT6E,3453
|
|
60
|
+
thestage/services/clients/thestage_api/core/http_client_exception.py,sha256=JH-874Gu9T1b1_FpPBLqdyt9U0PyhpwRCe_oDc6c_jI,385
|
|
61
|
+
thestage/services/clients/thestage_api/dtos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
|
+
thestage/services/clients/thestage_api/dtos/base_response.py,sha256=R6jjhvv0U0XD8j5N5T36q-6liiEAUy7xINFA1H7CMB8,410
|
|
63
|
+
thestage/services/clients/thestage_api/dtos/cloud_provider_region.py,sha256=EJNhQywINW0dtjXKHEDb-etkWQ7keXNUSDhH-h9cabs,1011
|
|
64
|
+
thestage/services/clients/thestage_api/dtos/container_param_request.py,sha256=8Mp9-ZqkvoVw_lyCjo-7syMA4zCKXhs367PIl5DhWN8,436
|
|
65
|
+
thestage/services/clients/thestage_api/dtos/container_response.py,sha256=15WqoxXw6VkombfRbWvR_gLTPyOfE2qidaDBj1oy--w,3763
|
|
66
|
+
thestage/services/clients/thestage_api/dtos/docker_container_assigned_device.py,sha256=u_OE30OpGIeqF4Wnil44JCLIN5rQfpLReTIXfJEbtyk,361
|
|
67
|
+
thestage/services/clients/thestage_api/dtos/docker_container_controller/docker_container_list_request.py,sha256=AMNmxoWGt4yAS7juirOCurhlNqEkKAV2C974tLZ212A,500
|
|
68
|
+
thestage/services/clients/thestage_api/dtos/docker_container_controller/docker_container_list_response.py,sha256=DfbXk6ikZK78NxlaC5nGujVeSrafTRu7H8QslarmfqE,663
|
|
69
|
+
thestage/services/clients/thestage_api/dtos/docker_container_mapping.py,sha256=pH0lCKTDheDI16NasqQiF288szUgpw758W27JrJo0QI,372
|
|
70
|
+
thestage/services/clients/thestage_api/dtos/entity_filter_request.py,sha256=akovBYk0vK6a9M90eDFnCqx70Mde4Wtb6e0ulhtGMLo,514
|
|
71
|
+
thestage/services/clients/thestage_api/dtos/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
|
+
thestage/services/clients/thestage_api/dtos/enums/container_pending_action.py,sha256=7DMt4KdpO91-NnU-Rb2s8ikDpt3IxsyBYEH1lWhR9MI,222
|
|
73
|
+
thestage/services/clients/thestage_api/dtos/enums/container_status.py,sha256=CpXOUJgpqKMRW7QKyJSeegtj_aQBOfDcNsvztMAJvzw,457
|
|
74
|
+
thestage/services/clients/thestage_api/dtos/enums/cpu_type.py,sha256=lNgTW92gc-MolKThbJmY6xXcrgEFdVxXcH07T2KQ2_o,154
|
|
75
|
+
thestage/services/clients/thestage_api/dtos/enums/currency_type.py,sha256=ojfTE12pyDQ6GXZfoQlpftcArtRVu8kApHUm7QC9lJM,202
|
|
76
|
+
thestage/services/clients/thestage_api/dtos/enums/daemon_status.py,sha256=vFuCVysI6PF-XM7QOgdivg13Uuy9IzBAV8bg_afd4pQ,182
|
|
77
|
+
thestage/services/clients/thestage_api/dtos/enums/disk_type.py,sha256=tsi4XyKxohIY0W_sgskxTklIiqDwINZ6pgo8Kt-AOS0,129
|
|
78
|
+
thestage/services/clients/thestage_api/dtos/enums/drive_type.py,sha256=xqs2I9w2cuOmQ86kcMZHetCe18lNqzH6TAYnfwkQPcM,130
|
|
79
|
+
thestage/services/clients/thestage_api/dtos/enums/gpu_name.py,sha256=YO3iYlo7wTT6wEpkJDRcOO8NAc3WMxEQXMQ8jTFKH6k,162
|
|
80
|
+
thestage/services/clients/thestage_api/dtos/enums/inference_model_status.py,sha256=OgoJBh8u5kveForMoxKCCXesE23C8MTGWiMKTUmmKls,256
|
|
81
|
+
thestage/services/clients/thestage_api/dtos/enums/inference_simulator_status.py,sha256=mC8_xCjP0p_tmzx41rgLRwYgbijWcR9xs4m9goZY1Ck,436
|
|
82
|
+
thestage/services/clients/thestage_api/dtos/enums/instance_rented_status.py,sha256=_uk5memh9fOPybFugvNANdhnj2-1Gpx1SE9ZpG6d88k,490
|
|
83
|
+
thestage/services/clients/thestage_api/dtos/enums/instance_type.py,sha256=bdyRr3Up7LpdHZjVsVjg_4lmxME5CQZ6DJ0__tgmpMk,159
|
|
84
|
+
thestage/services/clients/thestage_api/dtos/enums/location_region.py,sha256=t0TLDgFhZTe6eOZxhp1a52bB-ZPERwxoHv0c928Vxvk,281
|
|
85
|
+
thestage/services/clients/thestage_api/dtos/enums/power_status.py,sha256=jNmebTN4qcQs8pwlG2QSy0kTwOyBEkfCl84Gl1npK4g,239
|
|
86
|
+
thestage/services/clients/thestage_api/dtos/enums/provider_name.py,sha256=StLglFLewOa7pQYOb3aGzIPuhc937Qr2c4UlQFJXUto,287
|
|
87
|
+
thestage/services/clients/thestage_api/dtos/enums/selfhosted_status.py,sha256=_OsxObVpczLJ9CJKh4nRh0X6lXw9PfQMTYOGEvze9R8,285
|
|
88
|
+
thestage/services/clients/thestage_api/dtos/enums/task_execution_status.py,sha256=MU14K1PvkLEFnUizeVt8x_u1IP2OVkyf5pLFdrUUtYg,303
|
|
89
|
+
thestage/services/clients/thestage_api/dtos/enums/task_status.py,sha256=Zg4QkuHilWTC6D_lKsby7u4y1rSRs69_kzfeFWCWoFg,282
|
|
90
|
+
thestage/services/clients/thestage_api/dtos/frontend_status.py,sha256=MKrqCmFWVe-8InJqavkqz1w1N35OcT3ndBrXOu7mKdA,312
|
|
91
|
+
thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_instance_request.py,sha256=5R8snv8kMqpyFtxiLKLNotGc-2a4cZYrf6_a8vY5wgg,612
|
|
92
|
+
thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_instance_response.py,sha256=KMq_ySkrQC-sGUB4Znbj2qImjSPHOLKosnsOqJFsMBg,496
|
|
93
|
+
thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_sagemaker_request.py,sha256=5NcSMRSlTon_zg9hI2SxRGd17Y5lRTGP3TXgOercjlw,408
|
|
94
|
+
thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_sagemaker_response.py,sha256=lis4effVtF39eW8gCkWzJKxMVhIMAg3_8JHub83JR6s,422
|
|
95
|
+
thestage/services/clients/thestage_api/dtos/inference_controller/get_inference_simulator_request.py,sha256=syCIJgOYxzm4E53qRVLh4u1ZbSP23_O09WhELMH6QIg,337
|
|
96
|
+
thestage/services/clients/thestage_api/dtos/inference_controller/get_inference_simulator_response.py,sha256=zTt5ewR3oh4qyL0pzt0QP2jANrUpA-5V8As1YqNy3hA,474
|
|
97
|
+
thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_list_for_project_request.py,sha256=zsDl-23C2hGZIYwk4aR8wCXP6KDdOObanLsPYkQOplw,508
|
|
98
|
+
thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_list_for_project_response.py,sha256=YVMbjwz18wWdn9OIzQcc50Vc8e9r2zQc4csIUDDGPyQ,554
|
|
99
|
+
thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_model_list_for_project_request.py,sha256=ljK-NhYCGojuHHJjOW3WcT6hSSf1lsBHEUyZe3UT-lE,486
|
|
100
|
+
thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_model_list_for_project_response.py,sha256=d6Aikhrbu0CDrtqUi5XWhYzFK4PrcD3YdJpt9wOUuMI,673
|
|
101
|
+
thestage/services/clients/thestage_api/dtos/inference_simulator_model_response.py,sha256=zC0wMnp_73oNse-ZMF5dICrqwXtJ5KdpKVkb7ejx61s,421
|
|
102
|
+
thestage/services/clients/thestage_api/dtos/inference_simulator_response.py,sha256=KUs4cZF7I7rC_UceCG4MfBaNffxkf-_HNDuKfvHyKQI,405
|
|
103
|
+
thestage/services/clients/thestage_api/dtos/installed_service.py,sha256=YHpFFozYe_fz_MP9Tdr-Nn6oR9FWfnXA9NTaxeGlyPI,662
|
|
104
|
+
thestage/services/clients/thestage_api/dtos/instance_detected_gpus.py,sha256=G32A2kz78sJeLcWkIHcbkC75YxUezXjhp98_2RLCo1g,636
|
|
105
|
+
thestage/services/clients/thestage_api/dtos/instance_rented_response.py,sha256=ZRmSupfT9fckcWlSRKoa0B9Xwq72X7IY_1vUc1yTXM0,4478
|
|
106
|
+
thestage/services/clients/thestage_api/dtos/logging_controller/docker_container_log_stream_request.py,sha256=1roOpNE6BX8E9zyPdoMBp0bpL70xRQJepH9Q0EZ8H7c,223
|
|
107
|
+
thestage/services/clients/thestage_api/dtos/logging_controller/log_polling_request.py,sha256=mu3j0DH3qLrySf43EIET8vDn-miiEdYvFR8wX7mwh-4,526
|
|
108
|
+
thestage/services/clients/thestage_api/dtos/logging_controller/log_polling_response.py,sha256=To3AbryCZ4ihOlukrwucQQNUaRnNIvvH5VZw38AcjrA,548
|
|
109
|
+
thestage/services/clients/thestage_api/dtos/logging_controller/task_log_stream_request.py,sha256=fbqteayY0XR7wNjuSrvJNJ61HSAaMM0LqPXqUVBUQxQ,190
|
|
110
|
+
thestage/services/clients/thestage_api/dtos/logging_controller/user_logs_query_request.py,sha256=hCbd_SRHX8kQDMpfO7DpzhjdzxP-zmHBMc7Cnigi8bM,1032
|
|
111
|
+
thestage/services/clients/thestage_api/dtos/logging_controller/user_logs_query_response.py,sha256=66zw9eTmKnEeCmuZG7Bcm_nPYFkAEQbh1HMo_JbGt5U,559
|
|
112
|
+
thestage/services/clients/thestage_api/dtos/paginated_entity_list.py,sha256=a2QRAFqwz2KZXzuTB8aIqTNymg8FHr4XTVXDnYJgqnc,419
|
|
113
|
+
thestage/services/clients/thestage_api/dtos/pagination_data.py,sha256=qV7qiTAtCf-RdDmjZwsBspQlifR1OGr7ezuVJ0A42zU,357
|
|
114
|
+
thestage/services/clients/thestage_api/dtos/price_definition.py,sha256=ddcXpp0Rt3iH6SrRLjsydNrWweZVdiTtYsFaas6wsC0,572
|
|
115
|
+
thestage/services/clients/thestage_api/dtos/project_controller/project_get_deploy_ssh_key_request.py,sha256=SjFUoIe3cX8czx7PjObCVkDV9l7FBabSJPfvAvWou5g,209
|
|
116
|
+
thestage/services/clients/thestage_api/dtos/project_controller/project_get_deploy_ssh_key_response.py,sha256=LY7NbmzPaQcnI8IjP5nZ6ONMiKf1cK7lUJN5fJ3RQjo,363
|
|
117
|
+
thestage/services/clients/thestage_api/dtos/project_controller/project_push_inference_simulator_model_request.py,sha256=_k5PixXsQSgLkcs68ib1QwQUFC7MiXLHWbLQIpVYDoc,245
|
|
118
|
+
thestage/services/clients/thestage_api/dtos/project_controller/project_push_inference_simulator_model_response.py,sha256=aNaD4xVkhbwlD_rI3D0-2gp-F4L6CxxUkAOSLJZPl1I,249
|
|
119
|
+
thestage/services/clients/thestage_api/dtos/project_controller/project_run_task_request.py,sha256=ZFe2uGseJGwixBh380zpaotb_aWUidrqUSYoqe-y4jE,660
|
|
120
|
+
thestage/services/clients/thestage_api/dtos/project_controller/project_run_task_response.py,sha256=iISmJTHbxSRJsXHT4qBTMP3-Co9fWCHI5s2UgB_-GV8,340
|
|
121
|
+
thestage/services/clients/thestage_api/dtos/project_controller/project_start_inference_simulator_request.py,sha256=56MzMLxfXrCUW5m3SEhGMQXisQSTN10GhPrIoXHxjNo,623
|
|
122
|
+
thestage/services/clients/thestage_api/dtos/project_controller/project_start_inference_simulator_response.py,sha256=Q7XlbZ4vgk9QQL2z11BeUkKDn-5p8j06eNI0GmpZNjk,430
|
|
123
|
+
thestage/services/clients/thestage_api/dtos/project_response.py,sha256=PQ0L14_8akc5ADZeL_Y15Z2Hlvkt54d0YKfPROJZQHk,1691
|
|
124
|
+
thestage/services/clients/thestage_api/dtos/selfhosted_instance_response.py,sha256=_zjZAmJ5XI5Jf3Hpys9SBuM_wSsBaUm9KIyFUxECPJ0,3047
|
|
125
|
+
thestage/services/clients/thestage_api/dtos/sftp_path_helper.py,sha256=UeCEcE_qR_TcOGFyOLef7cz3veh1_o6MnLbAJyZk2yc,362
|
|
126
|
+
thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_key_to_user_request.py,sha256=BmO99BXrbUCb2ZIYS2oc7xkwWb5CV5WCaqt1xO4yIro,234
|
|
127
|
+
thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_key_to_user_response.py,sha256=V8wH70noiX2wIFPr8MoBClVl3uUnKpJgaELp59dfK9E,391
|
|
128
|
+
thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_public_key_to_instance_request.py,sha256=gRAyJnvUs4DaIfgDLmZAG7y1o1wvmh-cgbgHcG5iNjs,284
|
|
129
|
+
thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_public_key_to_instance_response.py,sha256=JrAsRyRU8IhQHJc_Vj0v0ZM2vKPVh30r5wnY_-OX5jc,334
|
|
130
|
+
thestage/services/clients/thestage_api/dtos/ssh_key_controller/is_user_has_public_ssh_key_request.py,sha256=UfiBOkYNm_usW0rRSc5QIWhTh_5br0x43M8qbNX5HfU,198
|
|
131
|
+
thestage/services/clients/thestage_api/dtos/ssh_key_controller/is_user_has_public_ssh_key_response.py,sha256=wwZ-W-LUibTVNXkERQjn6da_02jOJMGHYburaWkpXVw,424
|
|
132
|
+
thestage/services/clients/thestage_api/dtos/task_controller/task_list_for_project_request.py,sha256=hJt5T2mHPaS9U793NlvgY6kv_GFUxk34QGeRymvQN7Q,392
|
|
133
|
+
thestage/services/clients/thestage_api/dtos/task_controller/task_list_for_project_response.py,sha256=r2R2efDZmaAyfiNs_kuftpgaP-j6VWpKnA1qkHDQfII,466
|
|
134
|
+
thestage/services/clients/thestage_api/dtos/task_controller/task_status_localized_map_response.py,sha256=yop410FwNvQFXYHKh60ne4DSO3m19zF1nCEuUVSaZ8w,283
|
|
135
|
+
thestage/services/clients/thestage_api/dtos/task_controller/task_view_response.py,sha256=30P19Fipas4wzHguvzmxsAoDkKcGNbcKQ_SjJOQVsq8,462
|
|
136
|
+
thestage/services/clients/thestage_api/dtos/user_controller/user_profile.py,sha256=cDH5azyVBXi3V7kIOEuzsF1aKONQnxcI7YsDwXjRmuE,268
|
|
137
|
+
thestage/services/clients/thestage_api/dtos/validate_token_response.py,sha256=nmKbqRPkwtzhv37QheA_MO4CpEPmGM0VUC2gYckcrl8,418
|
|
138
|
+
thestage/services/config_provider/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
139
|
+
thestage/services/config_provider/config_provider.py,sha256=rxMydXyAdR45ARwEK4020LmunexucPp4HszCTeKe9v8,10257
|
|
140
|
+
thestage/services/connect/connect_service.py,sha256=FASRfXsiFpqGEDPAmJnnEwyZij0IrJJk29U_Ms4ykiU,9359
|
|
141
|
+
thestage/services/connect/dto/remote_server_config.py,sha256=yuO0tTAgUxCiQ-h1nVvWUMlCUtR-WB_eOH6KYspV7zQ,272
|
|
142
|
+
thestage/services/container/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
143
|
+
thestage/services/container/container_service.py,sha256=ndsjWGupoXlCLAheFij6IcqLtaMickgS5rBMqM7qYkc,14148
|
|
144
|
+
thestage/services/container/mapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
145
|
+
thestage/services/container/mapper/container_mapper.py,sha256=ymIjBLGZnpodh0W2KwNUqRxT0VgM1hsCViNza1nhWHk,1088
|
|
146
|
+
thestage/services/core_files/config_entity.py,sha256=_55m8h2_KXIxl8Y71Yyk3wTj-q1mo918YU1yltzVqgQ,1075
|
|
147
|
+
thestage/services/filesystem_service.py,sha256=Ee62DJ7rlkpBkyz40so7Fwd-39vN03uL6uYapcsiq58,4892
|
|
148
|
+
thestage/services/instance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
149
|
+
thestage/services/instance/instance_service.py,sha256=NqMT9lKXJlcvflJr7GBLD78zehvfHRYCI9onzAO5gVM,12718
|
|
150
|
+
thestage/services/instance/mapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
151
|
+
thestage/services/instance/mapper/instance_mapper.py,sha256=OA0-Z6ODfAK1yBjf7nF-JDKERr8lZUm5vYKk_TFw-v8,1132
|
|
152
|
+
thestage/services/instance/mapper/selfhosted_mapper.py,sha256=KpkvsDV0OWzHhN53md4mgo3xc8siM5idDwL_pSRTouE,1286
|
|
153
|
+
thestage/services/logging/byte_print_style.py,sha256=vUimuC3ZgGujtweQxiRcUXEGlb2yKwv9LRYMy7Gtzhg,139
|
|
154
|
+
thestage/services/logging/dto/log_message.py,sha256=k2clfz2fQnQ-ycFI8g8WYJ_XOjK0hhlA5VhwxVYByaQ,453
|
|
155
|
+
thestage/services/logging/dto/log_type.py,sha256=a6JWnq0ZjJ-2BQrG-fKYYy3UeJS2U2ZzE5P_EXglBfE,95
|
|
156
|
+
thestage/services/logging/exception/log_polling_exception.py,sha256=rKQ7AtNCGKkk5OINIyyjvLT92PU5i_yJUH-Msr9hXQw,226
|
|
157
|
+
thestage/services/logging/logging_constants.py,sha256=4Gk2tglHW_-jnjB8uVIh-ds4fAVBqNW8igfQt8k7Quc,137
|
|
158
|
+
thestage/services/logging/logging_service.py,sha256=7xhzxlSHwaepJtBsPN63-oMF1Ii335REHnMd4J_UFQw,17153
|
|
159
|
+
thestage/services/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
160
|
+
thestage/services/project/dto/inference_simulator_dto.py,sha256=5U4uGp7VC1Yr-T0fqZiSNqZUIybs4J9sV25vjBbAUxI,1312
|
|
161
|
+
thestage/services/project/dto/inference_simulator_model_dto.py,sha256=j4dT-7cduzLd59QnmnfQt_aFsiUucpyJFGb-9rNx5K8,1172
|
|
162
|
+
thestage/services/project/dto/project_config.py,sha256=xLy1P5fwToRNZ7ktEBzfEmmvSqXlEGeLANqWlC8VV_4,557
|
|
163
|
+
thestage/services/project/mapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
164
|
+
thestage/services/project/mapper/project_inference_simulator_mapper.py,sha256=UdOu9IIF5rlNPoWSaaeSKU3ODe8E5uSMgm2V5ywMWKE,812
|
|
165
|
+
thestage/services/project/mapper/project_inference_simulator_model_mapper.py,sha256=PWY0iWbXhvD-G0X0_aQZAFY2bqc0lvRJcQAyC8Y-88Q,869
|
|
166
|
+
thestage/services/project/mapper/project_task_mapper.py,sha256=SHIEXjYwt4vm2B1X2QiI4sCPbBarum0bTOnmTWPOlto,813
|
|
167
|
+
thestage/services/project/project_service.py,sha256=jVJr6ePzjOpai8OZzedDUCR3UwTMQ0bc6JC2xvQ3yRE,58984
|
|
168
|
+
thestage/services/remote_server_service.py,sha256=dYLuwQQeuFC8Z9ozmZgapPZ0xChjBrTYS5frCAJmG3w,23264
|
|
169
|
+
thestage/services/service_factory.py,sha256=WosSbicSvY9dHOkS2OqGCtHkmKdJE1f_K7uEnB3Auaw,4291
|
|
170
|
+
thestage/services/task/dto/task_dto.py,sha256=PJwrUsLLAoO2uA9xvzb27b9iYAoNiBcsHSxKERh2VFo,2335
|
|
171
|
+
thestage/services/validation_service.py,sha256=iopaDKuC_V_4Z_Zly5BFaLL74wG66z9URE86_I-9Hi4,2243
|
|
172
|
+
thestage-0.6.3.dist-info/LICENSE.txt,sha256=U9QrxfdD7Ie7r8z1FleuvOGQvgCF1m0Mjd78cFvWaHE,572
|
|
173
|
+
thestage-0.6.3.dist-info/METADATA,sha256=3vfj6-b9gvyaOjQrpwdzFNgj698we-Q335jT-NAzCLI,5557
|
|
174
|
+
thestage-0.6.3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
175
|
+
thestage-0.6.3.dist-info/entry_points.txt,sha256=57pMhs8zaCM-jgeTffC0WVqCsh35Uq_dUDmzXR80CI4,47
|
|
176
|
+
thestage-0.6.3.dist-info/RECORD,,
|