thestage 0.5.41__tar.gz → 0.5.42__tar.gz

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 (174) hide show
  1. {thestage-0.5.41 → thestage-0.5.42}/PKG-INFO +2 -3
  2. {thestage-0.5.41 → thestage-0.5.42}/pyproject.toml +1 -1
  3. thestage-0.5.42/thestage/.env +6 -0
  4. {thestage-0.5.41 → thestage-0.5.42}/thestage/__init__.py +1 -1
  5. {thestage-0.5.41 → thestage-0.5.42}/thestage/controllers/project_controller.py +40 -0
  6. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/api_client.py +4 -0
  7. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/project_controller/project_start_inference_simulator_request.py +3 -1
  8. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/project/project_service.py +4 -0
  9. thestage-0.5.41/thestage/.env +0 -5
  10. thestage-0.5.41/thestage/services/clients/.DS_Store +0 -0
  11. {thestage-0.5.41 → thestage-0.5.42}/LICENSE.txt +0 -0
  12. {thestage-0.5.41 → thestage-0.5.42}/README.md +0 -0
  13. {thestage-0.5.41 → thestage-0.5.42}/thestage/__main__.py +0 -0
  14. {thestage-0.5.41 → thestage-0.5.42}/thestage/color_scheme/color_scheme.py +0 -0
  15. {thestage-0.5.41 → thestage-0.5.42}/thestage/config/__init__.py +0 -0
  16. {thestage-0.5.41 → thestage-0.5.42}/thestage/config/env_base.py +0 -0
  17. {thestage-0.5.41 → thestage-0.5.42}/thestage/controllers/__init__.py +0 -0
  18. {thestage-0.5.41 → thestage-0.5.42}/thestage/controllers/base_controller.py +0 -0
  19. {thestage-0.5.41 → thestage-0.5.42}/thestage/controllers/config_controller.py +0 -0
  20. {thestage-0.5.41 → thestage-0.5.42}/thestage/controllers/container_controller.py +0 -0
  21. {thestage-0.5.41 → thestage-0.5.42}/thestage/controllers/instance_controller.py +0 -0
  22. {thestage-0.5.41 → thestage-0.5.42}/thestage/controllers/utils_controller.py +0 -0
  23. {thestage-0.5.41 → thestage-0.5.42}/thestage/debug_main.dist.py +0 -0
  24. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/__init__.py +0 -0
  25. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/container.py +0 -0
  26. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/enums/__init__.py +0 -0
  27. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/enums/order_direction_type.py +0 -0
  28. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/enums/shell_type.py +0 -0
  29. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/enums/tail_output_type.py +0 -0
  30. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/enums/yes_no_response.py +0 -0
  31. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/file_item.py +0 -0
  32. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/project_inference_simulator.py +0 -0
  33. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/project_inference_simulator_model.py +0 -0
  34. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/project_task.py +0 -0
  35. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/rented_instance.py +0 -0
  36. {thestage-0.5.41 → thestage-0.5.42}/thestage/entities/self_hosted_instance.py +0 -0
  37. {thestage-0.5.41 → thestage-0.5.42}/thestage/exceptions/__init__.py +0 -0
  38. {thestage-0.5.41 → thestage-0.5.42}/thestage/exceptions/auth_exception.py +0 -0
  39. {thestage-0.5.41 → thestage-0.5.42}/thestage/exceptions/base_exception.py +0 -0
  40. {thestage-0.5.41 → thestage-0.5.42}/thestage/exceptions/business_logic_exception.py +0 -0
  41. {thestage-0.5.41 → thestage-0.5.42}/thestage/exceptions/config_exception.py +0 -0
  42. {thestage-0.5.41 → thestage-0.5.42}/thestage/exceptions/file_system_exception.py +0 -0
  43. {thestage-0.5.41 → thestage-0.5.42}/thestage/exceptions/git_access_exception.py +0 -0
  44. {thestage-0.5.41 → thestage-0.5.42}/thestage/exceptions/http_error_exception.py +0 -0
  45. {thestage-0.5.41 → thestage-0.5.42}/thestage/exceptions/remote_server_exception.py +0 -0
  46. {thestage-0.5.41 → thestage-0.5.42}/thestage/git/ProgressPrinter.py +0 -0
  47. {thestage-0.5.41 → thestage-0.5.42}/thestage/helpers/__init__.py +0 -0
  48. {thestage-0.5.41 → thestage-0.5.42}/thestage/helpers/error_handler.py +0 -0
  49. {thestage-0.5.41 → thestage-0.5.42}/thestage/helpers/logger/__init__.py +0 -0
  50. {thestage-0.5.41 → thestage-0.5.42}/thestage/helpers/logger/app_logger.py +0 -0
  51. {thestage-0.5.41 → thestage-0.5.42}/thestage/helpers/ssh_util.py +0 -0
  52. {thestage-0.5.41 → thestage-0.5.42}/thestage/i18n/en_GB/messages.po +0 -0
  53. {thestage-0.5.41 → thestage-0.5.42}/thestage/i18n/translation.py +0 -0
  54. {thestage-0.5.41 → thestage-0.5.42}/thestage/main.py +0 -0
  55. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/.env +0 -0
  56. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/__init__.py +0 -0
  57. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/abstract_mapper.py +0 -0
  58. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/abstract_service.py +0 -0
  59. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/app_config_service.py +0 -0
  60. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/__init__.py +0 -0
  61. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/git/__init__.py +0 -0
  62. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/git/git_client.py +0 -0
  63. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/__init__.py +0 -0
  64. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/core/api_client_abstract.py +0 -0
  65. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/core/api_client_core.py +0 -0
  66. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/core/http_client_exception.py +0 -0
  67. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/__init__.py +0 -0
  68. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/base_response.py +0 -0
  69. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/cloud_provider_region.py +0 -0
  70. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/container_param_request.py +0 -0
  71. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/container_response.py +0 -0
  72. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/docker_container_assigned_device.py +0 -0
  73. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/docker_container_controller/docker_container_list_request.py +0 -0
  74. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/docker_container_controller/docker_container_list_response.py +0 -0
  75. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/docker_container_mapping.py +0 -0
  76. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/entity_filter_request.py +0 -0
  77. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/__init__.py +0 -0
  78. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/container_pending_action.py +0 -0
  79. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/container_status.py +0 -0
  80. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/cpu_type.py +0 -0
  81. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/currency_type.py +0 -0
  82. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/daemon_status.py +0 -0
  83. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/disk_type.py +0 -0
  84. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/drive_type.py +0 -0
  85. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/gpu_name.py +0 -0
  86. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/inference_model_status.py +0 -0
  87. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/inference_simulator_status.py +0 -0
  88. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/instance_rented_status.py +0 -0
  89. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/instance_type.py +0 -0
  90. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/location_region.py +0 -0
  91. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/power_status.py +0 -0
  92. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/provider_name.py +0 -0
  93. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/selfhosted_status.py +0 -0
  94. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/task_execution_status.py +0 -0
  95. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/enums/task_status.py +0 -0
  96. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/frontend_status.py +0 -0
  97. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_instance_request.py +0 -0
  98. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_instance_response.py +0 -0
  99. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_sagemaker_request.py +0 -0
  100. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/inference_controller/deploy_inference_model_to_sagemaker_response.py +0 -0
  101. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/inference_controller/get_inference_simulator_request.py +0 -0
  102. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/inference_controller/get_inference_simulator_response.py +0 -0
  103. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_list_for_project_request.py +0 -0
  104. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_list_for_project_response.py +0 -0
  105. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_model_list_for_project_request.py +0 -0
  106. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/inference_controller/inference_simulator_model_list_for_project_response.py +0 -0
  107. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/inference_simulator_model_response.py +0 -0
  108. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/inference_simulator_response.py +0 -0
  109. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/installed_service.py +0 -0
  110. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/instance_detected_gpus.py +0 -0
  111. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/instance_rented_response.py +0 -0
  112. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/logging_controller/docker_container_log_stream_request.py +0 -0
  113. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/logging_controller/log_polling_request.py +0 -0
  114. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/logging_controller/log_polling_response.py +0 -0
  115. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/logging_controller/task_log_stream_request.py +0 -0
  116. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/logging_controller/user_logs_query_request.py +0 -0
  117. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/logging_controller/user_logs_query_response.py +0 -0
  118. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/paginated_entity_list.py +0 -0
  119. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/pagination_data.py +0 -0
  120. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/price_definition.py +0 -0
  121. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/project_controller/project_get_deploy_ssh_key_request.py +0 -0
  122. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/project_controller/project_get_deploy_ssh_key_response.py +0 -0
  123. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/project_controller/project_push_inference_simulator_model_request.py +0 -0
  124. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/project_controller/project_push_inference_simulator_model_response.py +0 -0
  125. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/project_controller/project_run_task_request.py +0 -0
  126. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/project_controller/project_run_task_response.py +0 -0
  127. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/project_controller/project_start_inference_simulator_response.py +0 -0
  128. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/project_response.py +0 -0
  129. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/selfhosted_instance_response.py +0 -0
  130. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/sftp_path_helper.py +0 -0
  131. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_key_to_user_request.py +0 -0
  132. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_key_to_user_response.py +0 -0
  133. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_public_key_to_instance_request.py +0 -0
  134. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/ssh_key_controller/add_ssh_public_key_to_instance_response.py +0 -0
  135. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/ssh_key_controller/is_user_has_public_ssh_key_request.py +0 -0
  136. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/ssh_key_controller/is_user_has_public_ssh_key_response.py +0 -0
  137. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/task_controller/task_list_for_project_request.py +0 -0
  138. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/task_controller/task_list_for_project_response.py +0 -0
  139. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/task_controller/task_status_localized_map_response.py +0 -0
  140. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/task_controller/task_view_response.py +0 -0
  141. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/clients/thestage_api/dtos/user_profile.py +0 -0
  142. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/config_provider/__init__.py +0 -0
  143. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/config_provider/config_provider.py +0 -0
  144. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/connect/connect_service.py +0 -0
  145. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/connect/dto/remote_server_config.py +0 -0
  146. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/container/__init__.py +0 -0
  147. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/container/container_service.py +0 -0
  148. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/container/mapper/__init__.py +0 -0
  149. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/container/mapper/container_mapper.py +0 -0
  150. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/core_files/config_entity.py +0 -0
  151. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/filesystem_service.py +0 -0
  152. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/instance/__init__.py +0 -0
  153. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/instance/instance_service.py +0 -0
  154. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/instance/mapper/__init__.py +0 -0
  155. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/instance/mapper/instance_mapper.py +0 -0
  156. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/instance/mapper/selfhosted_mapper.py +0 -0
  157. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/logging/byte_print_style.py +0 -0
  158. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/logging/dto/log_message.py +0 -0
  159. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/logging/dto/log_type.py +0 -0
  160. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/logging/exception/log_polling_exception.py +0 -0
  161. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/logging/logging_constants.py +0 -0
  162. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/logging/logging_service.py +0 -0
  163. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/project/__init__.py +0 -0
  164. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/project/dto/inference_simulator_dto.py +0 -0
  165. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/project/dto/inference_simulator_model_dto.py +0 -0
  166. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/project/dto/project_config.py +0 -0
  167. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/project/mapper/__init__.py +0 -0
  168. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/project/mapper/project_inference_simulator_mapper.py +0 -0
  169. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/project/mapper/project_inference_simulator_model_mapper.py +0 -0
  170. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/project/mapper/project_task_mapper.py +0 -0
  171. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/remote_server_service.py +0 -0
  172. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/service_factory.py +0 -0
  173. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/task/dto/task_dto.py +0 -0
  174. {thestage-0.5.41 → thestage-0.5.42}/thestage/services/validation_service.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.1
