thestage 0.6.1__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.
Files changed (177) hide show
  1. thestage/.env +4 -5
  2. thestage/__init__.py +3 -3
  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 -802
  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 -433
  57. thestage/services/clients/thestage_api/__init__.py +0 -0
  58. thestage/services/clients/thestage_api/api_client.py +718 -718
  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 -13
  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 +193 -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 -1260
  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.6.1.dist-info → thestage-0.6.3.dist-info}/LICENSE.txt +12 -12
  173. {thestage-0.6.1.dist-info → thestage-0.6.3.dist-info}/METADATA +3 -2
  174. thestage-0.6.3.dist-info/RECORD +176 -0
  175. {thestage-0.6.1.dist-info → thestage-0.6.3.dist-info}/WHEEL +1 -1
  176. thestage-0.6.1.dist-info/RECORD +0 -176
  177. {thestage-0.6.1.dist-info → thestage-0.6.3.dist-info}/entry_points.txt +0 -0
@@ -1,15 +1,15 @@
1
- from typing import Optional
2
-
3
- from pydantic import Field, ConfigDict, BaseModel
4
-
5
-
6
- class ProjectRunTaskRequest(BaseModel):
7
- model_config = ConfigDict(use_enum_values=True)
8
-
9
- projectSlug: str = Field(None, alias='projectSlug')
10
- instanceRentedSlug: Optional[str] = Field(None, alias='instanceRentedSlug')
11
- selfhostedInstanceSlug: Optional[str] = Field(None, alias='selfhostedInstanceSlug')
12
- dockerContainerSlug: Optional[str] = Field(None, alias='dockerContainerSlug')
13
- commitHash: Optional[str] = Field(None, alias='commitHash')
14
- runCommand: str = Field(None, alias='runCommand')
15
- taskTitle: Optional[str] = Field(None, alias='taskTitle')
1
+ from typing import Optional
2
+
3
+ from pydantic import Field, ConfigDict, BaseModel
4
+
5
+
6
+ class ProjectRunTaskRequest(BaseModel):
7
+ model_config = ConfigDict(use_enum_values=True)
8
+
9
+ projectSlug: str = Field(None, alias='projectSlug')
10
+ instanceRentedSlug: Optional[str] = Field(None, alias='instanceRentedSlug')
11
+ selfhostedInstanceSlug: Optional[str] = Field(None, alias='selfhostedInstanceSlug')
12
+ dockerContainerSlug: Optional[str] = Field(None, alias='dockerContainerSlug')
13
+ commitHash: Optional[str] = Field(None, alias='commitHash')
14
+ runCommand: str = Field(None, alias='runCommand')
15
+ taskTitle: Optional[str] = Field(None, alias='taskTitle')
@@ -1,10 +1,10 @@
1
- from pydantic import Field, ConfigDict
2
-
3
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
4
- from thestage.services.task.dto.task_dto import TaskDto
5
-
6
-
7
- class ProjectRunTaskResponse(TheStageBaseResponse):
8
- model_config = ConfigDict(use_enum_values=True)
9
-
10
- task: TaskDto = Field(None, alias='task')
1
+ from pydantic import Field, ConfigDict
2
+
3
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
4
+ from thestage.services.task.dto.task_dto import TaskDto
5
+
6
+
7
+ class ProjectRunTaskResponse(TheStageBaseResponse):
8
+ model_config = ConfigDict(use_enum_values=True)
9
+
10
+ task: TaskDto = Field(None, alias='task')
@@ -1,14 +1,14 @@
1
- from typing import Optional
2
-
3
- from pydantic import Field, ConfigDict, BaseModel
4
-
5
-
6
- class ProjectStartInferenceSimulatorRequest(BaseModel):
7
- model_config = ConfigDict(use_enum_values=True)
8
-
9
- projectSlug: str = Field(None, alias='projectSlug')
10
- instanceRentedUId: Optional[str] = Field(None, alias='instanceRentedUId')
11
- selfhostedInstanceUId: Optional[str] = Field(None, alias='selfhostedInstanceUId')
12
- commitHash: Optional[str] = Field(None, alias='commitHash')
13
- inferenceDir: Optional[str] = Field(None, alias='inferenceDir')
1
+ from typing import Optional
2
+
3
+ from pydantic import Field, ConfigDict, BaseModel
4
+
5
+
6
+ class ProjectStartInferenceSimulatorRequest(BaseModel):
7
+ model_config = ConfigDict(use_enum_values=True)
8
+
9
+ projectSlug: str = Field(None, alias='projectSlug')
10
+ instanceRentedUId: Optional[str] = Field(None, alias='instanceRentedUId')
11
+ selfhostedInstanceUId: Optional[str] = Field(None, alias='selfhostedInstanceUId')
12
+ commitHash: Optional[str] = Field(None, alias='commitHash')
13
+ inferenceDir: Optional[str] = Field(None, alias='inferenceDir')
14
14
  isSkipInstallation: Optional[bool] = Field(False, alias='isSkipInstallation')
