thestage 0.6.2__py3-none-any.whl → 0.6.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 -810
  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 -436
  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 -1253
  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.2.dist-info → thestage-0.6.3.dist-info}/LICENSE.txt +12 -12
  173. {thestage-0.6.2.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.2.dist-info → thestage-0.6.3.dist-info}/WHEEL +1 -1
  176. thestage-0.6.2.dist-info/RECORD +0 -176
  177. {thestage-0.6.2.dist-info → thestage-0.6.3.dist-info}/entry_points.txt +0 -0
@@ -1,32 +1,32 @@
1
- import os
2
- import pathlib
3
- from typing import Optional
4
-
5
- from thestage.helpers.error_handler import error_handler
6
- from thestage.services.service_factory import ServiceFactory
7
-
8
-
9
- def get_current_directory() -> pathlib.Path:
10
- return pathlib.Path.cwd()
11
-
12
-
13
- @error_handler()
14
- def validate_config_and_get_service_factory(
15
- working_directory: Optional[str] = None,
16
- ) -> ServiceFactory:
17
- local_path = get_current_directory() if not working_directory else os.path.abspath(working_directory)
18
-
19
- service_factory = ServiceFactory()
20
- config_provider = service_factory.get_config_provider()
21
-
22
- config = config_provider.get_config()
23
- config.runtime.working_directory = str(local_path)
24
-
25
- config_provider.update_config(updated_config=config)
26
-
27
- validation_service = service_factory.get_validation_service()
28
-
29
- validation_service.check_token()
30
- config_provider.save_config()
31
-
32
- return service_factory
1
+ import os
2
+ import pathlib
3
+ from typing import Optional
4
+
5
+ from thestage.helpers.error_handler import error_handler
6
+ from thestage.services.service_factory import ServiceFactory
7
+
8
+
9
+ def get_current_directory() -> pathlib.Path:
10
+ return pathlib.Path.cwd()
11
+
12
+
13
+ @error_handler()
14
+ def validate_config_and_get_service_factory(
15
+ working_directory: Optional[str] = None,
16
+ ) -> ServiceFactory:
17
+ local_path = get_current_directory() if not working_directory else os.path.abspath(working_directory)
18
+
19
+ service_factory = ServiceFactory()
20
+ config_provider = service_factory.get_config_provider()
21
+
22
+ config = config_provider.get_config()
23
+ config.runtime.working_directory = str(local_path)
24
+
25
+ config_provider.update_config(updated_config=config)
26
+
27
+ validation_service = service_factory.get_validation_service()
28
+
29
+ validation_service.check_token()
30
+ config_provider.save_config()
31
+
32
+ return service_factory
@@ -1,28 +1,28 @@
1
- from thestage import __app_name__
2
-
3
- from thestage.controllers import base_controller, container_controller, instance_controller, \
4
- config_controller, project_controller
5
-
6
- base_controller.app.add_typer(container_controller.app, name="container")
7
- base_controller.app.add_typer(instance_controller.app, name="instance")
8
- base_controller.app.add_typer(config_controller.app, name="config")
9
- base_controller.app.add_typer(project_controller.app, name="project")
10
-
11
-
12
- def main():
13
- # example of a command to debug
14
- project_controller.app([
15
- "run",
16
- "-wd",
17
- "/Users/alexey/Documents/clonetest",
18
- "-dcuid",
19
- '62-1',
20
- '-t',
21
- 'task',
22
- '-com',
23
- "'echo 123'"
24
- ], prog_name=__app_name__)
25
-
26
-
27
- if __name__ == "__main__":
28
- main()
1
+ from thestage import __app_name__
2
+
3
+ from thestage.controllers import base_controller, container_controller, instance_controller, \
4
+ config_controller, project_controller
5
+
6
+ base_controller.app.add_typer(container_controller.app, name="container")
7
+ base_controller.app.add_typer(instance_controller.app, name="instance")
8
+ base_controller.app.add_typer(config_controller.app, name="config")
9
+ base_controller.app.add_typer(project_controller.app, name="project")
10
+
11
+
12
+ def main():
13
+ # example of a command to debug
14
+ project_controller.app([
15
+ "run",
16
+ "-wd",
17
+ "/Users/alexey/Documents/clonetest",
18
+ "-dcuid",
19
+ '62-1',
20
+ '-t',
21
+ 'task',
22
+ '-com',
23
+ "'echo 123'"
24
+ ], prog_name=__app_name__)
25
+
26
+
27
+ if __name__ == "__main__":
28
+ main()
File without changes
@@ -1,17 +1,17 @@
1
- from typing import Optional
2
-
3
- from pydantic import BaseModel, ConfigDict, Field
4
-
5
-
6
- class DockerContainerEntity(BaseModel):
7
-
8
- model_config = ConfigDict(
9
- populate_by_name=True,
10
- use_enum_values=True,
11
- )
12
-
13
- slug: Optional[str] = Field(None, alias='UNIQUE ID')
14
- status: Optional[str] = Field(None, alias='STATUS')
15
- title: Optional[str] = Field(None, alias='TITLE')
16
- instance_type: Optional[str] = Field(None, alias='INSTANCE TYPE')
17
- instance_slug: Optional[str] = Field(None, alias='INSTANCE UNIQUE ID')
1
+ from typing import Optional
2
+
3
+ from pydantic import BaseModel, ConfigDict, Field
4
+
5
+
6
+ class DockerContainerEntity(BaseModel):
7
+
8
+ model_config = ConfigDict(
9
+ populate_by_name=True,
10
+ use_enum_values=True,
11
+ )
12
+
13
+ slug: Optional[str] = Field(None, alias='UNIQUE ID')
14
+ status: Optional[str] = Field(None, alias='STATUS')
15
+ title: Optional[str] = Field(None, alias='TITLE')
16
+ instance_type: Optional[str] = Field(None, alias='INSTANCE TYPE')
17
+ instance_slug: Optional[str] = Field(None, alias='INSTANCE UNIQUE ID')
File without changes
@@ -1,6 +1,6 @@
1
- from enum import Enum
2
-
3
-
4
- class OrderDirectionType(str, Enum):
5
- ASC = "ASC"
6
- DESC = "DESC"
1
+ from enum import Enum
2
+
3
+
4
+ class OrderDirectionType(str, Enum):
5
+ ASC = "ASC"
6
+ DESC = "DESC"
@@ -1,7 +1,7 @@
1
- from enum import Enum
2
-
3
-
4
- class ShellType(str, Enum):
5
- BASH = "/bin/bash"
6
- SH = "/bin/sh"
7
- UNKNOWN = "UNKNOWN"
1
+ from enum import Enum
2
+
3
+
4
+ class ShellType(str, Enum):
5
+ BASH = "/bin/bash"
6
+ SH = "/bin/sh"
7
+ UNKNOWN = "UNKNOWN"
@@ -1,6 +1,6 @@
1
- from enum import Enum
2
-
3
-
4
- class TailOutputType(str, Enum):
5
- YES = '1'
6
- NO = '0'
1
+ from enum import Enum
2
+
3
+
4
+ class TailOutputType(str, Enum):
5
+ YES = '1'
6
+ NO = '0'
@@ -1,7 +1,7 @@
1
- from enum import Enum
2
-
3
-
4
- class YesOrNoResponse(str, Enum):
5
- YES = "y"
6
- NO = "n"
7
-
1
+ from enum import Enum
2
+
3
+
4
+ class YesOrNoResponse(str, Enum):
5
+ YES = "y"
6
+ NO = "n"
7
+
@@ -1,27 +1,27 @@
1
- import os
2
- from pathlib import Path
3
- from typing import Optional, List
4
-
5
- from pydantic import BaseModel, ConfigDict, Field
6
-
7
-
8
- class FileItemEntity(BaseModel):
9
- model_config = ConfigDict(use_enum_values=True)
10
-
11
- name: Optional[str] = Field(None)
12
- path: Optional[str] = Field(None)
13
- is_file: Optional[bool] = Field(False)
14
- is_folder: Optional[bool] = Field(False)
15
- file_size: Optional[int] = Field(None)
16
- children: List['FileItemEntity'] = Field(default=[])
17
-
18
- @staticmethod
19
- def build_from_path(path: Path) -> 'FileItemEntity':
20
- file_stat = os.stat(path)
21
- return FileItemEntity(
22
- name=path.name,
23
- path=str(path.absolute()),
24
- is_file=path.is_file(),
25
- is_folder=path.is_dir(),
26
- file_size=file_stat.st_size,
27
- )
1
+ import os
2
+ from pathlib import Path
3
+ from typing import Optional, List
4
+
5
+ from pydantic import BaseModel, ConfigDict, Field
6
+
7
+
8
+ class FileItemEntity(BaseModel):
9
+ model_config = ConfigDict(use_enum_values=True)
10
+
11
+ name: Optional[str] = Field(None)
12
+ path: Optional[str] = Field(None)
13
+ is_file: Optional[bool] = Field(False)
14
+ is_folder: Optional[bool] = Field(False)
15
+ file_size: Optional[int] = Field(None)
16
+ children: List['FileItemEntity'] = Field(default=[])
17
+
18
+ @staticmethod
19
+ def build_from_path(path: Path) -> 'FileItemEntity':
20
+ file_stat = os.stat(path)
21
+ return FileItemEntity(
22
+ name=path.name,
23
+ path=str(path.absolute()),
24
+ is_file=path.is_file(),
25
+ is_folder=path.is_dir(),
26
+ file_size=file_stat.st_size,
27
+ )
@@ -1,18 +1,18 @@
1
- from typing import Optional
2
-
3
- from pydantic import BaseModel, ConfigDict, Field
4
-
5
-
6
- class ProjectInferenceSimulatorEntity(BaseModel):
7
-
8
- model_config = ConfigDict(
9
- populate_by_name=True,
10
- use_enum_values=True,
11
- )
12
-
13
- slug: Optional[str] = Field(None, alias='UNIQUE ID')
14
- status: Optional[str] = Field(None, alias='STATUS')
15
- http_endpoint: Optional[str] = Field(None, alias="HTTP")
16
- grpc_endpoint: Optional[str] = Field(None, alias="GRPC")
17
- metrics_endpoint: Optional[str] = Field(None, alias="METRICS")
18
- started_at: Optional[str] = Field(None, alias='STARTED AT')
1
+ from typing import Optional
2
+
3
+ from pydantic import BaseModel, ConfigDict, Field
4
+
5
+
6
+ class ProjectInferenceSimulatorEntity(BaseModel):
7
+
8
+ model_config = ConfigDict(
9
+ populate_by_name=True,
10
+ use_enum_values=True,
11
+ )
12
+
13
+ slug: Optional[str] = Field(None, alias='UNIQUE ID')
14
+ status: Optional[str] = Field(None, alias='STATUS')
15
+ http_endpoint: Optional[str] = Field(None, alias="HTTP")
16
+ grpc_endpoint: Optional[str] = Field(None, alias="GRPC")
17
+ metrics_endpoint: Optional[str] = Field(None, alias="METRICS")
18
+ started_at: Optional[str] = Field(None, alias='STARTED AT')
@@ -1,17 +1,17 @@
1
- from typing import Optional
2
-
3
- from pydantic import BaseModel, ConfigDict, Field
4
-
5
-
6
- class ProjectInferenceSimulatorModelEntity(BaseModel):
7
-
8
- model_config = ConfigDict(
9
- populate_by_name=True,
10
- use_enum_values=True,
11
- )
12
-
13
- id: Optional[int] = Field(None, alias='ID')
14
- slug: Optional[str] = Field(None, alias='UNIQUE_ID')
15
- status: Optional[str] = Field(None, alias='STATUS')
16
- commit_hash: Optional[str] = Field(None, alias='COMMIT_HASH')
1
+ from typing import Optional
2
+
3
+ from pydantic import BaseModel, ConfigDict, Field
4
+
5
+
6
+ class ProjectInferenceSimulatorModelEntity(BaseModel):
7
+
8
+ model_config = ConfigDict(
9
+ populate_by_name=True,
10
+ use_enum_values=True,
11
+ )
12
+
13
+ id: Optional[int] = Field(None, alias='ID')
14
+ slug: Optional[str] = Field(None, alias='UNIQUE_ID')
15
+ status: Optional[str] = Field(None, alias='STATUS')
16
+ commit_hash: Optional[str] = Field(None, alias='COMMIT_HASH')
17
17
  environment_metadata: Optional[str] = Field(None, alias='ENVIRONMENT_METADATA')