2
2
  Name: thestage
3
- Version: 0.5.41
3
+ Version: 0.5.42
4
4
  Summary:
5
5
  Author: TheStage AI team
6
6
  Author-email: hello@thestage.ai
@@ -10,7 +10,6 @@ Classifier: Programming Language :: Python :: 3.9
10
10
  Classifier: Programming Language :: Python :: 3.10
11
11
  Classifier: Programming Language :: Python :: 3.11
12
12
  Classifier: Programming Language :: Python :: 3.12
13
- Classifier: Programming Language :: Python :: 3.13
14
13
  Requires-Dist: aioconsole (>=0.8.0,<0.9.0)
15
14
  Requires-Dist: boto3 (>=1.35.80,<2.0.0)
16
15
  Requires-Dist: gitpython (>=3.1.40,<4.0.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "thestage"
3
- version = "0.5.41"
3
+ version = "0.5.42"
4
4
  description = ""
5
5
  authors = ["TheStage AI team <hello@thestage.ai>"]
6
6
  readme = "README.md"
@@ -0,0 +1,6 @@
1
+ THESTAGE_CONFIG_DIR=.thestage
2
+ THESTAGE_CONFIG_FILE=config.json
3
+ THESTAGE_CLI_ENV=DEV
4
+ THESTAGE_API_URL=https://backend-staging.thestage.ai
5
+ THESTAGE_API_URL=https://backend.thestage.ai
6
+ LOG_FILE=thestage.log
@@ -1,3 +1,3 @@
1
1
  from . import *
2
2
  __app_name__ = "thestage"
3
- __version__ = "0.5.41"
3
+ __version__ = "0.5.42"
@@ -1,7 +1,9 @@
1
1
  import time
2
+ from pathlib import Path
2
3
  from typing import Optional, List
3
4
 
4
5
  import re
6
+
5
7
  import typer
6
8
  from typing_extensions import Annotated
7
9
 
@@ -425,6 +427,13 @@ def run_inference_simulator(
425
427
  help=__("Disable real-time log streaming"),
426
428
  is_eager=False,
427
429
  ),
430
+ is_skip_installation: Optional[bool] = typer.Option(
431
+ False,
432
+ "--skip-installation",
433
+ "-si",
434
+ help=__("Skip installing dependencies from requirements.txt and install.sh"),
435
+ is_eager=False,
436
+ ),
428
437
  ):
