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,13 +1,13 @@
1
- from typing import Optional, List
2
-
3
- from pydantic import Field, ConfigDict, BaseModel
4
-
5
- from thestage.services.clients.thestage_api.dtos.entity_filter_request import EntityFilterRequest
6
-
7
-
8
- class InferenceSimulatorModelListForProjectRequest(BaseModel):
9
- model_config = ConfigDict(use_enum_values=True)
10
-
11
- entityFilterRequest: EntityFilterRequest = Field(None, alias='entityFilterRequest')
12
- projectSlug: str = Field(None, alias='projectSlug')
1
+ from typing import Optional, List
2
+
3
+ from pydantic import Field, ConfigDict, BaseModel
4
+
5
+ from thestage.services.clients.thestage_api.dtos.entity_filter_request import EntityFilterRequest
6
+
7
+
8
+ class InferenceSimulatorModelListForProjectRequest(BaseModel):
9
+ model_config = ConfigDict(use_enum_values=True)
10
+
11
+ entityFilterRequest: EntityFilterRequest = Field(None, alias='entityFilterRequest')
12
+ projectSlug: str = Field(None, alias='projectSlug')
13
13
  statuses: Optional[List[str]] = None
@@ -1,13 +1,13 @@
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.project.dto.inference_simulator_dto import InferenceSimulatorDto
7
- from thestage.services.project.dto.inference_simulator_model_dto import InferenceSimulatorModelDto
8
-
9
-
10
- class InferenceSimulatorModelListForProjectResponse(TheStageBaseResponse):
11
- model_config = ConfigDict(use_enum_values=True)
12
-
13
- inferenceSimulatorModels: PaginatedEntityList[InferenceSimulatorModelDto] = Field(None, alias='inferenceSimulatorModels')
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.project.dto.inference_simulator_dto import InferenceSimulatorDto
7
+ from thestage.services.project.dto.inference_simulator_model_dto import InferenceSimulatorModelDto
8
+
9
+
10
+ class InferenceSimulatorModelListForProjectResponse(TheStageBaseResponse):
11
+ model_config = ConfigDict(use_enum_values=True)
12
+
13
+ inferenceSimulatorModels: PaginatedEntityList[InferenceSimulatorModelDto] = Field(None, alias='inferenceSimulatorModels')
@@ -1,11 +1,11 @@
1
- from typing import Dict
2
-
3
- from pydantic import Field, ConfigDict
4
-
5
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBasePaginatedResponse
6
-
7
-
8
- class InferenceSimulatorModelStatusMapperResponse(TheStageBasePaginatedResponse):
9
- model_config = ConfigDict(use_enum_values=True)
10
-
11
- inference_simulator_model_status_map: Dict[str, str] = Field(default={}, alias='inferenceSimulatorModelStatusMap')
1
+ from typing import Dict
2
+
3
+ from pydantic import Field, ConfigDict
4
+
5
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBasePaginatedResponse
6
+
7
+
8
+ class InferenceSimulatorModelStatusMapperResponse(TheStageBasePaginatedResponse):
9
+ model_config = ConfigDict(use_enum_values=True)
10
+
11
+ inference_simulator_model_status_map: Dict[str, str] = Field(default={}, alias='inferenceSimulatorModelStatusMap')
@@ -1,11 +1,11 @@
1
- from typing import Dict
2
-
3
- from pydantic import Field, ConfigDict
4
-
5
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBasePaginatedResponse
6
-
7
-
8
- class InferenceSimulatorStatusMapperResponse(TheStageBasePaginatedResponse):
9
- model_config = ConfigDict(use_enum_values=True)
10
-
11
- inference_simulator_status_map: Dict[str, str] = Field(default={}, alias='inferenceSimulatorStatusMap')
1
+ from typing import Dict
2
+
3
+ from pydantic import Field, ConfigDict
4
+
5
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBasePaginatedResponse
6
+
7
+
8
+ class InferenceSimulatorStatusMapperResponse(TheStageBasePaginatedResponse):
9
+ model_config = ConfigDict(use_enum_values=True)
10
+
11
+ inference_simulator_status_map: Dict[str, str] = Field(default={}, alias='inferenceSimulatorStatusMap')
@@ -1,18 +1,18 @@
1
- from typing import Optional, Dict, List
2
-
3
- from pydantic import BaseModel, ConfigDict, Field
4
-
5
-
6
- class DockerContainerInstalledServiceDto(BaseModel):
7
- model_config = ConfigDict(use_enum_values=True)
8
-
9
- name: Optional[str] = Field(None, alias='name')
10
- port: Optional[int] = Field(None, alias='port')
11
- url: Optional[str] = Field(None, alias='url')
12
- variables: Dict[str, str] = Field(default_factory=dict, alias='variables')
13
-
14
-
15
- class DockerContainerInstalledServicesDto(BaseModel):
16
- model_config = ConfigDict(use_enum_values=True)
17
-
1
+ from typing import Optional, Dict, List
2
+
3
+ from pydantic import BaseModel, ConfigDict, Field
4
+
5
+
6
+ class DockerContainerInstalledServiceDto(BaseModel):
7
+ model_config = ConfigDict(use_enum_values=True)
8
+
9
+ name: Optional[str] = Field(None, alias='name')
10
+ port: Optional[int] = Field(None, alias='port')
11
+ url: Optional[str] = Field(None, alias='url')
12
+ variables: Dict[str, str] = Field(default_factory=dict, alias='variables')
13
+
14
+
15
+ class DockerContainerInstalledServicesDto(BaseModel):
16
+ model_config = ConfigDict(use_enum_values=True)
17
+
18
18
  installed_services: List[DockerContainerInstalledServiceDto] = Field(default_factory=list, alias='installedServices')