@@ -1,10 +1,10 @@
1
- from pydantic import Field, ConfigDict
2
-
3
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
4
- from thestage.services.project.dto.inference_simulator_dto import InferenceSimulatorDto
5
-
6
-
7
- class ProjectStartInferenceSimulatorResponse(TheStageBaseResponse):
8
- model_config = ConfigDict(use_enum_values=True)
9
-
10
- inferenceSimulator: InferenceSimulatorDto = Field(None, alias='inferenceSimulator')
1
+ from pydantic import Field, ConfigDict
2
+
3
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
4
+ from thestage.services.project.dto.inference_simulator_dto import InferenceSimulatorDto
5
+
6
+
7
+ class ProjectStartInferenceSimulatorResponse(TheStageBaseResponse):
8
+ model_config = ConfigDict(use_enum_values=True)
9
+
10
+ inferenceSimulator: InferenceSimulatorDto = Field(None, alias='inferenceSimulator')
@@ -1,32 +1,32 @@
1
- from typing import Optional, List
2
-
3
- from pydantic import Field, BaseModel, ConfigDict
4
-
5
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
- from thestage.services.clients.thestage_api.dtos.selfhosted_instance_response import SelfHostedInstanceDto
7
- from thestage.services.clients.thestage_api.dtos.instance_rented_response import InstanceRentedDto
8
-
9
-
10
- class ProjectDto(BaseModel):
11
- model_config = ConfigDict(use_enum_values=True)
12
-
13
- id: Optional[int] = Field(None, alias='id')
14
- client_id: Optional[int] = Field(None, alias='сlientId')
15
- ssh_key_deploy_id: Optional[int] = Field(None, alias='sshKeyDeployId')
16
- name: Optional[str] = Field(None, alias='name')
17
- slug: Optional[str] = Field(None, alias='slug')
18
- description: Optional[str] = Field(None, alias='description')
19
- github_username: Optional[str] = Field(None, alias='githubCollaboratorUsername')
20
- last_commit_hash: Optional[str] = Field(None, alias='lastCommitHash')
21
- last_commit_description: Optional[str] = Field(None, alias='lastCommitDescription')
22
- git_repository_url: Optional[str] = Field(None, alias='gitRepositoryUrl')
23
- git_repository_name: Optional[str] = Field(None, alias='gitRepositoryName')
24
- task_count: Optional[int] = Field(None, alias='taskCount')
25
- favourite_task_count: Optional[int] = Field(None, alias='favouriteTaskCount')
26
- last_task_run_date: Optional[str] = Field(None, alias='lastTaskRunDate')
27
- created_at: Optional[str] = Field(None, alias='createdAt')
28
- updated_at: Optional[str] = Field(None, alias='updatedAt')
29
-
30
-
31
- class ProjectViewResponse(TheStageBaseResponse):
32
- project: Optional[ProjectDto] = Field(None, alias='project')
1
+ from typing import Optional, List
2
+
3
+ from pydantic import Field, BaseModel, ConfigDict
4
+
5
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
+ from thestage.services.clients.thestage_api.dtos.selfhosted_instance_response import SelfHostedInstanceDto
7
+ from thestage.services.clients.thestage_api.dtos.instance_rented_response import InstanceRentedDto
8
+
9
+
10
+ class ProjectDto(BaseModel):
11
+ model_config = ConfigDict(use_enum_values=True)
12
+
13
+ id: Optional[int] = Field(None, alias='id')
14
+ client_id: Optional[int] = Field(None, alias='сlientId')
15
+ ssh_key_deploy_id: Optional[int] = Field(None, alias='sshKeyDeployId')
16
+ name: Optional[str] = Field(None, alias='name')
17
+ slug: Optional[str] = Field(None, alias='slug')
18
+ description: Optional[str] = Field(None, alias='description')
19
+ github_username: Optional[str] = Field(None, alias='githubCollaboratorUsername')
20
+ last_commit_hash: Optional[str] = Field(None, alias='lastCommitHash')
21
+ last_commit_description: Optional[str] = Field(None, alias='lastCommitDescription')
22
+ git_repository_url: Optional[str] = Field(None, alias='gitRepositoryUrl')
23
+ git_repository_name: Optional[str] = Field(None, alias='gitRepositoryName')
24
+ task_count: Optional[int] = Field(None, alias='taskCount')
25
+ favourite_task_count: Optional[int] = Field(None, alias='favouriteTaskCount')
26
+ last_task_run_date: Optional[str] = Field(None, alias='lastTaskRunDate')
27
+ created_at: Optional[str] = Field(None, alias='createdAt')
28
+ updated_at: Optional[str] = Field(None, alias='updatedAt')
29
+
30
+
31
+ class ProjectViewResponse(TheStageBaseResponse):
32
+ project: Optional[ProjectDto] = Field(None, alias='project')
@@ -1,56 +1,56 @@
1
- from datetime import datetime
2
- from typing import Optional, List, Dict
3
-
4
- from pydantic import Field, BaseModel, ConfigDict
5
-
6
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBasePaginatedResponse
7
- from thestage.services.clients.thestage_api.dtos.frontend_status import FrontendStatusDto
8
- from thestage.services.clients.thestage_api.dtos.paginated_entity_list import PaginatedEntityList
9
- from thestage.services.clients.thestage_api.dtos.pagination_data import PaginationData
10
- from thestage.services.clients.thestage_api.dtos.instance_detected_gpus import InstanceDetectedGpusDto
11
- from thestage.services.clients.thestage_api.dtos.enums.instance_type import InstanceTypeEnumDto
12
- from thestage.services.clients.thestage_api.dtos.enums.selfhosted_status import SelfhostedBusinessStatus
13
- from thestage.services.clients.thestage_api.dtos.enums.cpu_type import InstanceCpuType
14
-
15
-
16
- class SelfHostedInstanceDto(BaseModel):
17
- model_config = ConfigDict(use_enum_values=True)
18
-
19
- instance_type: Optional[InstanceTypeEnumDto] = Field(InstanceTypeEnumDto.UNKNOWN, alias='instanceType')
20
- id: Optional[int] = Field(None, alias='id')
21
- ram_size_gb: Optional[int] = Field(None, alias='ramSizeGb')
22
- client_id: Optional[int] = Field(None, alias='clientId')
23
- slug: Optional[str] = Field(None, alias='slug')
24
- title: Optional[str] = Field(None, alias='title')
25
- cpu_type: Optional[InstanceCpuType] = Field(InstanceCpuType.UNKNOWN, alias='cpuType')
26
- cpu_name: Optional[str] = Field(None, alias='cpuName')
27
- cpu_cores: Optional[int] = Field(None, alias='cpuCores')
28
- gpu_count: Optional[int] = Field(None, alias='gpuCount')
29
- detected_gpus: Optional[InstanceDetectedGpusDto] = Field(None, alias='detectedGpus')
30
- hardware_profile_id: Optional[str] = Field(None, alias='hardwareProfileId')
31
- disk_size_gb: Optional[int] = Field(None, alias='diskSizeGb')
32
-
33
- frontend_status: Optional[FrontendStatusDto] = Field(None, alias='frontendStatus')
34
- business_status: SelfhostedBusinessStatus = Field(SelfhostedBusinessStatus.UNKNOWN, alias='businessStatus')
35
-
36
- updated_at: Optional[datetime] = Field(None, alias='updatedAt')
37
- created_at: Optional[datetime] = Field(None, alias='createdAt')
38
- ip_address: Optional[str] = Field(None, alias='ipAddress')
39
- # not present now
40
- host_username: Optional[str] = Field(None, alias='hostUsername')
41
-
42
-
43
- class SelfHostedInstanceListResponse(TheStageBasePaginatedResponse):
44
- paginated_list: Optional[PaginatedEntityList[SelfHostedInstanceDto]] = Field(None, alias='selfHostedInstanceList')
45
-
46
-
47
- class SelfHostedRentedItemResponse(TheStageBasePaginatedResponse):
48
- model_config = ConfigDict(use_enum_values=True)
49
-
50
- selfhosted_instance: Optional[SelfHostedInstanceDto] = Field(None, alias='selfhostedInstance')
51
-
52
-
53
- class SelfHostedRentedRentedBusinessStatusMapperResponse(TheStageBasePaginatedResponse):
54
- model_config = ConfigDict(use_enum_values=True)
55
-
56
- selfhosted_instance_business_status_map: Dict[str, str] = Field(default={}, alias='selfhostedInstanceBusinessStatusMap')
1
+ from datetime import datetime
2
+ from typing import Optional, List, Dict
3
+
4
+ from pydantic import Field, BaseModel, ConfigDict
5
+
6
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBasePaginatedResponse
7
+ from thestage.services.clients.thestage_api.dtos.frontend_status import FrontendStatusDto
8
+ from thestage.services.clients.thestage_api.dtos.paginated_entity_list import PaginatedEntityList
9
+ from thestage.services.clients.thestage_api.dtos.pagination_data import PaginationData
10
+ from thestage.services.clients.thestage_api.dtos.instance_detected_gpus import InstanceDetectedGpusDto
11
+ from thestage.services.clients.thestage_api.dtos.enums.instance_type import InstanceTypeEnumDto
12
+ from thestage.services.clients.thestage_api.dtos.enums.selfhosted_status import SelfhostedBusinessStatus
13
+ from thestage.services.clients.thestage_api.dtos.enums.cpu_type import InstanceCpuType
14
+
15
+
16
+ class SelfHostedInstanceDto(BaseModel):
17
+ model_config = ConfigDict(use_enum_values=True)
18
+
19
+ instance_type: Optional[InstanceTypeEnumDto] = Field(InstanceTypeEnumDto.UNKNOWN, alias='instanceType')
20
+ id: Optional[int] = Field(None, alias='id')
21
+ ram_size_gb: Optional[int] = Field(None, alias='ramSizeGb')
22
+ client_id: Optional[int] = Field(None, alias='clientId')
23
+ slug: Optional[str] = Field(None, alias='slug')
24
+ title: Optional[str] = Field(None, alias='title')
25
+ cpu_type: Optional[InstanceCpuType] = Field(InstanceCpuType.UNKNOWN, alias='cpuType')
26
+ cpu_name: Optional[str] = Field(None, alias='cpuName')
27
+ cpu_cores: Optional[int] = Field(None, alias='cpuCores')
28
+ gpu_count: Optional[int] = Field(None, alias='gpuCount')
29
+ detected_gpus: Optional[InstanceDetectedGpusDto] = Field(None, alias='detectedGpus')
30
+ hardware_profile_id: Optional[str] = Field(None, alias='hardwareProfileId')
31
+ disk_size_gb: Optional[int] = Field(None, alias='diskSizeGb')
32
+
33
+ frontend_status: Optional[FrontendStatusDto] = Field(None, alias='frontendStatus')
34
+ business_status: SelfhostedBusinessStatus = Field(SelfhostedBusinessStatus.UNKNOWN, alias='businessStatus')
35
+
36
+ updated_at: Optional[datetime] = Field(None, alias='updatedAt')
37
+ created_at: Optional[datetime] = Field(None, alias='createdAt')
38
+ ip_address: Optional[str] = Field(None, alias='ipAddress')
39
+ # not present now
40
+ host_username: Optional[str] = Field(None, alias='hostUsername')
41
+
42
+
43
+ class SelfHostedInstanceListResponse(TheStageBasePaginatedResponse):
44
+ paginated_list: Optional[PaginatedEntityList[SelfHostedInstanceDto]] = Field(None, alias='selfHostedInstanceList')
45
+
46
+
47
+ class SelfHostedRentedItemResponse(TheStageBasePaginatedResponse):
48
+ model_config = ConfigDict(use_enum_values=True)
49
+
50
+ selfhosted_instance: Optional[SelfHostedInstanceDto] = Field(None, alias='selfhostedInstance')
51
+
52
+
53
+ class SelfHostedRentedRentedBusinessStatusMapperResponse(TheStageBasePaginatedResponse):
54
+ model_config = ConfigDict(use_enum_values=True)
55
+
56
+ selfhosted_instance_business_status_map: Dict[str, str] = Field(default={}, alias='selfhostedInstanceBusinessStatusMap')
@@ -1,13 +1,13 @@
1
- from typing import Optional, List
2
-
3
- from pydantic import Field
4
-
5
- from thestage.entities.file_item import FileItemEntity
6
-
7
-
8
- class SftpFileItemEntity(FileItemEntity):
9
-
10
- instance_path: Optional[str] = Field(None)
11
- container_path: Optional[str] = Field(None)
12
- children: List['SftpFileItemEntity'] = Field(default=[])
13
- dest_path: Optional[str] = Field(None)
1
+ from typing import Optional, List
2
+
3
+ from pydantic import Field
4
+
5
+ from thestage.entities.file_item import FileItemEntity
6
+
7
+
8
+ class SftpFileItemEntity(FileItemEntity):
9
+
10
+ instance_path: Optional[str] = Field(None)
11
+ container_path: Optional[str] = Field(None)
12
+ children: List['SftpFileItemEntity'] = Field(default=[])
13
+ dest_path: Optional[str] = Field(None)
@@ -1,8 +1,8 @@
1
- from pydantic import Field, ConfigDict, BaseModel
2
-
3
-
4
- class AddSshKeyToUserRequest(BaseModel):
5
- model_config = ConfigDict(use_enum_values=True)
6
-
7
- sshKey: str = Field(None, alias='sshKey')
8
- note: str = Field(None, alias='note')
1
+ from pydantic import Field, ConfigDict, BaseModel
2
+
3
+
4
+ class AddSshKeyToUserRequest(BaseModel):
5
+ model_config = ConfigDict(use_enum_values=True)
6
+
7
+ sshKey: str = Field(None, alias='sshKey')
8
+ note: str = Field(None, alias='note')
@@ -1,12 +1,12 @@
1
- from typing import Optional
2
-
3
- from pydantic import Field, ConfigDict
4
-
5
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
- from thestage.services.task.dto.task_dto import TaskDto
7
-
8
-
9
- class AddSshKeyToUserResponse(TheStageBaseResponse):
10
- model_config = ConfigDict(use_enum_values=True)
11
-
1
+ from typing import Optional
2
+
3
+ from pydantic import Field, ConfigDict
4
+
5
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
+ from thestage.services.task.dto.task_dto import TaskDto
7
+
8
+
9
+ class AddSshKeyToUserResponse(TheStageBaseResponse):
10
+ model_config = ConfigDict(use_enum_values=True)
11
+
12
12
  sshKeyPairId: Optional[int] = Field(None, alias='sshKeyPairId')