429
438
  """
430
439
  Run an inference simulator within a project
@@ -438,6 +447,35 @@ def run_inference_simulator(
438
447
  service_factory = validate_config_and_get_service_factory(working_directory=working_directory)
439
448
  config = service_factory.get_config_provider().get_full_config()
440
449
 
450
+ working_dir_path = Path(working_directory) if working_directory else Path(config.runtime.working_directory)
451
+ inference_files = list(working_dir_path.rglob("inference.py"))
452
+ if not inference_files:
453
+ typer.echo("No inference.py file found in the project directory.")
454
+ raise typer.Exit(1)
455
+ elif len(inference_files) == 1:
456
+ selected_inference = inference_files[0]
457
+ else:
458
+ choices = [str(path.relative_to(working_dir_path)) for path in inference_files]
459
+ typer.echo("Multiple inference.py files found:")
460
+ for idx, choice in enumerate(choices, start=1):
461
+ typer.echo(f"{idx}) {choice}")
462
+ choice_str = typer.prompt("Choose which inference.py to use")
463
+ try:
464
+ choice_index = int(choice_str)
465
+ except ValueError:
466
+ raise typer.BadParameter("Invalid input. Please enter a number.")
467
+ if not (1 <= choice_index <= len(choices)):
468
+ raise typer.BadParameter("Choice out of range.")
469
+ selected_inference = inference_files[choice_index - 1]
470
+
471
+ relative_inference = selected_inference.relative_to(working_dir_path)
472
+ parent_dir = relative_inference.parent
473
+ if parent_dir == Path("."):
474
+ inference_dir = "/"
475
+ else:
476
+ inference_dir = f"{parent_dir.as_posix()}/"
477
+ typer.echo(f"Selected inference file relative path: {inference_dir}")
478
+
441
479
  project_service = service_factory.get_project_service()
442
480
 
443
481
  project_service.project_run_inference_simulator(
@@ -446,6 +484,8 @@ def run_inference_simulator(
446
484
  slug=unique_id,
447
485
  rented_instance_unique_id=rented_instance_unique_id,
448
486
  self_hosted_instance_unique_id=self_hosted_instance_unique_id,
487
+ inference_dir=inference_dir,
488
+ is_skip_installation=is_skip_installation,
449
489
  )
450
490
 
451
491
  if enable_log_stream:
@@ -603,6 +603,8 @@ class TheStageApiClient(TheStageApiClientCore):
603
603
  commit_hash: Optional[str] = None,
604
604
  rented_instance_unique_id: Optional[str] = None,
605
605
  self_hosted_instance_unique_id: Optional[str] = None,
606
+ inference_dir: Optional[str] = None,
607
+ is_skip_installation: Optional[bool] = False,
606
608
  ) -> Optional[ProjectStartInferenceSimulatorResponse]:
607
609
  request = ProjectStartInferenceSimulatorRequest(
608
610
  projectSlug=project_slug,
@@ -610,6 +612,8 @@ class TheStageApiClient(TheStageApiClientCore):
610
612
  slug=slug,
611
613
  instanceRentedUId=rented_instance_unique_id,
612
614
  selfhostedInstanceUId=self_hosted_instance_unique_id,
615
+ inferenceDir=inference_dir,
616
+ isSkipInstallation=is_skip_installation,
613
617
  )
614
618
 
615
619
  response = self._request(
@@ -10,4 +10,6 @@ class ProjectStartInferenceSimulatorRequest(BaseModel):
10
10
  instanceRentedUId: Optional[str] = Field(None, alias='instanceRentedUId')
11
11
  selfhostedInstanceUId: Optional[str] = Field(None, alias='selfhostedInstanceUId')
12
12
  commitHash: Optional[str] = Field(None, alias='commitHash')
13
- slug: Optional[str] = Field(None, alias='slug')
13
+ slug: Optional[str] = Field(None, alias='slug')
14
+ inferenceDir: Optional[str] = Field(None, alias='inferenceDir')
15
+ isSkipInstallation: Optional[bool] = Field(False, alias='isSkipInstallation')
@@ -409,6 +409,8 @@ class ProjectService(AbstractService):
409
409
  commit_hash: Optional[str] = None,
410
410
  rented_instance_unique_id: Optional[str] = None,
411
411
  self_hosted_instance_unique_id: Optional[str] = None,
412
+ inference_dir: Optional[str] = None,
413
+ is_skip_installation: Optional[bool] = False,
412
414
  ) -> Optional[InferenceSimulatorDto]:
413
415
  project_config: ProjectConfig = self.__get_fixed_project_config(config=config)
414
416
  if not project_config:
@@ -543,6 +545,8 @@ class ProjectService(AbstractService):
543
545
  slug=slug,
544
546
  rented_instance_unique_id=rented_instance_unique_id,
545
547
  self_hosted_instance_unique_id=self_hosted_instance_unique_id,
548
+ inference_dir=inference_dir,
549
+ is_skip_installation=is_skip_installation,
546
550
  )
547
551
  if start_inference_simulator_response:
548
552
  if start_inference_simulator_response.message:
@@ -1,5 +0,0 @@
1
- THESTAGE_CONFIG_DIR=.thestage
2
- THESTAGE_CONFIG_FILE=config.json
3
- THESTAGE_API_URL=https://backend-staging3.thestage.ai
4
- THESTAGE_API_URL=http://localhost:8100
5
- LOG_FILE=thestage.log
File without changes
File without changes
File without changes