thestage 0.5.471__py3-none-any.whl → 0.6.2__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.
Files changed (179) hide show
  1. thestage/.env +5 -5
  2. thestage/__init__.py +3 -4
  3. thestage/__main__.py +9 -9
  4. thestage/cli_command.py +56 -56
  5. thestage/cli_command_helper.py +51 -51
  6. thestage/color_scheme/color_scheme.py +7 -7
  7. thestage/config/__init__.py +18 -18
  8. thestage/config/config_storage.py +5 -5
  9. thestage/config/env_base.py +7 -7
  10. thestage/controllers/__init__.py +0 -0
  11. thestage/controllers/base_controller.py +67 -67
  12. thestage/controllers/config_controller.py +137 -137
  13. thestage/controllers/container_controller.py +389 -389
  14. thestage/controllers/instance_controller.py +183 -183
  15. thestage/controllers/project_controller.py +810 -783
  16. thestage/controllers/utils_controller.py +32 -32
  17. thestage/debug_main.dist.py +28 -28
  18. thestage/entities/__init__.py +0 -0
  19. thestage/entities/container.py +17 -17
  20. thestage/entities/enums/__init__.py +0 -0
  21. thestage/entities/enums/order_direction_type.py +6 -6
  22. thestage/entities/enums/shell_type.py +7 -7
  23. thestage/entities/enums/tail_output_type.py +6 -6
  24. thestage/entities/enums/yes_no_response.py +7 -7
  25. thestage/entities/file_item.py +27 -27
  26. thestage/entities/project_inference_simulator.py +18 -18
  27. thestage/entities/project_inference_simulator_model.py +16 -16
  28. thestage/entities/project_task.py +19 -19
  29. thestage/entities/rented_instance.py +19 -19
  30. thestage/entities/self_hosted_instance.py +18 -18
  31. thestage/exceptions/__init__.py +0 -0
  32. thestage/exceptions/auth_exception.py +6 -6
  33. thestage/exceptions/base_exception.py +13 -13
  34. thestage/exceptions/business_logic_exception.py +6 -6
  35. thestage/exceptions/config_exception.py +6 -6
  36. thestage/exceptions/file_system_exception.py +6 -6
  37. thestage/exceptions/git_access_exception.py +17 -17
  38. thestage/exceptions/remote_server_exception.py +24 -24
  39. thestage/git/ProgressPrinter.py +22 -22
  40. thestage/helpers/__init__.py +0 -0
  41. thestage/helpers/error_handler.py +115 -115
  42. thestage/helpers/exception_hook.py +14 -14
  43. thestage/helpers/logger/__init__.py +0 -0
  44. thestage/helpers/logger/app_logger.py +50 -50
  45. thestage/helpers/ssh_util.py +38 -38
  46. thestage/i18n/en_GB/messages.po +947 -947
  47. thestage/i18n/translation.py +9 -9
  48. thestage/main.py +36 -36
  49. thestage/services/.env +6 -6
  50. thestage/services/__init__.py +0 -0
  51. thestage/services/abstract_mapper.py +9 -9
  52. thestage/services/abstract_service.py +87 -87
  53. thestage/services/app_config_service.py +52 -52
  54. thestage/services/clients/__init__.py +0 -0
  55. thestage/services/clients/git/__init__.py +0 -0
  56. thestage/services/clients/git/git_client.py +436 -331
  57. thestage/services/clients/thestage_api/__init__.py +0 -0
  58. thestage/services/clients/thestage_api/api_client.py +718 -720
  59. thestage/services/clients/thestage_api/core/api_client_core.py +108 -108
  60. thestage/services/clients/thestage_api/core/http_client_exception.py +12 -12
  61. thestage/services/clients/thestage_api/dtos/__init__.py +0 -0
  62. thestage/services/clients/thestage_api/dtos/base_response.py +13 -13
  63. thestage/services/clients/thestage_api/dtos/cloud_provider_region.py +19 -19
  64. thestage/services/clients/thestage_api/dtos/container_param_request.py +11 -11
  65. thestage/services/clients/thestage_api/dtos/container_response.py +67 -67
  66. thestage/services/clients/thestage_api/dtos/docker_container_assigned_device.py +10 -10
  67. thestage/services/clients/thestage_api/dtos/docker_container_controller/docker_container_list_request.py +13 -13
  68. thestage/services/clients/thestage_api/dtos/docker_container_controller/docker_container_list_response.py +13 -13
  69. thestage/services/clients/thestage_api/dtos/docker_container_mapping.py +10 -10
  70. thestage/services/clients/thestage_api/dtos/entity_filter_request.py +14 -14
  71. thestage/services/clients/thestage_api/dtos/enums/__init__.py +0 -0
  72. thestage/services/clients/thestage_api/dtos/enums/container_pending_action.py +10 -10
  73. thestage/services/clients/thestage_api/dtos/enums/container_status.py +17 -17
  74. thestage/services/clients/thestage_api/dtos/enums/cpu_type.py +8 -8
  75. thestage/services/clients/thestage_api/dtos/enums/currency_type.py +10 -10
  76. thestage/services/clients/thestage_api/dtos/enums/daemon_status.py +9 -9
  77. thestage/services/clients/thestage_api/dtos/enums/disk_type.py +7 -7
  78. thestage/services/clients/thestage_api/dtos/enums/drive_type.py +7 -7
  79. thestage/services/clients/thestage_api/dtos/enums/gpu_name.py +8 -8
  80. thestage/services/clients/thestage_api/dtos/enums/inference_model_status.py +9 -9
  81. thestage/services/clients/thestage_api/dtos/enums/inference_simulator_status.py +15 -15
  82. thestage/services/clients/thestage_api/dtos/enums/instance_rented_status.py +17 -17
  83. thestage/services/clients/thestage_api/dtos/enums/instance_type.py +7 -7
  84. thestage/services/clients/thestage_api/dtos/enums/location_region.py +11 -11
  85. thestage/services/clients/thestage_api/dtos/enums/power_status.py +10 -10
  86. thestage/services/clients/thestage_api/dtos/enums/provider_name.py +11 -11
  87. thestage/services/clients/thestage_api/dtos/enums/selfhosted_status.py +10 -10
  88. thestage/services/clients/thestage_api/dtos/enums/task_execution_status.py +12 -12
  89. thestage/services/clients/thestage_api/dtos/enums/task_status.py +12 -12
  90. thestage/services/clients/thestage_api/dtos/frontend_status.py +10 -10
  91. thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_instance_request.py +13 -13
  92. thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_instance_response.py +13 -13
  93. thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_sagemaker_request.py +12 -12
  94. thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_sagemaker_response.py +12 -12
  95. thestage/services/clients/thestage_api/dtos/inference_controller/get_inference_simulator_request.py +10 -10
  96. thestage/services/clients/thestage_api/dtos/inference_controller/get_inference_simulator_response.py +13 -13
  97. thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_list_for_project_request.py +14 -14
  98. thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_list_for_project_response.py +12 -12
  99. thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_model_list_for_project_request.py +12 -12
  100. thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_model_list_for_project_response.py +13 -13
  101. thestage/services/clients/thestage_api/dtos/inference_simulator_model_response.py +11 -11
  102. thestage/services/clients/thestage_api/dtos/inference_simulator_response.py +11 -11
  103. thestage/services/clients/thestage_api/dtos/installed_service.py +17 -17
  104. thestage/services/clients/thestage_api/dtos/instance_detected_gpus.py +20 -20
  105. thestage/services/clients/thestage_api/dtos/instance_rented_response.py +71 -71
  106. thestage/services/clients/thestage_api/dtos/logging_controller/docker_container_log_stream_request.py +7 -7
  107. thestage/services/clients/thestage_api/dtos/logging_controller/log_polling_request.py +13 -13
  108. thestage/services/clients/thestage_api/dtos/logging_controller/log_polling_response.py +14 -14
  109. thestage/services/clients/thestage_api/dtos/logging_controller/task_log_stream_request.py +7 -7
  110. thestage/services/clients/thestage_api/dtos/logging_controller/user_logs_query_request.py +21 -21
  111. thestage/services/clients/thestage_api/dtos/logging_controller/user_logs_query_response.py +14 -14
  112. thestage/services/clients/thestage_api/dtos/paginated_entity_list.py +11 -11
  113. thestage/services/clients/thestage_api/dtos/pagination_data.py +10 -10
  114. thestage/services/clients/thestage_api/dtos/price_definition.py +14 -14
  115. thestage/services/clients/thestage_api/dtos/project_controller/project_get_deploy_ssh_key_request.py +7 -7
  116. thestage/services/clients/thestage_api/dtos/project_controller/project_get_deploy_ssh_key_response.py +10 -10
  117. thestage/services/clients/thestage_api/dtos/project_controller/project_push_inference_simulator_model_request.py +8 -8
  118. thestage/services/clients/thestage_api/dtos/project_controller/project_push_inference_simulator_model_response.py +6 -6
  119. thestage/services/clients/thestage_api/dtos/project_controller/project_run_task_request.py +15 -15
  120. thestage/services/clients/thestage_api/dtos/project_controller/project_run_task_response.py +10 -10
  121. thestage/services/clients/thestage_api/dtos/project_controller/project_start_inference_simulator_request.py +13 -14
  122. thestage/services/clients/thestage_api/dtos/project_controller/project_start_inference_simulator_response.py +10 -10
  123. thestage/services/clients/thestage_api/dtos/project_response.py +32 -32
  124. thestage/services/clients/thestage_api/dtos/selfhosted_instance_response.py +56 -56
  125. thestage/services/clients/thestage_api/dtos/sftp_path_helper.py +13 -13
  126. thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_key_to_user_request.py +8 -8
  127. thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_key_to_user_response.py +11 -11
  128. thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_public_key_to_instance_request.py +8 -8
  129. thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_public_key_to_instance_response.py +11 -11
  130. thestage/services/clients/thestage_api/dtos/ssh_key_controller/is_user_has_public_ssh_key_request.py +7 -7
  131. thestage/services/clients/thestage_api/dtos/ssh_key_controller/is_user_has_public_ssh_key_response.py +12 -12
  132. thestage/services/clients/thestage_api/dtos/task_controller/task_list_for_project_request.py +10 -10
  133. thestage/services/clients/thestage_api/dtos/task_controller/task_list_for_project_response.py +12 -12
  134. thestage/services/clients/thestage_api/dtos/task_controller/task_status_localized_map_response.py +9 -9
  135. thestage/services/clients/thestage_api/dtos/task_controller/task_view_response.py +12 -12
  136. thestage/services/clients/thestage_api/dtos/user_controller/user_profile.py +12 -12
  137. thestage/services/clients/thestage_api/dtos/validate_token_response.py +11 -11
  138. thestage/services/config_provider/__init__.py +0 -0
  139. thestage/services/config_provider/config_provider.py +237 -237
  140. thestage/services/connect/connect_service.py +196 -196
  141. thestage/services/connect/dto/remote_server_config.py +9 -9
  142. thestage/services/container/__init__.py +0 -0
  143. thestage/services/container/container_service.py +374 -374
  144. thestage/services/container/mapper/__init__.py +0 -0
  145. thestage/services/container/mapper/container_mapper.py +30 -30
  146. thestage/services/core_files/config_entity.py +26 -26
  147. thestage/services/filesystem_service.py +133 -133
  148. thestage/services/instance/__init__.py +0 -0
  149. thestage/services/instance/instance_service.py +303 -303
  150. thestage/services/instance/mapper/__init__.py +0 -0
  151. thestage/services/instance/mapper/instance_mapper.py +24 -24
  152. thestage/services/instance/mapper/selfhosted_mapper.py +33 -33
  153. thestage/services/logging/byte_print_style.py +5 -5
  154. thestage/services/logging/dto/log_message.py +15 -15
  155. thestage/services/logging/dto/log_type.py +6 -6
  156. thestage/services/logging/exception/log_polling_exception.py +6 -6
  157. thestage/services/logging/logging_constants.py +3 -3
  158. thestage/services/logging/logging_service.py +367 -367
  159. thestage/services/project/__init__.py +0 -0
  160. thestage/services/project/dto/inference_simulator_dto.py +22 -22
  161. thestage/services/project/dto/inference_simulator_model_dto.py +20 -20
  162. thestage/services/project/dto/project_config.py +14 -14
  163. thestage/services/project/mapper/__init__.py +0 -0
  164. thestage/services/project/mapper/project_inference_simulator_mapper.py +21 -21
  165. thestage/services/project/mapper/project_inference_simulator_model_mapper.py +21 -21
  166. thestage/services/project/mapper/project_task_mapper.py +22 -22
  167. thestage/services/project/project_service.py +1253 -1241
  168. thestage/services/remote_server_service.py +609 -609
  169. thestage/services/service_factory.py +97 -97
  170. thestage/services/task/dto/task_dto.py +40 -40
  171. thestage/services/validation_service.py +61 -61
  172. {thestage-0.5.471.dist-info → thestage-0.6.2.dist-info}/LICENSE.txt +12 -12
  173. {thestage-0.5.471.dist-info → thestage-0.6.2.dist-info}/METADATA +1 -1
  174. thestage-0.6.2.dist-info/RECORD +176 -0
  175. {thestage-0.5.471.dist-info → thestage-0.6.2.dist-info}/WHEEL +1 -1
  176. thestage/debug_tests.py +0 -12
  177. thestage/services/clients/.DS_Store +0 -0
  178. thestage-0.5.471.dist-info/RECORD +0 -178
  179. {thestage-0.5.471.dist-info → thestage-0.6.2.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
1
  Metadata-Version: 2.1
2
2
  Name: thestage
3
- Version: 0.5.471
3
+ Version: 0.6.2
4
4
  Summary:
5
5
  Author: TheStage AI team
6
6
  Author-email: hello@thestage.ai
@@ -0,0 +1,176 @@
1
+ thestage/.env,sha256=GcB35BNZN2gGwbFT-HYIBksewtL30cqdelR1fwDOj9o,188
2
+ thestage/__init__.py,sha256=1zNJbCrXJLJPqFUbb0J1zP44oAmusf9voLJ_GutjhX8,67
3
+ thestage/__main__.py,sha256=VJhc94MF5fBWLGHwddH3IatItmRijgDF3NNQ4O6g6ck,110
4
+ thestage/cli_command.py,sha256=TDkmbdhlv5JD_s9DfObwliyvpuF-qRMCcBzZ9qQjn5g,2229
5
+ thestage/cli_command_helper.py,sha256=PaLoYRuY47FipxnORGjfL_BtudDR3cPkCzlFc8giksk,1990
6
+ thestage/color_scheme/color_scheme.py,sha256=h75nvI3AZk0rK7CfTwSUKFLlIMaro__OFoMX0UzcmgQ,217
7
+ thestage/config/__init__.py,sha256=TdzvVJkzWLsvS60A7p1lPu4mwSqIUUgRcPNICeI31aI,446
8
+ thestage/config/config_storage.py,sha256=RjSATtx0di2zv2wqm6r6XYT9mbfGby2ikdPaIaP8ZCU,145
9
+ thestage/config/env_base.py,sha256=4FrVVu-h1nTRNYu_pEGEiLgFoFqdLw12qo8XCylQRiI,374
10
+ thestage/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ thestage/controllers/base_controller.py,sha256=Zppx8OLPxgfe_7rrWoX-vw9rTs6_KkQynxROZW5LJO4,2525
12
+ thestage/controllers/config_controller.py,sha256=g-1Jfo0y-PyA-VRYzKoJULFGfWgcLa7PJvPSNQlFj2s,5554
13
+ thestage/controllers/container_controller.py,sha256=_GETRHtMEWF0VjwR86adCyUZ2l2awBtP-O7p_qAbBHg,15701
14
+ thestage/controllers/instance_controller.py,sha256=FyNRivZUaTHHrlwqBYIUnwLQcCvYYS0N9GmhlOvygqc,6863
15
+ thestage/controllers/project_controller.py,sha256=QHlkf8OlwxqM1R8wb9Ewf5QIQPTLtbCLYde09IG_9kY,32849
16
+ thestage/controllers/utils_controller.py,sha256=slpKGNvqAju3Zi4ktSYm9ghYI_L3R_t6r9qhsGN8Ng0,944
17
+ thestage/debug_main.dist.py,sha256=a-MB916g639DcgjFLF5j7tsFZ3-_X6_Gm53uCr_zTXo,811
18
+ thestage/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ thestage/entities/container.py,sha256=ZVLCPtHtVyDxxuouy5NS5_PKawiCRdeQrbX6T68C1Bw,550
20
+ thestage/entities/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ thestage/entities/enums/order_direction_type.py,sha256=TMCvz8WTMXQtgSsSCAqJ-U80_pfrI-cwbkfKGMLAwYw,101
22
+ thestage/entities/enums/shell_type.py,sha256=XOABUzskP9Ndkwr4ctqltFSjFBpF7Dkrbx0Vtvd6Ox0,125
23
+ thestage/entities/enums/tail_output_type.py,sha256=1VvsUTHde1rlPq9zHR3l52QhR-yx5WF0mDkQES0K2SU,90
24
+ thestage/entities/enums/yes_no_response.py,sha256=0MYiY_6qcI5NCg-7kQ3TuDqhkuLbxPMoLz6eAzZrCU4,93
25
+ thestage/entities/file_item.py,sha256=8MAAmzGTOuTiCfDvZhJ3RS5Ui-lIf-kuTgyBTzHSHa8,855
26
+ thestage/entities/project_inference_simulator.py,sha256=vUj9SSz_BW_wLn11X7LzyEsWIeql7UKN6oDtyGrV7Lk,615
27
+ thestage/entities/project_inference_simulator_model.py,sha256=4FiASaZ-jvNz9osYYITNmz8SdfDvAAQj52nKjzCfHXs,562
28
+ thestage/entities/project_task.py,sha256=50Av4OTlLeZhS68D8V6CDbI2fi8YFXolmo4Zlkn_Ks8,691
29
+ thestage/entities/rented_instance.py,sha256=MUsjG7E7bZKv_-xn46y96po7SVOs11Rb0hT_l2iz-0A,651
30
+ thestage/entities/self_hosted_instance.py,sha256=GYDLu0Xrk0N5Wg54mdJ96VLSOjU3baodu_jSF5xSILc,647
31
+ thestage/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
+ thestage/exceptions/auth_exception.py,sha256=5lqPgY592BZ7h1KLPKsQxqjZBcRHeMHqHSJM3NdAEu8,220
33
+ thestage/exceptions/base_exception.py,sha256=j-nKDVpyhrEP94LDc8ki-AulDIagrasTIBQ1bOjPwe4,295
34
+ thestage/exceptions/business_logic_exception.py,sha256=rurjo9a25nOn4CITShq9ypG6MIZSWn4jVgS1uX0gHbU,238
35
+ thestage/exceptions/config_exception.py,sha256=QPXSRNuTzZhc_P-I8EyuC1Vj2a5kASX70BGaedNxvKI,224
36
+ thestage/exceptions/file_system_exception.py,sha256=vyf5-yrdY77vJlsgmeu8qF7yM_flakWBtm7srFpvTok,232
37
+ thestage/exceptions/git_access_exception.py,sha256=KpjfJ-NKmjgSRhtjZw0KVc8OeH3CaQ5bFwyv5LPtCnA,482
38
+ thestage/exceptions/remote_server_exception.py,sha256=F9d1kEu_4eGcDzFgtLmgTVOhhh9HXmKcVCLKGsN3RFg,619
39
+ thestage/git/ProgressPrinter.py,sha256=ezGBsAX3Qn970v9D9T0xN1PqfN3knMcrdMXcNXmcPhg,595
40
+ thestage/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
+ thestage/helpers/error_handler.py,sha256=ou1l01Uh-L_dXZOzsXYTF_wz-9Pp7bqBydtbhALM-og,5470
42
+ thestage/helpers/exception_hook.py,sha256=NYDFzu-R-KiUSupJvoTn9kUdDKhfFoJ8kjpd-hvGH20,348
43
+ thestage/helpers/logger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
+ thestage/helpers/logger/app_logger.py,sha256=NOtSkGHjdTM1RBcnacP-A6ZiHGzA5fRLpX1diKY8znc,1657
45
+ thestage/helpers/ssh_util.py,sha256=5CHePHLr7Pg3n0MoXOIxO7uvzQfgo5Y5MzTgXlxr5jo,1300
46
+ thestage/i18n/en_GB/messages.po,sha256=Ie4gyLE925B5qXLNhN22uNnd5-i-i5fUr0KABdv3760,33322
47
+ thestage/i18n/translation.py,sha256=374ERk3wfMH6panMdym5WE62bIYuI7W7o0BKXzWVO0U,293
48
+ thestage/main.py,sha256=8p6Qu_kS8-TJdiWmz_RlaMn6QB63QCerj_K-NF3_SMU,1825
49
+ thestage/services/.env,sha256=t6nNf4JBNRAaHqxzSMKIEM70ONFaEQtgW9C5JbM6j7A,190
50
+ thestage/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ thestage/services/abstract_mapper.py,sha256=q1SeepAGXMqcXu9S8x9h5x3PFEdUWPSy-mHnqAEDYc8,227
52
+ thestage/services/abstract_service.py,sha256=fbxuHOpBTBLMbLHCsDRa5891pDYPbzDPmnWrXWy_yv8,2794
53
+ thestage/services/app_config_service.py,sha256=riPtwRUdLHqsdjyj2Wa5mPdsZ5P1248jKL-zJw-9Rsw,1731
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=EbnviKoDvzKSgxo7IYF-ZLoISDeVXL6GkSlAhYYSBXA,17247
57
+ thestage/services/clients/thestage_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
+ thestage/services/clients/thestage_api/api_client.py,sha256=V3wLhUui6wilY0ISadMGiQh4CpAKCWDjg-CAcMTp4fk,31040
59
+ thestage/services/clients/thestage_api/core/api_client_core.py,sha256=9gVl9vRAPs_0OSF-l3d8h6ZXrabuCmd26F6VjYm3a-A,3561
60
+ thestage/services/clients/thestage_api/core/http_client_exception.py,sha256=dz6RAoMDefGAwuUsOnrBeYJdSmYnAG3UABx57_aUmF4,397
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=z1SJrzXjhPHJofiN3j5Lin5yYEjib3WwFzPmVO8Wq8g,423
63
+ thestage/services/clients/thestage_api/dtos/cloud_provider_region.py,sha256=HInywJn54a9hyIUMf6ILGy6olITrysLNeGoHDXcNuRM,1030
64
+ thestage/services/clients/thestage_api/dtos/container_param_request.py,sha256=EEWjor0Dy5L2NUuOQfTwwKQirDc89_pEaCAPerhG_sQ,447
65
+ thestage/services/clients/thestage_api/dtos/container_response.py,sha256=yV6VcB7HHf1ZS1AdrQAuu6gnCV8_1-CqC8pBF7BaDEQ,3830
66
+ thestage/services/clients/thestage_api/dtos/docker_container_assigned_device.py,sha256=R_dqCKSAFXp2dGuiENriWo4uMv0UOSJ8KK7355JbEJY,371
67
+ thestage/services/clients/thestage_api/dtos/docker_container_controller/docker_container_list_request.py,sha256=F7lUWDDJPCpzYXX4Mg2RJ-GBWthuzp9gcTj39txEd9w,513
68
+ thestage/services/clients/thestage_api/dtos/docker_container_controller/docker_container_list_response.py,sha256=PIvypC2CYAPcFJtAbtKyWvnXdcGI7nsc0jfjjCVhRlM,676
69
+ thestage/services/clients/thestage_api/dtos/docker_container_mapping.py,sha256=9_s-6govl9FCdpLCa4495wZ_Sv34F64gLMM4AqbpYvo,382
70
+ thestage/services/clients/thestage_api/dtos/entity_filter_request.py,sha256=yn32j6M8DoePb_SSa_lZz0PEQX72U7b_axkuVT5otlM,528
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=Qn1lRbd9_KC2sMEVCPGisk6IJMCkBUjNiiqHPCc1y6A,232
73
+ thestage/services/clients/thestage_api/dtos/enums/container_status.py,sha256=C3jtxDc-S09AzoI7N7OScpw01vCSg2Eilo0n02CfKyE,474
74
+ thestage/services/clients/thestage_api/dtos/enums/cpu_type.py,sha256=tM3aAdtUZEiW8Hln9kmXCf1xFN3rfTE5tBaggnO1ij8,162
75
+ thestage/services/clients/thestage_api/dtos/enums/currency_type.py,sha256=rHsE0_xozKrfU7uwUm41nYp_HuMa9H40mqkKPlmrM_E,212
76
+ thestage/services/clients/thestage_api/dtos/enums/daemon_status.py,sha256=-uZG0wK-IH1IlXTbvH0wT1FtvXii7TUyLs1lSS_9u6I,191
77
+ thestage/services/clients/thestage_api/dtos/enums/disk_type.py,sha256=HLDT2oO1d9kREKQj4cqBcaSMbiGtsTMW0OOhS3E4q0U,136
78
+ thestage/services/clients/thestage_api/dtos/enums/drive_type.py,sha256=ZcwR8OVsPSwf4ZfbjeYpczkwlC29fB3cQ9kB6wdyPMY,137
79
+ thestage/services/clients/thestage_api/dtos/enums/gpu_name.py,sha256=-ZK9g1viRxSeuP1m6X9iAQjhZYpFrtGNt_sNwqUjSF0,170
80
+ thestage/services/clients/thestage_api/dtos/enums/inference_model_status.py,sha256=vhT5KvrSgf-qvBkQ1h4iFsTSkhQKFYvO1C9UDI4DGY0,265
81
+ thestage/services/clients/thestage_api/dtos/enums/inference_simulator_status.py,sha256=EM6lPa2bOEVpMAEWkvuZ0rTFYfj6yqP3MF93x4fJWEE,451
82
+ thestage/services/clients/thestage_api/dtos/enums/instance_rented_status.py,sha256=ajDtNnkKfU2qFaUxv82vMk_3UDWV7e180NXvj1uc3Nw,507
83
+ thestage/services/clients/thestage_api/dtos/enums/instance_type.py,sha256=AVFuAJwonHQX7IOb2-cGRQbEDKKR-sdKq6t7cYRXrn0,166
84
+ thestage/services/clients/thestage_api/dtos/enums/location_region.py,sha256=bb0IGFMv6l942_ifTPwY4Fsovt9urY5krvcYdbroz-o,292
85
+ thestage/services/clients/thestage_api/dtos/enums/power_status.py,sha256=MuIY6m9kfbN8SA9tyQ4wGSRVW0oNRfwB_6gEnpWOcyg,249
86
+ thestage/services/clients/thestage_api/dtos/enums/provider_name.py,sha256=7FdrrtpZ6-lVLelFks07vfkogBnXVFvmpPqfD1lTvts,298
87
+ thestage/services/clients/thestage_api/dtos/enums/selfhosted_status.py,sha256=YFo11aWXjQS9CGlUhjEWIJ2fvlIOxsjHeUBxP_LmsSk,295
88
+ thestage/services/clients/thestage_api/dtos/enums/task_execution_status.py,sha256=yNuJ-NaeXpR6yoPyCkSohYek7F2HsrgOe4uoXYBBCNI,315
89
+ thestage/services/clients/thestage_api/dtos/enums/task_status.py,sha256=qzLTCT2O8oI3YB2AG_M79I_rMR8Po_PQYKqxZ50IFqc,294
90
+ thestage/services/clients/thestage_api/dtos/frontend_status.py,sha256=QSJuh1Z6jXKDT7fk7iptXGsNU8AcMrFHFW9ikwK3Xuo,322
91
+ thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_instance_request.py,sha256=lJu6dAn09ptfryCE1T_EG0j5mDy5lNOp2IiLvj4fLJw,625
92
+ thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_instance_response.py,sha256=eseZEfS2YR1xeOmrajkDK1i0NYG0XgvJg9F-ue-WmIs,509
93
+ thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_sagemaker_request.py,sha256=t_ixnYY0acuI8mjQclFmDT7D2JqoJDw0KiHyCaAwczs,420
94
+ thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_sagemaker_response.py,sha256=unYiQYdwAt0kZtRbf9TJ46J-xciCvYkVVhj5RiAsf_E,434
95
+ thestage/services/clients/thestage_api/dtos/inference_controller/get_inference_simulator_request.py,sha256=PTT84TlfisV7IkTsENoXJd2_r0V_y2R9YYoxJN5_do4,347
96
+ thestage/services/clients/thestage_api/dtos/inference_controller/get_inference_simulator_response.py,sha256=jtUXf_YuM8XH2wox62NKGqi0oZsrQcK4-h_w-HxPrqE,487
97
+ thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_list_for_project_request.py,sha256=hBA2ZvvS3hJPU0bZ3jq5FTxVfDQFj1YZMeBpE8ggNqE,522
98
+ thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_list_for_project_response.py,sha256=uL4LJJkso-HZsJ8JN4HQ_fgTgFjvKGoPJibv20bAJvI,566
99
+ thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_model_list_for_project_request.py,sha256=5sGgaUirhEYwjNOuUpjhpa0braUeoj7-pw90WdwYhpo,498
100
+ thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_model_list_for_project_response.py,sha256=wwTBazHfTEjAmurPgrj1cie-xqfZlLBrctkXe4F553g,686
101
+ thestage/services/clients/thestage_api/dtos/inference_simulator_model_response.py,sha256=6f7AOssezfB2hhZpAKtXnAtcdXXfHKSIcinUk9Uc8OI,432
102
+ thestage/services/clients/thestage_api/dtos/inference_simulator_response.py,sha256=t9Ie3FU0z40TCnLdHnkPWkxV6enkoVlJlXXEWmqI8YM,416
103
+ thestage/services/clients/thestage_api/dtos/installed_service.py,sha256=f2wCKmGVF8ol3pr4anTP9C6OcBcuIvEKMzeU2JF3SnI,679
104
+ thestage/services/clients/thestage_api/dtos/instance_detected_gpus.py,sha256=9bP51UuH4GC6uPbEbejWfmBUj_-bTrBFLytlT70yuzk,656
105
+ thestage/services/clients/thestage_api/dtos/instance_rented_response.py,sha256=oAESbVHOBbDtgQPf06jEEPzpEGaDbD6IqEyWnig2zHk,4549
106
+ thestage/services/clients/thestage_api/dtos/logging_controller/docker_container_log_stream_request.py,sha256=ghC6hinXf-Ujwzk9MVmy3sNxrSEmsUkuTKpOp_jqJfg,230
107
+ thestage/services/clients/thestage_api/dtos/logging_controller/log_polling_request.py,sha256=7DVXQ2k5p8e5skhAku0_fJz1zMg0MKjQzeH8AAQ4Lik,539
108
+ thestage/services/clients/thestage_api/dtos/logging_controller/log_polling_response.py,sha256=pGRcI7RFl28o-uIVMBhDSwTuWFr5xLWmbv8FtfPkeXw,562
109
+ thestage/services/clients/thestage_api/dtos/logging_controller/task_log_stream_request.py,sha256=sjTKzulneWi01Ees8_OekiiCvBys6KdCq_Z5hxtCPbY,197
110
+ thestage/services/clients/thestage_api/dtos/logging_controller/user_logs_query_request.py,sha256=yM0RfeGhbrA0WuOtU1gXOkQjmw9e40ELORbICQ2mnIk,1053
111
+ thestage/services/clients/thestage_api/dtos/logging_controller/user_logs_query_response.py,sha256=phuoXrF-KYZQz_9PFse2zy5TMV5EEQWN5OqHPME11yQ,573
112
+ thestage/services/clients/thestage_api/dtos/paginated_entity_list.py,sha256=Mu8R0HDLayXhXkJ0gkG5R42NT8CBBeiw2HTEppZCRqM,430
113
+ thestage/services/clients/thestage_api/dtos/pagination_data.py,sha256=mWg4Es1VPFUiIziDX0BwJ6hiZuXfH7WSov1NcDt13VQ,367
114
+ thestage/services/clients/thestage_api/dtos/price_definition.py,sha256=1ynQ8b78_V828Sg5e5bO1nN0nejC7KfU_Lx0YHyLLmY,586
115
+ thestage/services/clients/thestage_api/dtos/project_controller/project_get_deploy_ssh_key_request.py,sha256=A1MZ5TNugyArFC1Mcu_kxilksHQPxHCqX1r1AOiBWMk,216
116
+ thestage/services/clients/thestage_api/dtos/project_controller/project_get_deploy_ssh_key_response.py,sha256=pvCUAqJUBCSVLVTIwDwuCUUj6wgXXX672xn4hP1hEeA,373
117
+ thestage/services/clients/thestage_api/dtos/project_controller/project_push_inference_simulator_model_request.py,sha256=Pl9Id5qYJa4ktqRYP3mmnh2Lk2colAFg98wSezBpagA,253
118
+ thestage/services/clients/thestage_api/dtos/project_controller/project_push_inference_simulator_model_response.py,sha256=ghF7dqwMr5pcB5lPMpOR3l9ddulVadgeVK-U_S7nNoA,255
119
+ thestage/services/clients/thestage_api/dtos/project_controller/project_run_task_request.py,sha256=2vLZHOsNMDieqslXifcSllOxdRO9JFYyBaFbQapsV3I,675
120
+ thestage/services/clients/thestage_api/dtos/project_controller/project_run_task_response.py,sha256=ibm28lhgO1gp-gCJ3VIkoC577ArPntoDqopG5VbPmhY,350
121
+ thestage/services/clients/thestage_api/dtos/project_controller/project_start_inference_simulator_request.py,sha256=UWs2Hf0PY_QmDxItN-xO2JUwJT3AtWo8evetAH-zdYc,636
122
+ thestage/services/clients/thestage_api/dtos/project_controller/project_start_inference_simulator_response.py,sha256=M7vff2W2vsc54yomx41JgFWhWalcZKADGTw0Teu_4_I,440
123
+ thestage/services/clients/thestage_api/dtos/project_response.py,sha256=fHm8WfCE-LTNesdCyiXbo8X2TCRYWeGNwYSgm-6j6eg,1723
124
+ thestage/services/clients/thestage_api/dtos/selfhosted_instance_response.py,sha256=vETdcPmygZx3YD9dO0iDcwOtvQQHCSxrfIMgdN0suH4,3103
125
+ thestage/services/clients/thestage_api/dtos/sftp_path_helper.py,sha256=URE7YekBm9rueLmKXe6YT6uff3-PjqQGfwtX5lMjg8E,375
126
+ thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_key_to_user_request.py,sha256=0Ee2bqJ8ZqygrlGvSfd8_w89r0IYabdgy_W3PcfvLQw,242
127
+ thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_key_to_user_response.py,sha256=Yc1tlFhc69S7aZ38B0LoDHsHtzmwwdiXso0hg1uQIq8,402
128
+ thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_public_key_to_instance_request.py,sha256=5_y5jpNRkAaxBDEljC5uzSS8RtoiUP60WXOr-dt5zcA,292
129
+ thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_public_key_to_instance_response.py,sha256=OfSET-vbCcNWhDzK12-h97tVKlNysGCn9sFLeA-y7Ik,345
130
+ thestage/services/clients/thestage_api/dtos/ssh_key_controller/is_user_has_public_ssh_key_request.py,sha256=ACSfwVp1bwr-cBqtDXz7Q_gKXORjQsA6VNuJ3YB9vyQ,205
131
+ thestage/services/clients/thestage_api/dtos/ssh_key_controller/is_user_has_public_ssh_key_response.py,sha256=Qjj7dBMHka1r5_8NMOL5epRlj_lZRNqNSWJaj_GhWd0,436
132
+ thestage/services/clients/thestage_api/dtos/task_controller/task_list_for_project_request.py,sha256=30Llr2MUaYiSBKPTbgJPhMWfaoDrYgSqHua78nmADb8,402
133
+ thestage/services/clients/thestage_api/dtos/task_controller/task_list_for_project_response.py,sha256=xaKEI-RmPneIOJprHimavC9qQkK6V-j-vDDe1sqXTfw,478
134
+ thestage/services/clients/thestage_api/dtos/task_controller/task_status_localized_map_response.py,sha256=8jsH-MdojlvrkUGuZ2ji22jz7WZJ5hxbYl0ISFQcMjg,292
135
+ thestage/services/clients/thestage_api/dtos/task_controller/task_view_response.py,sha256=hBoevNGP69oZ-9An7FkPBU4MNSpITSC6vhKTFfpnuac,474
136
+ thestage/services/clients/thestage_api/dtos/user_controller/user_profile.py,sha256=oTedbt5sTIQWnKbbKR-j07Jv-z6GQrwbzc5q4n1U4MA,280
137
+ thestage/services/clients/thestage_api/dtos/validate_token_response.py,sha256=wdpiY90L7KC4Wl0NX5C0baqnNfW4Hhz83nkBK1DPZ5g,429
138
+ thestage/services/config_provider/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
+ thestage/services/config_provider/config_provider.py,sha256=Aejo3fSPrf_61khDulC2IyHd6TD8n0c8QC85N9CBEnM,10494
140
+ thestage/services/connect/connect_service.py,sha256=aVzm-72ODmbqW2ehRvE024qbqOYmKHMS6r70Zg2pnEw,9644
141
+ thestage/services/connect/dto/remote_server_config.py,sha256=5z8yNjqqgYI0fpKKg-MGUvoJ9tYXxYRk0Y2CHnD4vlk,281
142
+ thestage/services/container/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
+ thestage/services/container/container_service.py,sha256=G3Mux2EVwUz60tyotawD_pcHTBuaTclEKSOc2eBRQJs,14522
144
+ thestage/services/container/mapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
+ thestage/services/container/mapper/container_mapper.py,sha256=TKkPUkcSX309kaZWk4ZPutdZtonRZZfNEFvaPE3wYD8,1118
146
+ thestage/services/core_files/config_entity.py,sha256=tYtULrTNBETv8Ia5IoBvH18iiWupfMDnQMrfay4eJBw,1101
147
+ thestage/services/filesystem_service.py,sha256=l0Fy0I0Y6AsJnTuB4_W089QaiiTXW6N6mBJrq7ZYEmY,5025
148
+ thestage/services/instance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
+ thestage/services/instance/instance_service.py,sha256=RiD-s7DZfK2VYXSqLe79iaTPbPW_C0_ra1WlATtEQxI,13021
150
+ thestage/services/instance/mapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
+ thestage/services/instance/mapper/instance_mapper.py,sha256=QlHXMbrtrzZwH1MVNZmZS-6mbdziE93xwHZPFapk32c,1156
152
+ thestage/services/instance/mapper/selfhosted_mapper.py,sha256=UZ_c_Qw1MF3x4RTcaT64WZnStnI0lM5EDJUSwYGiE50,1319
153
+ thestage/services/logging/byte_print_style.py,sha256=I9yX_SFhYlGzseFLVojYo3uXOQUn7m1IpE3NmLS7nRc,144
154
+ thestage/services/logging/dto/log_message.py,sha256=2Rbqv0ni839V0LI3cCMXmaEn6hlAX36YwAwT25AM8_0,468
155
+ thestage/services/logging/dto/log_type.py,sha256=Cqp0nglk8FZQkKZzqrECpZox9k6_MZI27qFs8r2lB1s,101
156
+ thestage/services/logging/exception/log_polling_exception.py,sha256=JPhlutOUwAUnf8Ue-5VY5Vr973vPyYiv_K-cmwj0v3M,232
157
+ thestage/services/logging/logging_constants.py,sha256=UfAntS6F8CUheNzEXJJVp4pYIfMXtN9-SAnUJJTXvco,140
158
+ thestage/services/logging/logging_service.py,sha256=trNV6OPJACX1i5lnrV8hbp23MRCKQtn_vdq8qS9vVtM,17520
159
+ thestage/services/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
+ thestage/services/project/dto/inference_simulator_dto.py,sha256=vgIFRuiUdbAMTPriIbgdNq0Bh4-YtGPkoXYxS2ThIhw,1334
161
+ thestage/services/project/dto/inference_simulator_model_dto.py,sha256=FqkGOO9WKdgp2VyjuA1aPV38g53WC_gpAfnVheufWZg,1192
162
+ thestage/services/project/dto/project_config.py,sha256=kQaTEEHGxokFhiCYGH6_734gG6GAPfhUL-XjtnuJhu8,571
163
+ thestage/services/project/mapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
+ thestage/services/project/mapper/project_inference_simulator_mapper.py,sha256=ydP3_ehaZxlVHpqVXz0xtDIjFLtLxGQOIVLK30griqI,833
165
+ thestage/services/project/mapper/project_inference_simulator_model_mapper.py,sha256=Q3_CVzTNLzjRjnReqHjkueYWO_9xeQ6rDiQSR02-u-0,890
166
+ thestage/services/project/mapper/project_task_mapper.py,sha256=T8eFnmMh4ebY35oX_tSSMiP2dGfvoPMMm0FHPXTCDGg,835
167
+ thestage/services/project/project_service.py,sha256=hKd-hlgq3pikLVVDHfwnyf6EctON5m4Xttxw1h5nj8E,60237
168
+ thestage/services/remote_server_service.py,sha256=UziUvQPG2TsdbCN-GeSseXm-mqp7jiNKKHgSKZ-jozM,23873
169
+ thestage/services/service_factory.py,sha256=PEzZcOcJvgE9WjtfizA834Rkz0GXpL68iejQXW6-l4E,4388
170
+ thestage/services/task/dto/task_dto.py,sha256=xPcJ7g70RcqrmPtwscXtXAQrX2WYNdqdwCShcivNX80,2375
171
+ thestage/services/validation_service.py,sha256=MHH2eIPyg41otMHq9unwuLAE83BpjYIAx2sFT_DyrsI,2304
172
+ thestage-0.6.2.dist-info/LICENSE.txt,sha256=2fTfWmY094en7UPSH1QIbS12Qa3Wsfx-zI6z04oNASI,584
173
+ thestage-0.6.2.dist-info/METADATA,sha256=EOOwFwCJtNaaY6_X7mMStvSj4Z6idS3BLUOFZ9gLTBo,5506
174
+ thestage-0.6.2.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
175
+ thestage-0.6.2.dist-info/entry_points.txt,sha256=57pMhs8zaCM-jgeTffC0WVqCsh35Uq_dUDmzXR80CI4,47
176
+ thestage-0.6.2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 1.8.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any