@@ -1,8 +1,8 @@
1
- from pydantic import Field, ConfigDict, BaseModel
2
-
3
-
4
- class AddSshPublicKeyToInstanceRequest(BaseModel):
5
- model_config = ConfigDict(use_enum_values=True)
6
-
7
- instanceRentedId: int = Field(None, alias='instanceRentedId')
8
- sshPublicKeyId: int = Field(None, alias='sshPublicKeyId')
1
+ from pydantic import Field, ConfigDict, BaseModel
2
+
3
+
4
+ class AddSshPublicKeyToInstanceRequest(BaseModel):
5
+ model_config = ConfigDict(use_enum_values=True)
6
+
7
+ instanceRentedId: int = Field(None, alias='instanceRentedId')
8
+ sshPublicKeyId: int = Field(None, alias='sshPublicKeyId')
@@ -1,11 +1,11 @@
1
- from typing import Optional
2
-
3
- from pydantic import Field, ConfigDict
4
-
5
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
- from thestage.services.task.dto.task_dto import TaskDto
7
-
8
-
9
- class AddSshPublicKeyToInstanceResponse(TheStageBaseResponse):
10
- model_config = ConfigDict(use_enum_values=True)
11
-
1
+ from typing import Optional
2
+
3
+ from pydantic import Field, ConfigDict
4
+
5
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
+ from thestage.services.task.dto.task_dto import TaskDto
7
+
8
+
9
+ class AddSshPublicKeyToInstanceResponse(TheStageBaseResponse):
10
+ model_config = ConfigDict(use_enum_values=True)
11
+
@@ -1,7 +1,7 @@
1
- from pydantic import Field, ConfigDict, BaseModel
2
-
3
-
4
- class IsUserHasSshPublicKeyRequest(BaseModel):
5
- model_config = ConfigDict(use_enum_values=True)
6
-
7
- sshKey: str = Field(None, alias='sshKey')
1
+ from pydantic import Field, ConfigDict, BaseModel
2
+
3
+
4
+ class IsUserHasSshPublicKeyRequest(BaseModel):
5
+ model_config = ConfigDict(use_enum_values=True)
6
+
7
+ sshKey: str = Field(None, alias='sshKey')
@@ -1,12 +1,12 @@
1
- from typing import Optional
2
-
3
- from pydantic import Field, ConfigDict, BaseModel
4
-
5
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
-
7
-
8
- class IsUserHasSshPublicKeyResponse(TheStageBaseResponse):
9
- model_config = ConfigDict(use_enum_values=True)
10
-
11
- isUserHasPublicKey: bool = Field(None, alias='isUserHasPublicKey')
12
- sshKeyPairId: Optional[int] = Field(None, alias='sshKeyPairId')
1
+ from typing import Optional
2
+
3
+ from pydantic import Field, ConfigDict, BaseModel
4
+
5
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
+
7
+
8
+ class IsUserHasSshPublicKeyResponse(TheStageBaseResponse):
9
+ model_config = ConfigDict(use_enum_values=True)
10
+
11
+ isUserHasPublicKey: bool = Field(None, alias='isUserHasPublicKey')
12
+ sshKeyPairId: Optional[int] = Field(None, alias='sshKeyPairId')
@@ -1,10 +1,10 @@
1
- from pydantic import Field, ConfigDict, BaseModel
2
-
3
- from thestage.services.clients.thestage_api.dtos.entity_filter_request import EntityFilterRequest
4
-
5
-
6
- class TaskListForProjectRequest(BaseModel):
7
- model_config = ConfigDict(use_enum_values=True)
8
-
9
- entityFilterRequest: EntityFilterRequest = Field(None, alias='entityFilterRequest')
10
- projectSlug: str = Field(None, alias='projectSlug')
1
+ from pydantic import Field, ConfigDict, BaseModel
2
+
3
+ from thestage.services.clients.thestage_api.dtos.entity_filter_request import EntityFilterRequest
4
+
5
+
6
+ class TaskListForProjectRequest(BaseModel):
7
+ model_config = ConfigDict(use_enum_values=True)
8
+
9
+ entityFilterRequest: EntityFilterRequest = Field(None, alias='entityFilterRequest')
10
+ projectSlug: str = Field(None, alias='projectSlug')
@@ -1,12 +1,12 @@
1
-
2
- from pydantic import Field, ConfigDict
3
-
4
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
5
- from thestage.services.clients.thestage_api.dtos.paginated_entity_list import PaginatedEntityList
6
- from thestage.services.task.dto.task_dto import TaskDto
7
-
8
-
9
- class TaskListForProjectResponse(TheStageBaseResponse):
10
- model_config = ConfigDict(use_enum_values=True)
11
-
12
- tasks: PaginatedEntityList[TaskDto] = Field(None, alias='tasks')
1
+
2
+ from pydantic import Field, ConfigDict
3
+
4
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
5
+ from thestage.services.clients.thestage_api.dtos.paginated_entity_list import PaginatedEntityList
6
+ from thestage.services.task.dto.task_dto import TaskDto
7
+
8
+
9
+ class TaskListForProjectResponse(TheStageBaseResponse):
10
+ model_config = ConfigDict(use_enum_values=True)
11
+
12
+ tasks: PaginatedEntityList[TaskDto] = Field(None, alias='tasks')
@@ -1,9 +1,9 @@
1
- from typing import Dict
2
-
3
- from pydantic import Field
4
-
5
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
-
7
-
8
- class TaskStatusLocalizedMapResponse(TheStageBaseResponse):
9
- taskStatusMap: Dict[str, str] = Field(default={}, alias='taskStatusMap')
1
+ from typing import Dict
2
+
3
+ from pydantic import Field
4
+
5
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
+
7
+
8
+ class TaskStatusLocalizedMapResponse(TheStageBaseResponse):
9
+ taskStatusMap: Dict[str, str] = Field(default={}, alias='taskStatusMap')
@@ -1,12 +1,12 @@
1
- from typing import Optional
2
-
3
- from pydantic import Field
4
-
5
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
- from thestage.services.task.dto.task_dto import TaskDto
7
-
8
-
9
- class TaskViewResponse(TheStageBaseResponse):
10
- task: Optional[TaskDto] = Field(None, alias='task')
11
- task_view_url: Optional[str] = Field(None, alias='websiteTaskViewUrl')
12
- task_output_url: Optional[str] = Field(None, alias='websiteTaskOutputUrl')
1
+ from typing import Optional
2
+
3
+ from pydantic import Field
4
+
5
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
+ from thestage.services.task.dto.task_dto import TaskDto
7
+
8
+
9
+ class TaskViewResponse(TheStageBaseResponse):
10
+ task: Optional[TaskDto] = Field(None, alias='task')
11
+ task_view_url: Optional[str] = Field(None, alias='websiteTaskViewUrl')
12
+ task_output_url: Optional[str] = Field(None, alias='websiteTaskOutputUrl')
@@ -1,12 +1,12 @@
1
- from typing import Optional
2
-
3
- from pydantic import BaseModel, Field
4
-
5
-
6
- class UserProfile(BaseModel):
7
- email: Optional[str] = Field(None, alias='email')
8
-
9
-
10
-
11
- class UserProfileResponse(BaseModel):
12
- userProfile: Optional[UserProfile] = Field(None, alias='userProfile')
1
+ from typing import Optional
2
+
3
+ from pydantic import BaseModel, Field
4
+
5
+
6
+ class UserProfile(BaseModel):
7
+ email: Optional[str] = Field(None, alias='email')
8
+
9
+
10
+
11
+ class UserProfileResponse(BaseModel):
12
+ userProfile: Optional[UserProfile] = Field(None, alias='userProfile')
@@ -1,11 +1,11 @@
1
- from typing import Optional, List, Dict
2
-
3
- from pydantic import Field, BaseModel, ConfigDict
4
-
5
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse, TheStageBasePaginatedResponse
6
-
7
-
8
- class ValidateTokenResponse(TheStageBaseResponse):
9
- model_config = ConfigDict(use_enum_values=True)
10
-
11
- allowedCliCommands: Optional[Dict[str, bool]] = Field(default={}, alias='allowedCliCommands')
1
+ from typing import Optional, List, Dict
2
+
3
+ from pydantic import Field, BaseModel, ConfigDict
4
+
5
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse, TheStageBasePaginatedResponse
6
+
7
+
8
+ class ValidateTokenResponse(TheStageBaseResponse):
9
+ model_config = ConfigDict(use_enum_values=True)
10
+
11
+ allowedCliCommands: Optional[Dict[str, bool]] = Field(default={}, alias='allowedCliCommands')
File without changes