@@ -1,19 +1,19 @@
1
- from typing import Optional
2
-
3
- from pydantic import BaseModel, ConfigDict, Field
4
-
5
-
6
- class ProjectTaskEntity(BaseModel):
7
-
8
- model_config = ConfigDict(
9
- populate_by_name=True,
10
- use_enum_values=True,
11
- )
12
-
13
- id: Optional[int] = Field(None, alias='ID')
14
- title: Optional[str] = Field(None, alias='TITLE')
15
- status: Optional[str] = Field(None, alias='STATUS')
16
- docker_container_id: Optional[int] = Field(None, alias='DOCKER_CONTAINER_ID')
17
- docker_container_slug: Optional[str] = Field(None, alias='DOCKER_CONTAINER_UID')
18
- started_at: Optional[str] = Field(None, alias='STARTED AT')
19
- finished_at: Optional[str] = Field(None, alias='FINISHED_AT')
1
+ from typing import Optional
2
+
3
+ from pydantic import BaseModel, ConfigDict, Field
4
+
5
+
6
+ class ProjectTaskEntity(BaseModel):
7
+
8
+ model_config = ConfigDict(
9
+ populate_by_name=True,
10
+ use_enum_values=True,
11
+ )
12
+
13
+ id: Optional[int] = Field(None, alias='ID')
14
+ title: Optional[str] = Field(None, alias='TITLE')
15
+ status: Optional[str] = Field(None, alias='STATUS')
16
+ docker_container_id: Optional[int] = Field(None, alias='DOCKER_CONTAINER_ID')
17
+ docker_container_slug: Optional[str] = Field(None, alias='DOCKER_CONTAINER_UID')
18
+ started_at: Optional[str] = Field(None, alias='STARTED AT')
19
+ finished_at: Optional[str] = Field(None, alias='FINISHED_AT')
@@ -1,19 +1,19 @@
1
- from typing import Optional
2
-
3
- from pydantic import BaseModel, ConfigDict, Field
4
-
5
-
6
- class RentedInstanceEntity(BaseModel):
7
-
8
- model_config = ConfigDict(
9
- populate_by_name=True,
10
- use_enum_values=True
11
- )
12
-
13
- status: Optional[str] = Field(None, alias='STATUS')
14
- title: Optional[str] = Field(None, alias='TITLE')
15
- slug: Optional[str] = Field(None, alias='UNIQUE ID')
16
- cpu_type: Optional[str] = Field(None, alias='CPU TYPE')
17
- cpu_cores: Optional[str] = Field(None, alias='CPU CORES')
18
- gpu_type: Optional[str] = Field(None, alias='GPU TYPE')
19
- ip_address: Optional[str] = Field(None, alias='IP ADDRESS')
1
+ from typing import Optional
2
+
3
+ from pydantic import BaseModel, ConfigDict, Field
4
+
5
+
6
+ class RentedInstanceEntity(BaseModel):
7
+
8
+ model_config = ConfigDict(
9
+ populate_by_name=True,
10
+ use_enum_values=True
11
+ )
12
+
13
+ status: Optional[str] = Field(None, alias='STATUS')
14
+ title: Optional[str] = Field(None, alias='TITLE')
15
+ slug: Optional[str] = Field(None, alias='UNIQUE ID')
16
+ cpu_type: Optional[str] = Field(None, alias='CPU TYPE')
17
+ cpu_cores: Optional[str] = Field(None, alias='CPU CORES')
18
+ gpu_type: Optional[str] = Field(None, alias='GPU TYPE')
19
+ ip_address: Optional[str] = Field(None, alias='IP ADDRESS')
@@ -1,18 +1,18 @@
1
- from typing import Optional
2
-
3
- from pydantic import BaseModel, ConfigDict, Field
4
-
5
-
6
- class SelfHostedInstanceEntity(BaseModel):
7
- model_config = ConfigDict(
8
- use_enum_values=True,
9
- populate_by_name=True,
10
- )
11
-
12
- status: Optional[str] = Field(None, alias='STATUS')
13
- title: Optional[str] = Field(None, alias='TITLE')
14
- slug: Optional[str] = Field(None, alias='SLUG')
15
- cpu_type: Optional[str] = Field(str, alias='CPU_TYPE')
16
- cpu_cores: Optional[int] = Field(None, alias='CPU_CORES')
17
- gpu_type: Optional[str] = Field(str, alias='GPU_TYPE')
18
- ip_address: Optional[str] = Field(None, alias='IP_ADDRESS')
1
+ from typing import Optional
2
+
3
+ from pydantic import BaseModel, ConfigDict, Field
4
+
5
+
6
+ class SelfHostedInstanceEntity(BaseModel):
7
+ model_config = ConfigDict(
8
+ use_enum_values=True,
9
+ populate_by_name=True,
10
+ )
11
+
12
+ status: Optional[str] = Field(None, alias='STATUS')
13
+ title: Optional[str] = Field(None, alias='TITLE')
14
+ slug: Optional[str] = Field(None, alias='SLUG')
15
+ cpu_type: Optional[str] = Field(str, alias='CPU_TYPE')
16
+ cpu_cores: Optional[int] = Field(None, alias='CPU_CORES')
17
+ gpu_type: Optional[str] = Field(str, alias='GPU_TYPE')
18
+ ip_address: Optional[str] = Field(None, alias='IP_ADDRESS')
File without changes
@@ -1,6 +1,6 @@
1
- from thestage.exceptions.base_exception import BaseAbstractException
2
-
3
-
4
- class AuthException(BaseAbstractException):
5
- def __init__(self, message: str):
6
- super(AuthException, self).__init__(message=message)
1
+ from thestage.exceptions.base_exception import BaseAbstractException
2
+
3
+
4
+ class AuthException(BaseAbstractException):
5
+ def __init__(self, message: str):
6
+ super(AuthException, self).__init__(message=message)
@@ -1,13 +1,13 @@
1
-
2
- class BaseAbstractException(Exception):
3
- def __init__(self, message: str):
4
- self._message = message
5
-
6
- def __str__(self):
7
- return self._message
8
-
9
- def __repr__(self):
10
- return self._message
11
-
12
- def get_message(self) -> str:
13
- return self._message
1
+
2
+ class BaseAbstractException(Exception):
3
+ def __init__(self, message: str):
4
+ self._message = message
5
+
6
+ def __str__(self):
7
+ return self._message
8
+
9
+ def __repr__(self):
10
+ return self._message
11
+
12
+ def get_message(self) -> str:
13
+ return self._message
@@ -1,6 +1,6 @@
1
- from thestage.exceptions.base_exception import BaseAbstractException
2
-
3
-
4
- class BusinessLogicException(BaseAbstractException):
5
- def __init__(self, message: str):
6
- super(BusinessLogicException, self).__init__(message=message)
1
+ from thestage.exceptions.base_exception import BaseAbstractException
2
+
3
+
4
+ class BusinessLogicException(BaseAbstractException):
5
+ def __init__(self, message: str):
6
+ super(BusinessLogicException, self).__init__(message=message)
@@ -1,6 +1,6 @@
1
- from thestage.exceptions.base_exception import BaseAbstractException
2
-
3
-
4
- class ConfigException(BaseAbstractException):
5
- def __init__(self, message: str):
6
- super(ConfigException, self).__init__(message=message)
1
+ from thestage.exceptions.base_exception import BaseAbstractException
2
+
3
+
4
+ class ConfigException(BaseAbstractException):
5
+ def __init__(self, message: str):
6
+ super(ConfigException, self).__init__(message=message)
@@ -1,6 +1,6 @@
1
- from thestage.exceptions.base_exception import BaseAbstractException
2
-
3
-
4
- class FileSystemException(BaseAbstractException):
5
- def __init__(self, message: str):
6
- super(FileSystemException, self).__init__(message=message)
1
+ from thestage.exceptions.base_exception import BaseAbstractException
2
+
3
+
4
+ class FileSystemException(BaseAbstractException):
5
+ def __init__(self, message: str):
6
+ super(FileSystemException, self).__init__(message=message)
@@ -1,17 +1,17 @@
1
- from thestage.exceptions.base_exception import BaseAbstractException
2
-
3
-
4
- class GitAccessException(BaseAbstractException):
5
-
6
- __url: str
7
-
8
- def __init__(self, message: str, url: str, dop_message: str):
9
- super(GitAccessException, self).__init__(message=message)
10
- self.__url = url
11
- self.__dop_message = dop_message
12
-
13
- def get_url(self) -> str:
14
- return self.__url
15
-
16
- def get_dop_message(self) -> str:
17
- return self.__dop_message
1
+ from thestage.exceptions.base_exception import BaseAbstractException
2
+
3
+
4
+ class GitAccessException(BaseAbstractException):
5
+
6
+ __url: str
7
+
8
+ def __init__(self, message: str, url: str, dop_message: str):
9
+ super(GitAccessException, self).__init__(message=message)
10
+ self.__url = url
11
+ self.__dop_message = dop_message
12
+
13
+ def get_url(self) -> str:
14
+ return self.__url
15
+
16
+ def get_dop_message(self) -> str:
17
+ return self.__dop_message
@@ -1,24 +1,24 @@
1
- from typing import Optional
2
-
3
- from thestage.exceptions.base_exception import BaseAbstractException
4
-
5
-
6
- class RemoteServerException(BaseAbstractException):
7
-
8
- def __init__(
9
- self,
10
- message: str,
11
- ip_address: Optional[str] = None,
12
- username: Optional[str] = None,
13
- ):
14
- super(RemoteServerException, self).__init__(message=message)
15
- self._ip_address = ip_address
16
- self._username = username
17
-
18
- @property
19
- def ip_address(self):
20
- return self._ip_address
21
-
22
- @property
23
- def username(self):
24
- return self._username
1
+ from typing import Optional
2
+
3
+ from thestage.exceptions.base_exception import BaseAbstractException
4
+
5
+
6
+ class RemoteServerException(BaseAbstractException):
7
+
8
+ def __init__(
9
+ self,
10
+ message: str,
11
+ ip_address: Optional[str] = None,
12
+ username: Optional[str] = None,
13
+ ):
14
+ super(RemoteServerException, self).__init__(message=message)
15
+ self._ip_address = ip_address
16
+ self._username = username
17
+
18
+ @property
19
+ def ip_address(self):
20
+ return self._ip_address
21
+
22
+ @property
23
+ def username(self):
24
+ return self._username