@@ -1,20 +1,20 @@
1
-
2
- from typing import Optional, List
3
-
4
- from pydantic import Field, BaseModel, ConfigDict
5
-
6
- from thestage.services.clients.thestage_api.dtos.enums.gpu_name import InstanceGpuType
7
-
8
-
9
- class InstanceDaemonGpuDto(BaseModel):
10
-
11
- gpu_id: Optional[int] = Field(None, alias='gpuId')
12
- name: Optional[str] = Field(None, alias='name')
13
- uuid: Optional[str] = Field(None, alias='uuid')
14
- type: Optional[InstanceGpuType] = Field(InstanceGpuType.UNKNOWN, alias='type')
15
-
16
-
17
- class InstanceDetectedGpusDto(BaseModel):
18
- model_config = ConfigDict(use_enum_values=True)
19
-
20
- gpus: List[InstanceDaemonGpuDto] = Field(default_factory=list, alias='gpus')
1
+
2
+ from typing import Optional, List
3
+
4
+ from pydantic import Field, BaseModel, ConfigDict
5
+
6
+ from thestage.services.clients.thestage_api.dtos.enums.gpu_name import InstanceGpuType
7
+
8
+
9
+ class InstanceDaemonGpuDto(BaseModel):
10
+
11
+ gpu_id: Optional[int] = Field(None, alias='gpuId')
12
+ name: Optional[str] = Field(None, alias='name')
13
+ uuid: Optional[str] = Field(None, alias='uuid')
14
+ type: Optional[InstanceGpuType] = Field(InstanceGpuType.UNKNOWN, alias='type')
15
+
16
+
17
+ class InstanceDetectedGpusDto(BaseModel):
18
+ model_config = ConfigDict(use_enum_values=True)
19
+
20
+ gpus: List[InstanceDaemonGpuDto] = Field(default_factory=list, alias='gpus')
@@ -1,71 +1,71 @@
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.enums.daemon_status import DaemonStatus
7
- from thestage.services.clients.thestage_api.dtos.frontend_status import FrontendStatusDto
8
- from thestage.services.clients.thestage_api.dtos.instance_detected_gpus import InstanceDetectedGpusDto
9
- from thestage.services.clients.thestage_api.dtos.enums.instance_type import InstanceTypeEnumDto
10
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBasePaginatedResponse
11
- from thestage.services.clients.thestage_api.dtos.paginated_entity_list import PaginatedEntityList
12
- from thestage.services.clients.thestage_api.dtos.cloud_provider_region import CloudProviderRegionDto
13
- from thestage.services.clients.thestage_api.dtos.enums.disk_type import DiskTypeEnumDto
14
- from thestage.services.clients.thestage_api.dtos.enums.gpu_name import InstanceGpuType
15
- from thestage.services.clients.thestage_api.dtos.enums.power_status import PowerStatusEnumDto
16
- from thestage.services.clients.thestage_api.dtos.enums.instance_rented_status import InstanceRentedBusinessStatus
17
- from thestage.services.clients.thestage_api.dtos.price_definition import PriceDefinitionDto
18
- from thestage.services.clients.thestage_api.dtos.enums.cpu_type import InstanceCpuType
19
-
20
-
21
- class InstanceRentedDto(BaseModel):
22
- model_config = ConfigDict(use_enum_values=True)
23
-
24
- id: Optional[int] = Field(None, alias='id')
25
- display_price_per_hour: Optional[PriceDefinitionDto] = Field(None, alias='displayPricePerHour')
26
- total_money_spent: Optional[List[PriceDefinitionDto]] = Field(default_factory=list, alias='totalMoneySpent')
27
- client_id: Optional[int] = Field(None, alias='clientId')
28
- instance_type: Optional[InstanceTypeEnumDto] = Field(InstanceTypeEnumDto.UNKNOWN, alias='instanceType', validate_default=True)
29
- provider_id: Optional[str] = Field(None, alias='providerId')
30
- cloud_provider_region_id: Optional[int] = Field(None, alias='cloudProviderRegionId')
31
- cloud_provider_region: Optional[CloudProviderRegionDto] = Field(None, alias='cloudProviderRegion')
32
- cpu_type: Optional[InstanceCpuType] = Field(InstanceCpuType.UNKNOWN, alias='cpuType')
33
- cpu_name: Optional[str] = Field(None, alias='cpuName')
34
- cpu_cores: Optional[int] = Field(None, alias='cpuCores')
35
- gpu_type: Optional[InstanceGpuType] = Field(Optional[InstanceGpuType.UNKNOWN], alias='gpuType')
36
- gpu_name: Optional[str] = Field(None, alias='gpuName')
37
- gpu_memory_gb: Optional[int] = Field(None, alias='gpuMemoryGb')
38
- gpu_count: Optional[int] = Field(None, alias='gpuCount')
39
- disk_type: Optional[DiskTypeEnumDto] = Field(DiskTypeEnumDto.UNKNOWN, alias='diskType')
40
- disk_size_gb: Optional[int] = Field(None, alias='diskSizeGb')
41
- ram_size_gb: Optional[int] = Field(None, alias='ramSizeGb')
42
- average_renting_time_minutes: Optional[int] = Field(None, alias='averageRentingTimeMinutes')
43
-
44
- business_status: InstanceRentedBusinessStatus = Field(InstanceRentedBusinessStatus.UNKNOWN, alias='businessStatus')
45
- frontend_status: Optional[FrontendStatusDto] = Field(None, alias='frontendStatus')
46
-
47
- slug: Optional[str] = Field(None, alias='slug')
48
- title: Optional[str] = Field(None, alias='title')
49
- power_status: PowerStatusEnumDto = Field(PowerStatusEnumDto.UNKNOWN, alias='powerStatus')
50
- created_at: Optional[datetime] = Field(None, alias='createdAt')
51
- updated_at: Optional[datetime] = Field(None, alias='updatedAt')
52
- ip_address: Optional[str] = Field(None, alias='ipAddress')
53
- host_username: Optional[str] = Field(None, alias='hostUsername')
54
- detected_gpus: Optional[InstanceDetectedGpusDto] = Field(None, alias='detectedGpus')
55
- daemon_status: Optional[DaemonStatus] = Field(DaemonStatus.UNKNOWN, alias='daemonStatus')
56
-
57
-
58
- class InstanceRentedListResponse(TheStageBasePaginatedResponse):
59
- paginated_list: Optional[PaginatedEntityList[InstanceRentedDto]] = Field(None, alias='paginatedEntityList')
60
-
61
-
62
- class InstanceRentedItemResponse(TheStageBasePaginatedResponse):
63
- model_config = ConfigDict(use_enum_values=True)
64
-
65
- instance_rented: Optional[InstanceRentedDto] = Field(None, alias='instanceRented')
66
-
67
-
68
- class InstanceRentedBusinessStatusMapperResponse(TheStageBasePaginatedResponse):
69
- model_config = ConfigDict(use_enum_values=True)
70
-
71
- instance_rented_business_status_map: Dict[str, str] = Field(default={}, alias='instanceRentedBusinessStatusMap')
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.enums.daemon_status import DaemonStatus
7
+ from thestage.services.clients.thestage_api.dtos.frontend_status import FrontendStatusDto
8
+ from thestage.services.clients.thestage_api.dtos.instance_detected_gpus import InstanceDetectedGpusDto
9
+ from thestage.services.clients.thestage_api.dtos.enums.instance_type import InstanceTypeEnumDto
10
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBasePaginatedResponse
11
+ from thestage.services.clients.thestage_api.dtos.paginated_entity_list import PaginatedEntityList
12
+ from thestage.services.clients.thestage_api.dtos.cloud_provider_region import CloudProviderRegionDto
13
+ from thestage.services.clients.thestage_api.dtos.enums.disk_type import DiskTypeEnumDto
14
+ from thestage.services.clients.thestage_api.dtos.enums.gpu_name import InstanceGpuType
15
+ from thestage.services.clients.thestage_api.dtos.enums.power_status import PowerStatusEnumDto
16
+ from thestage.services.clients.thestage_api.dtos.enums.instance_rented_status import InstanceRentedBusinessStatus
17
+ from thestage.services.clients.thestage_api.dtos.price_definition import PriceDefinitionDto
18
+ from thestage.services.clients.thestage_api.dtos.enums.cpu_type import InstanceCpuType
19
+
20
+
21
+ class InstanceRentedDto(BaseModel):
22
+ model_config = ConfigDict(use_enum_values=True)
23
+
24
+ id: Optional[int] = Field(None, alias='id')
25
+ display_price_per_hour: Optional[PriceDefinitionDto] = Field(None, alias='displayPricePerHour')
26
+ total_money_spent: Optional[List[PriceDefinitionDto]] = Field(default_factory=list, alias='totalMoneySpent')
27
+ client_id: Optional[int] = Field(None, alias='clientId')
28
+ instance_type: Optional[InstanceTypeEnumDto] = Field(InstanceTypeEnumDto.UNKNOWN, alias='instanceType', validate_default=True)
29
+ provider_id: Optional[str] = Field(None, alias='providerId')
30
+ cloud_provider_region_id: Optional[int] = Field(None, alias='cloudProviderRegionId')
31
+ cloud_provider_region: Optional[CloudProviderRegionDto] = Field(None, alias='cloudProviderRegion')
32
+ cpu_type: Optional[InstanceCpuType] = Field(InstanceCpuType.UNKNOWN, alias='cpuType')
33
+ cpu_name: Optional[str] = Field(None, alias='cpuName')
34
+ cpu_cores: Optional[int] = Field(None, alias='cpuCores')
35
+ gpu_type: Optional[InstanceGpuType] = Field(Optional[InstanceGpuType.UNKNOWN], alias='gpuType')
36
+ gpu_name: Optional[str] = Field(None, alias='gpuName')
37
+ gpu_memory_gb: Optional[int] = Field(None, alias='gpuMemoryGb')
38
+ gpu_count: Optional[int] = Field(None, alias='gpuCount')
39
+ disk_type: Optional[DiskTypeEnumDto] = Field(DiskTypeEnumDto.UNKNOWN, alias='diskType')
40
+ disk_size_gb: Optional[int] = Field(None, alias='diskSizeGb')
41
+ ram_size_gb: Optional[int] = Field(None, alias='ramSizeGb')
42
+ average_renting_time_minutes: Optional[int] = Field(None, alias='averageRentingTimeMinutes')
43
+
44
+ business_status: InstanceRentedBusinessStatus = Field(InstanceRentedBusinessStatus.UNKNOWN, alias='businessStatus')
45
+ frontend_status: Optional[FrontendStatusDto] = Field(None, alias='frontendStatus')
46
+
47
+ slug: Optional[str] = Field(None, alias='slug')
48
+ title: Optional[str] = Field(None, alias='title')
49
+ power_status: PowerStatusEnumDto = Field(PowerStatusEnumDto.UNKNOWN, alias='powerStatus')
50
+ created_at: Optional[datetime] = Field(None, alias='createdAt')
51
+ updated_at: Optional[datetime] = Field(None, alias='updatedAt')
52
+ ip_address: Optional[str] = Field(None, alias='ipAddress')
53
+ host_username: Optional[str] = Field(None, alias='hostUsername')
54
+ detected_gpus: Optional[InstanceDetectedGpusDto] = Field(None, alias='detectedGpus')
55
+ daemon_status: Optional[DaemonStatus] = Field(DaemonStatus.UNKNOWN, alias='daemonStatus')
56
+
57
+
58
+ class InstanceRentedListResponse(TheStageBasePaginatedResponse):
59
+ paginated_list: Optional[PaginatedEntityList[InstanceRentedDto]] = Field(None, alias='paginatedEntityList')
60
+
61
+
62
+ class InstanceRentedItemResponse(TheStageBasePaginatedResponse):
63
+ model_config = ConfigDict(use_enum_values=True)
64
+
65
+ instance_rented: Optional[InstanceRentedDto] = Field(None, alias='instanceRented')
66
+
67
+
68
+ class InstanceRentedBusinessStatusMapperResponse(TheStageBasePaginatedResponse):
69
+ model_config = ConfigDict(use_enum_values=True)
70
+
71
+ instance_rented_business_status_map: Dict[str, str] = Field(default={}, alias='instanceRentedBusinessStatusMap')
@@ -1,7 +1,7 @@
1
- from pydantic import Field, ConfigDict, BaseModel
2
-
3
-
4
- class DockerContainerLogStreamRequest(BaseModel):
5
- model_config = ConfigDict(use_enum_values=True)
6
-
7
- dockerContainerId: int = Field(None, alias='dockerContainerId')
1
+ from pydantic import Field, ConfigDict, BaseModel
2
+
3
+
4
+ class DockerContainerLogStreamRequest(BaseModel):
5
+ model_config = ConfigDict(use_enum_values=True)
6
+
7
+ dockerContainerId: int = Field(None, alias='dockerContainerId')
@@ -1,13 +1,13 @@
1
- from typing import Optional
2
-
3
- from pydantic import Field, ConfigDict, BaseModel
4
-
5
-
6
- class LogPollingRequest(BaseModel):
7
- model_config = ConfigDict(use_enum_values=True)
8
-
9
- taskId: Optional[int] = Field(None, alias='taskId')
10
- inferenceSimulatorId: Optional[int] = Field(None, alias='inferenceSimulatorId')
11
- lastLogId: Optional[str] = Field(None, alias='lastLogId')
12
- dockerContainerId: Optional[int] = Field(None, alias='dockerContainerId')
13
- lastLogTimestamp: Optional[str] = Field(None, alias='lastLogTimestamp')
1
+ from typing import Optional
2
+
3
+ from pydantic import Field, ConfigDict, BaseModel
4
+
5
+
6
+ class LogPollingRequest(BaseModel):
7
+ model_config = ConfigDict(use_enum_values=True)
8
+
9
+ taskId: Optional[int] = Field(None, alias='taskId')
10
+ inferenceSimulatorId: Optional[int] = Field(None, alias='inferenceSimulatorId')
11
+ lastLogId: Optional[str] = Field(None, alias='lastLogId')
12
+ dockerContainerId: Optional[int] = Field(None, alias='dockerContainerId')
13
+ lastLogTimestamp: Optional[str] = Field(None, alias='lastLogTimestamp')
@@ -1,14 +1,14 @@
1
- from typing import Optional, List
2
-
3
- from pydantic import Field, ConfigDict, BaseModel
4
-
5
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
- from thestage.services.logging.dto.log_message import LogMessage
7
-
8
-
9
- class LogPollingResponse(TheStageBaseResponse):
10
- model_config = ConfigDict(use_enum_values=True)
11
-
12
- logs: Optional[List[LogMessage]] = Field(None, alias='logs')
13
- lastLogId: Optional[str] = Field(None, alias='lastLogId')
14
- lastLogTimestamp: Optional[str] = Field(None, alias='lastLogTimestamp')
1
+ from typing import Optional, List
2
+
3
+ from pydantic import Field, ConfigDict, BaseModel
4
+
5
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
+ from thestage.services.logging.dto.log_message import LogMessage
7
+
8
+
9
+ class LogPollingResponse(TheStageBaseResponse):
10
+ model_config = ConfigDict(use_enum_values=True)
11
+
12
+ logs: Optional[List[LogMessage]] = Field(None, alias='logs')
13
+ lastLogId: Optional[str] = Field(None, alias='lastLogId')
14
+ lastLogTimestamp: Optional[str] = Field(None, alias='lastLogTimestamp')
@@ -1,7 +1,7 @@
1
- from pydantic import Field, ConfigDict, BaseModel
2
-
3
-
4
- class TaskLogStreamRequest(BaseModel):
5
- model_config = ConfigDict(use_enum_values=True)
6
-
7
- taskId: int = Field(None, alias='taskId')
1
+ from pydantic import Field, ConfigDict, BaseModel
2
+
3
+
4
+ class TaskLogStreamRequest(BaseModel):
5
+ model_config = ConfigDict(use_enum_values=True)
6
+
7
+ taskId: int = Field(None, alias='taskId')
@@ -1,21 +1,21 @@
1
- from typing import Optional
2
-
3
- from pydantic import Field, ConfigDict, BaseModel
4
-
5
-
6
- class UserLogsQueryRequest(BaseModel):
7
- model_config = ConfigDict(use_enum_values=True)
8
-
9
- containerRunId: Optional[int] = Field(None, alias='containerRunId')
10
- containerId: Optional[int] = Field(None, alias='containerId')
11
- message: Optional[str] = Field(None, alias='message')
12
- instanceId: Optional[int] = Field(None, alias='instanceId')
13
- instanceType: Optional[str] = Field(None, alias='instanceType') # ENUM
14
- taskId: Optional[int] = Field(None, alias='taskId')
15
- inferenceSimulatorId: Optional[int] = Field(None, alias='inferenceSimulatorId')
16
- fromTimestamp: Optional[str] = Field(None, alias='fromTimestamp')
17
- toTimestamp: Optional[str] = Field(None, alias='toTimestamp')
18
- logType: Optional[str] = Field(None, alias='logType') # ENUM
19
- offset: Optional[int] = Field(None, alias='offset')
20
- limit: Optional[int] = Field(None, alias='limit')
21
- ascendingOrder: Optional[bool] = Field(None, alias='ascendingOrder')
1
+ from typing import Optional
2
+
3
+ from pydantic import Field, ConfigDict, BaseModel
4
+
5
+
6
+ class UserLogsQueryRequest(BaseModel):
7
+ model_config = ConfigDict(use_enum_values=True)
8
+
9
+ containerRunId: Optional[int] = Field(None, alias='containerRunId')
10
+ containerId: Optional[int] = Field(None, alias='containerId')
11
+ message: Optional[str] = Field(None, alias='message')
12
+ instanceId: Optional[int] = Field(None, alias='instanceId')
13
+ instanceType: Optional[str] = Field(None, alias='instanceType') # ENUM
14
+ taskId: Optional[int] = Field(None, alias='taskId')
15
+ inferenceSimulatorId: Optional[int] = Field(None, alias='inferenceSimulatorId')
16
+ fromTimestamp: Optional[str] = Field(None, alias='fromTimestamp')
17
+ toTimestamp: Optional[str] = Field(None, alias='toTimestamp')
18
+ logType: Optional[str] = Field(None, alias='logType') # ENUM
19
+ offset: Optional[int] = Field(None, alias='offset')
20
+ limit: Optional[int] = Field(None, alias='limit')
21
+ ascendingOrder: Optional[bool] = Field(None, alias='ascendingOrder')
@@ -1,14 +1,14 @@
1
- from typing import Optional, List
2
-
3
- from pydantic import Field, ConfigDict, BaseModel
4
-
5
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
- from thestage.services.logging.dto.log_message import LogMessage
7
-
8
-
9
- class UserLogsQueryResponse(TheStageBaseResponse):
10
- model_config = ConfigDict(use_enum_values=True)
11
-
12
- queryResult: Optional[List[LogMessage]] = Field(None, alias='queryResult')
13
- entriesFound: Optional[int] = Field(None, alias='entriesFound')
14
- totalCount: Optional[int] = Field(None, alias='totalCount')
1
+ from typing import Optional, List
2
+
3
+ from pydantic import Field, ConfigDict, BaseModel
4
+
5
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
6
+ from thestage.services.logging.dto.log_message import LogMessage
7
+
8
+
9
+ class UserLogsQueryResponse(TheStageBaseResponse):
10
+ model_config = ConfigDict(use_enum_values=True)
11
+
12
+ queryResult: Optional[List[LogMessage]] = Field(None, alias='queryResult')
13
+ entriesFound: Optional[int] = Field(None, alias='entriesFound')
14
+ totalCount: Optional[int] = Field(None, alias='totalCount')
@@ -1,11 +1,11 @@
1
- from typing import List, Optional, Any, Generic, TypeVar
2
-
3
- from pydantic import Field, ConfigDict, BaseModel
4
-
5
- from thestage.services.clients.thestage_api.dtos.pagination_data import PaginationData
6
-
7
- T = TypeVar('T')
8
-
9
- class PaginatedEntityList(BaseModel, Generic[T]):
10
- entities: List[T] = Field(default_factory=list, alias='entities')
11
- pagination_data: Optional[PaginationData] = Field(None, alias='paginationData')
1
+ from typing import List, Optional, Any, Generic, TypeVar
2
+
3
+ from pydantic import Field, ConfigDict, BaseModel
4
+
5
+ from thestage.services.clients.thestage_api.dtos.pagination_data import PaginationData
6
+
7
+ T = TypeVar('T')
8
+
9
+ class PaginatedEntityList(BaseModel, Generic[T]):
10
+ entities: List[T] = Field(default_factory=list, alias='entities')
11
+ pagination_data: Optional[PaginationData] = Field(None, alias='paginationData')
@@ -1,10 +1,10 @@
1
- from typing import Optional
2
-
3
- from pydantic import BaseModel, Field
4
-
5
-
6
- class PaginationData(BaseModel):
7
- current_page: Optional[int] = Field(None, alias='currentPage')
8
- limit: Optional[int] = Field(None, alias='limit')
9
- total_pages: Optional[int] = Field(None, alias='totalPages')
10
- objects_count: Optional[int] = Field(None, alias='objectsCount')
1
+ from typing import Optional
2
+
3
+ from pydantic import BaseModel, Field
4
+
5
+
6
+ class PaginationData(BaseModel):
7
+ current_page: Optional[int] = Field(None, alias='currentPage')
8
+ limit: Optional[int] = Field(None, alias='limit')
9
+ total_pages: Optional[int] = Field(None, alias='totalPages')
10
+ objects_count: Optional[int] = Field(None, alias='objectsCount')
@@ -1,14 +1,14 @@
1
- from typing import Optional
2
-
3
- from pydantic import BaseModel, Field, ConfigDict
4
-
5
- from thestage.services.clients.thestage_api.dtos.enums.currency_type import CurrencyTypeEnumDto
6
-
7
-
8
- class PriceDefinitionDto(BaseModel):
9
- model_config = ConfigDict(use_enum_values=True)
10
-
11
- currency: CurrencyTypeEnumDto = Field(CurrencyTypeEnumDto.UNKNOWN, alias='currency')
12
- cents_amount_in_unit: Optional[int] = Field(None, alias='centsAmountInUnit')
13
- cents_value: Optional[str] = Field(None, alias='centsValue')
14
- decimal_value: Optional[str] = Field(None, alias='decimalValue')
1
+ from typing import Optional
2
+
3
+ from pydantic import BaseModel, Field, ConfigDict
4
+
5
+ from thestage.services.clients.thestage_api.dtos.enums.currency_type import CurrencyTypeEnumDto
6
+
7
+
8
+ class PriceDefinitionDto(BaseModel):
9
+ model_config = ConfigDict(use_enum_values=True)
10
+
11
+ currency: CurrencyTypeEnumDto = Field(CurrencyTypeEnumDto.UNKNOWN, alias='currency')
12
+ cents_amount_in_unit: Optional[int] = Field(None, alias='centsAmountInUnit')
13
+ cents_value: Optional[str] = Field(None, alias='centsValue')
14
+ decimal_value: Optional[str] = Field(None, alias='decimalValue')
@@ -1,7 +1,7 @@
1
- from pydantic import Field, ConfigDict, BaseModel
2
-
3
-
4
- class ProjectGetDeploySshKeyRequest(BaseModel):
5
- model_config = ConfigDict(use_enum_values=True)
6
-
7
- projectSlug: str = Field(None, alias='projectSlug')
1
+ from pydantic import Field, ConfigDict, BaseModel
2
+
3
+
4
+ class ProjectGetDeploySshKeyRequest(BaseModel):
5
+ model_config = ConfigDict(use_enum_values=True)
6
+
7
+ projectSlug: str = Field(None, alias='projectSlug')
@@ -1,10 +1,10 @@
1
- from pydantic import Field, ConfigDict, BaseModel
2
-
3
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
4
-
5
-
6
- class ProjectGetDeploySshKeyResponse(TheStageBaseResponse):
7
- model_config = ConfigDict(use_enum_values=True)
8
-
9
- publicKey: str = Field(None, alias='publicKey')
10
- privateKey: str = Field(None, alias='privateKey')
1
+ from pydantic import Field, ConfigDict, BaseModel
2
+
3
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
4
+
5
+
6
+ class ProjectGetDeploySshKeyResponse(TheStageBaseResponse):
7
+ model_config = ConfigDict(use_enum_values=True)
8
+
9
+ publicKey: str = Field(None, alias='publicKey')
10
+ privateKey: str = Field(None, alias='privateKey')
@@ -1,9 +1,9 @@
1
- from typing import Optional
2
-
3
- from pydantic import Field, ConfigDict, BaseModel
4
-
5
-
6
- class ProjectPushInferenceSimulatorModelRequest(BaseModel):
7
- model_config = ConfigDict(use_enum_values=True)
8
-
1
+ from typing import Optional
2
+
3
+ from pydantic import Field, ConfigDict, BaseModel
4
+
5
+
6
+ class ProjectPushInferenceSimulatorModelRequest(BaseModel):
7
+ model_config = ConfigDict(use_enum_values=True)
8
+
9
9
  slug: Optional[str] = Field(None, alias='slug')
@@ -1,7 +1,7 @@
1
- from pydantic import ConfigDict
2
-
3
- from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
4
-
5
-
6
- class ProjectPushInferenceSimulatorModelResponse(TheStageBaseResponse):
1
+ from pydantic import ConfigDict
2
+
3
+ from thestage.services.clients.thestage_api.dtos.base_response import TheStageBaseResponse
4
+
5
+
6
+ class ProjectPushInferenceSimulatorModelResponse(TheStageBaseResponse):
7
7
  model_config = ConfigDict(use_enum_values=True)