truefoundry 0.5.1rc7__tar.gz → 0.5.2__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.

Potentially problematic release.


This version of truefoundry might be problematic. Click here for more details.

Files changed (375) hide show
  1. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/PKG-INFO +1 -1
  2. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/pyproject.toml +2 -1
  3. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/cli.py +1 -1
  4. truefoundry-0.5.1rc7/truefoundry/deploy/cli/cli.py → truefoundry-0.5.2/truefoundry/cli/__main__.py +47 -30
  5. {truefoundry-0.5.1rc7/truefoundry/deploy → truefoundry-0.5.2/truefoundry}/cli/display_util.py +9 -4
  6. {truefoundry-0.5.1rc7/truefoundry/deploy → truefoundry-0.5.2/truefoundry}/cli/util.py +2 -11
  7. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/common/constants.py +11 -0
  8. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/common/utils.py +10 -0
  9. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/auto_gen/models.py +3 -3
  10. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/builder/builders/tfy_notebook_buildpack/__init__.py +4 -2
  11. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/builder/builders/tfy_python_buildpack/__init__.py +7 -5
  12. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/builder/builders/tfy_python_buildpack/dockerfile_template.py +87 -28
  13. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/builder/constants.py +8 -0
  14. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/builder/utils.py +9 -4
  15. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/apply_command.py +12 -5
  16. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/build_command.py +3 -3
  17. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/build_logs_command.py +2 -2
  18. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/create_command.py +3 -3
  19. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/delete_command.py +4 -4
  20. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/deploy_command.py +2 -2
  21. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/deploy_init_command.py +1 -1
  22. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/get_command.py +5 -5
  23. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/list_command.py +4 -4
  24. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/login_command.py +3 -3
  25. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/logout_command.py +2 -2
  26. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/logs_command.py +2 -2
  27. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/patch_application_command.py +2 -2
  28. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/patch_command.py +2 -2
  29. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/redeploy_command.py +2 -2
  30. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/terminate_comand.py +3 -3
  31. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/trigger_command.py +2 -2
  32. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/clients/servicefoundry_client.py +2 -2
  33. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/const.py +0 -3
  34. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/dao/apply.py +21 -6
  35. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/dao/workspace.py +1 -1
  36. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/model/entity.py +2 -2
  37. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/util.py +0 -14
  38. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/__init__.py +8 -4
  39. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/cli/cli.py +5 -1
  40. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/cli/commands/download.py +16 -3
  41. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/cli/commands/model_init.py +4 -4
  42. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/mlfoundry_api.py +2 -1
  43. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/mlfoundry_run.py +2 -1
  44. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/model_framework.py +47 -10
  45. truefoundry-0.5.1rc7/truefoundry/cli/__main__.py +0 -23
  46. truefoundry-0.5.1rc7/truefoundry/deploy/json_util.py +0 -7
  47. truefoundry-0.5.1rc7/truefoundry/deploy/lib/exceptions.py +0 -10
  48. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/README.md +0 -0
  49. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/__init__.py +0 -0
  50. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/__init__.py +0 -0
  51. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/agents/__init__.py +0 -0
  52. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/agents/base.py +0 -0
  53. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/agents/developer.py +0 -0
  54. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/agents/project_identifier.py +0 -0
  55. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/agents/tester.py +0 -0
  56. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/constants.py +0 -0
  57. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/exception.py +0 -0
  58. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/logger.py +0 -0
  59. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/tools/__init__.py +0 -0
  60. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/tools/ask.py +0 -0
  61. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/tools/base.py +0 -0
  62. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/tools/commit.py +0 -0
  63. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/tools/docker_build.py +0 -0
  64. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/tools/docker_run.py +0 -0
  65. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/tools/file_type_counts.py +0 -0
  66. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/tools/list_files.py +0 -0
  67. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/tools/read_file.py +0 -0
  68. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/tools/send_request.py +0 -0
  69. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/tools/write_file.py +0 -0
  70. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/utils/client.py +0 -0
  71. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/utils/diff.py +0 -0
  72. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/autodeploy/utils/pydantic_compat.py +0 -0
  73. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/cli/__init__.py +0 -0
  74. {truefoundry-0.5.1rc7/truefoundry/deploy → truefoundry-0.5.2/truefoundry}/cli/config.py +0 -0
  75. {truefoundry-0.5.1rc7/truefoundry/deploy → truefoundry-0.5.2/truefoundry}/cli/console.py +0 -0
  76. {truefoundry-0.5.1rc7/truefoundry/deploy → truefoundry-0.5.2/truefoundry}/cli/const.py +0 -0
  77. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/common/__init__.py +0 -0
  78. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/common/auth_service_client.py +0 -0
  79. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/common/credential_file_manager.py +0 -0
  80. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/common/credential_provider.py +0 -0
  81. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/common/entities.py +0 -0
  82. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/common/exceptions.py +0 -0
  83. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/common/request_utils.py +0 -0
  84. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/common/servicefoundry_client.py +0 -0
  85. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/__init__.py +0 -0
  86. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/builder/__init__.py +0 -0
  87. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/builder/builders/__init__.py +0 -0
  88. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/builder/builders/dockerfile.py +0 -0
  89. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/builder/builders/tfy_notebook_buildpack/dockerfile_template.py +0 -0
  90. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/builder/docker_service.py +0 -0
  91. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/__init__.py +0 -0
  92. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/cli/commands/__init__.py +0 -0
  93. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/core/__init__.py +0 -0
  94. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/core/login.py +0 -0
  95. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/core/logout.py +0 -0
  96. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/io/__init__.py +0 -0
  97. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/io/output_callback.py +0 -0
  98. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/io/rich_output_callback.py +0 -0
  99. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/__init__.py +0 -0
  100. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/auth/servicefoundry_session.py +0 -0
  101. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/clients/__init__.py +0 -0
  102. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/dao/__init__.py +0 -0
  103. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/dao/application.py +0 -0
  104. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/dao/version.py +0 -0
  105. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/logs_utils.py +0 -0
  106. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/messages.py +0 -0
  107. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/model/__init__.py +0 -0
  108. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/session.py +0 -0
  109. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/lib/win32.py +0 -0
  110. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/python_deploy_codegen.py +0 -0
  111. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/v2/__init__.py +0 -0
  112. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/v2/lib/__init__.py +0 -0
  113. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/v2/lib/deploy.py +0 -0
  114. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/v2/lib/deploy_workflow.py +0 -0
  115. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/v2/lib/deployable_patched_models.py +0 -0
  116. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/v2/lib/models.py +0 -0
  117. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/v2/lib/patched_models.py +0 -0
  118. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/deploy/v2/lib/source.py +0 -0
  119. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/logger.py +0 -0
  120. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/artifact/__init__.py +0 -0
  121. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/artifact/truefoundry_artifact_repo.py +0 -0
  122. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/__init__.py +0 -0
  123. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/__init__.py +0 -0
  124. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/api/__init__.py +0 -0
  125. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/api/auth_api.py +0 -0
  126. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/api/deprecated_api.py +0 -0
  127. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/api/experiments_api.py +0 -0
  128. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/api/generate_code_snippet_api.py +0 -0
  129. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/api/health_api.py +0 -0
  130. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/api/metrics_api.py +0 -0
  131. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/api/mlfoundry_artifacts_api.py +0 -0
  132. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/api/run_artifacts_api.py +0 -0
  133. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/api/runs_api.py +0 -0
  134. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/api_client.py +0 -0
  135. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/api_response.py +0 -0
  136. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/configuration.py +0 -0
  137. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/exceptions.py +0 -0
  138. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/__init__.py +0 -0
  139. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/add_custom_metrics_to_model_version_request_dto.py +0 -0
  140. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/add_features_to_model_version_request_dto.py +0 -0
  141. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/agent.py +0 -0
  142. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/agent_app.py +0 -0
  143. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/agent_open_api_tool.py +0 -0
  144. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/agent_open_api_tool_with_fqn.py +0 -0
  145. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/agent_with_fqn.py +0 -0
  146. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/artifact_dto.py +0 -0
  147. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/artifact_response_dto.py +0 -0
  148. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/artifact_type.py +0 -0
  149. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/artifact_version_dto.py +0 -0
  150. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/artifact_version_manifest.py +0 -0
  151. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/artifact_version_response_dto.py +0 -0
  152. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/artifact_version_serialization_format.py +0 -0
  153. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/artifact_version_status.py +0 -0
  154. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/assistant_message.py +0 -0
  155. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/authorize_user_for_model_request_dto.py +0 -0
  156. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/authorize_user_for_model_version_request_dto.py +0 -0
  157. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/blob_storage_reference.py +0 -0
  158. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/body_get_search_runs_get.py +0 -0
  159. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/chat_prompt.py +0 -0
  160. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/chat_prompt_messages_inner.py +0 -0
  161. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/columns_dto.py +0 -0
  162. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/command.py +0 -0
  163. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/content.py +0 -0
  164. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/content1.py +0 -0
  165. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/content2.py +0 -0
  166. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/content2_any_of_inner.py +0 -0
  167. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_artifact_request_dto.py +0 -0
  168. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_artifact_response_dto.py +0 -0
  169. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_artifact_version_request_dto.py +0 -0
  170. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_artifact_version_response_dto.py +0 -0
  171. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_dataset_request_dto.py +0 -0
  172. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_experiment_request_dto.py +0 -0
  173. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_experiment_response_dto.py +0 -0
  174. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_model_version_request_dto.py +0 -0
  175. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_multi_part_upload_for_dataset_request_dto.py +0 -0
  176. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_multi_part_upload_for_dataset_response_dto.py +0 -0
  177. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_multi_part_upload_request_dto.py +0 -0
  178. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_python_deployment_config_request_dto.py +0 -0
  179. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_python_deployment_config_response_dto.py +0 -0
  180. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_run_request_dto.py +0 -0
  181. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_run_response_dto.py +0 -0
  182. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/create_workflow_task_config_request_dto.py +0 -0
  183. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/dataset_dto.py +0 -0
  184. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/dataset_response_dto.py +0 -0
  185. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/delete_artifact_versions_request_dto.py +0 -0
  186. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/delete_dataset_request_dto.py +0 -0
  187. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/delete_files_for_dataset_request_dto.py +0 -0
  188. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/delete_model_version_request_dto.py +0 -0
  189. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/delete_run_request.py +0 -0
  190. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/delete_tag_request_dto.py +0 -0
  191. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/experiment_dto.py +0 -0
  192. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/experiment_id_request_dto.py +0 -0
  193. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/experiment_response_dto.py +0 -0
  194. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/experiment_tag_dto.py +0 -0
  195. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/export_deployment_files_request_dto.py +0 -0
  196. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/external_artifact_source.py +0 -0
  197. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/fast_ai_framework.py +0 -0
  198. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/file_info_dto.py +0 -0
  199. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/finalize_artifact_version_request_dto.py +0 -0
  200. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/framework.py +0 -0
  201. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/get_experiment_response_dto.py +0 -0
  202. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/get_latest_run_log_response_dto.py +0 -0
  203. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/get_metric_history_response.py +0 -0
  204. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/get_signed_url_for_dataset_write_request_dto.py +0 -0
  205. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/get_signed_urls_for_artifact_version_read_request_dto.py +0 -0
  206. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/get_signed_urls_for_artifact_version_read_response_dto.py +0 -0
  207. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/get_signed_urls_for_artifact_version_write_request_dto.py +0 -0
  208. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/get_signed_urls_for_artifact_version_write_response_dto.py +0 -0
  209. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/get_signed_urls_for_dataset_read_request_dto.py +0 -0
  210. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/get_signed_urls_for_dataset_read_response_dto.py +0 -0
  211. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/get_signed_urls_for_dataset_write_response_dto.py +0 -0
  212. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/get_tenant_id_response_dto.py +0 -0
  213. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/gluon_framework.py +0 -0
  214. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/h2_o_framework.py +0 -0
  215. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/http_validation_error.py +0 -0
  216. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/image_content_part.py +0 -0
  217. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/image_url.py +0 -0
  218. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/infer_method_name.py +0 -0
  219. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/internal_metadata.py +0 -0
  220. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/keras_framework.py +0 -0
  221. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/latest_run_log_dto.py +0 -0
  222. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/library_name.py +0 -0
  223. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/light_gbm_framework.py +0 -0
  224. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_artifact_versions_request_dto.py +0 -0
  225. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_artifact_versions_response_dto.py +0 -0
  226. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_artifacts_request_dto.py +0 -0
  227. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_artifacts_response_dto.py +0 -0
  228. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_colums_response_dto.py +0 -0
  229. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_datasets_request_dto.py +0 -0
  230. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_datasets_response_dto.py +0 -0
  231. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_experiments_response_dto.py +0 -0
  232. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_files_for_artifact_version_request_dto.py +0 -0
  233. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_files_for_artifact_versions_response_dto.py +0 -0
  234. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_files_for_dataset_request_dto.py +0 -0
  235. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_files_for_dataset_response_dto.py +0 -0
  236. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_latest_run_logs_response_dto.py +0 -0
  237. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_metric_history_request_dto.py +0 -0
  238. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_metric_history_response_dto.py +0 -0
  239. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_model_version_response_dto.py +0 -0
  240. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_model_versions_request_dto.py +0 -0
  241. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_models_request_dto.py +0 -0
  242. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_models_response_dto.py +0 -0
  243. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_run_artifacts_response_dto.py +0 -0
  244. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/list_run_logs_response_dto.py +0 -0
  245. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/log_batch_request_dto.py +0 -0
  246. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/log_metric_request_dto.py +0 -0
  247. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/log_param_request_dto.py +0 -0
  248. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/manifest.py +0 -0
  249. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/method.py +0 -0
  250. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/metric_collection_dto.py +0 -0
  251. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/metric_dto.py +0 -0
  252. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/mime_type.py +0 -0
  253. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/model_configuration.py +0 -0
  254. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/model_dto.py +0 -0
  255. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/model_response_dto.py +0 -0
  256. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/model_server.py +0 -0
  257. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/model_version_dto.py +0 -0
  258. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/model_version_environment.py +0 -0
  259. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/model_version_manifest.py +0 -0
  260. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/model_version_response_dto.py +0 -0
  261. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/multi_part_upload_dto.py +0 -0
  262. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/multi_part_upload_response_dto.py +0 -0
  263. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/multi_part_upload_storage_provider.py +0 -0
  264. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/notify_artifact_version_failure_dto.py +0 -0
  265. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/onnx_framework.py +0 -0
  266. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/openapi_spec.py +0 -0
  267. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/paddle_framework.py +0 -0
  268. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/param_dto.py +0 -0
  269. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/parameters.py +0 -0
  270. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/py_torch_framework.py +0 -0
  271. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/resolve_agent_app_response_dto.py +0 -0
  272. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/restore_run_request_dto.py +0 -0
  273. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/run_data_dto.py +0 -0
  274. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/run_dto.py +0 -0
  275. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/run_info_dto.py +0 -0
  276. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/run_log_dto.py +0 -0
  277. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/run_log_input_dto.py +0 -0
  278. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/run_response_dto.py +0 -0
  279. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/run_tag_dto.py +0 -0
  280. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/search_runs_request_dto.py +0 -0
  281. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/search_runs_response_dto.py +0 -0
  282. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/set_experiment_tag_request_dto.py +0 -0
  283. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/set_tag_request_dto.py +0 -0
  284. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/signed_url_dto.py +0 -0
  285. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/sklearn_framework.py +0 -0
  286. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/sklearn_model_schema.py +0 -0
  287. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/sklearn_serialization_format.py +0 -0
  288. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/source.py +0 -0
  289. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/source1.py +0 -0
  290. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/spa_cy_framework.py +0 -0
  291. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/stats_models_framework.py +0 -0
  292. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/stop.py +0 -0
  293. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/store_run_logs_request_dto.py +0 -0
  294. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/subject.py +0 -0
  295. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/subject_type.py +0 -0
  296. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/system_message.py +0 -0
  297. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/tensor_flow_framework.py +0 -0
  298. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/text.py +0 -0
  299. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/text_content_part.py +0 -0
  300. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/transformers_framework.py +0 -0
  301. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/trigger_job_run_config_request_dto.py +0 -0
  302. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/trigger_job_run_config_response_dto.py +0 -0
  303. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/true_foundry_artifact_source.py +0 -0
  304. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/update_artifact_version_request_dto.py +0 -0
  305. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/update_dataset_request_dto.py +0 -0
  306. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/update_experiment_request_dto.py +0 -0
  307. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/update_model_version_request_dto.py +0 -0
  308. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/update_run_request_dto.py +0 -0
  309. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/update_run_response_dto.py +0 -0
  310. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/url.py +0 -0
  311. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/user_message.py +0 -0
  312. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/validate_external_storage_root_request_dto.py +0 -0
  313. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/validate_external_storage_root_response_dto.py +0 -0
  314. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/validation_error.py +0 -0
  315. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/validation_error_loc_inner.py +0 -0
  316. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/xg_boost_framework.py +0 -0
  317. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/xg_boost_model_schema.py +0 -0
  318. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/models/xg_boost_serialization_format.py +0 -0
  319. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client/rest.py +0 -0
  320. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/client_README.md +0 -0
  321. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/entities/artifacts.py +0 -0
  322. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/models/__init__.py +0 -0
  323. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/models/exceptions.py +0 -0
  324. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/models/schema.py +0 -0
  325. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/models/signature.py +0 -0
  326. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/autogen/models/utils.py +0 -0
  327. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/cli/__init__.py +0 -0
  328. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/cli/commands/__init__.py +0 -0
  329. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/cli/utils.py +0 -0
  330. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/clients/__init__.py +0 -0
  331. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/clients/entities.py +0 -0
  332. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/clients/servicefoundry_client.py +0 -0
  333. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/clients/utils.py +0 -0
  334. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/constants.py +0 -0
  335. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/entities.py +0 -0
  336. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/enums.py +0 -0
  337. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/exceptions.py +0 -0
  338. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/git_info.py +0 -0
  339. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/internal_namespace.py +0 -0
  340. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/__init__.py +0 -0
  341. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/artifacts/artifact.py +0 -0
  342. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/artifacts/constants.py +0 -0
  343. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/artifacts/dataset.py +0 -0
  344. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/artifacts/general_artifact.py +0 -0
  345. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/artifacts/model.py +0 -0
  346. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/artifacts/utils.py +0 -0
  347. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/image/__init__.py +0 -0
  348. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/image/constants.py +0 -0
  349. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/image/image.py +0 -0
  350. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/image/image_normalizer.py +0 -0
  351. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/image/types.py +0 -0
  352. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/plot.py +0 -0
  353. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/pydantic_base.py +0 -0
  354. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/log_types/utils.py +0 -0
  355. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/logger.py +0 -0
  356. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/run_utils.py +0 -0
  357. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/session.py +0 -0
  358. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/ml/validation_utils.py +0 -0
  359. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/pydantic_v1.py +0 -0
  360. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/version.py +0 -0
  361. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/__init__.py +0 -0
  362. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/container_task.py +0 -0
  363. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/example/deploy.sh +0 -0
  364. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/example/hello_world_package/workflow.py +0 -0
  365. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/example/package/test_workflow.py +0 -0
  366. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/example/truefoundry.yaml +0 -0
  367. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/example/workflow.yaml +0 -0
  368. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/map_task.py +0 -0
  369. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/python_task.py +0 -0
  370. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/remote_filesystem/__init__.py +0 -0
  371. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/remote_filesystem/logger.py +0 -0
  372. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py +0 -0
  373. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py +0 -0
  374. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/task.py +0 -0
  375. {truefoundry-0.5.1rc7 → truefoundry-0.5.2}/truefoundry/workflow/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: truefoundry
3
- Version: 0.5.1rc7
3
+ Version: 0.5.2
4
4
  Summary: Truefoundry CLI
5
5
  Author: Abhishek Choudhary
6
6
  Author-email: abhishek@truefoundry.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "truefoundry"
3
- version = "0.5.1rc7"
3
+ version = "0.5.2"
4
4
  description = "Truefoundry CLI"
5
5
  authors = ["Abhishek Choudhary <abhishek@truefoundry.com>"]
6
6
  readme = "README.md"
@@ -75,6 +75,7 @@ shap = [
75
75
  { version = ">=0.40.0", python = "<3.12" },
76
76
  { version = ">=0.45.0", python = ">=3.12" },
77
77
  ]
78
+ xgboost = "^2.1.3"
78
79
 
79
80
 
80
81
  [tool.poetry-dynamic-versioning]
@@ -31,8 +31,8 @@ from truefoundry.autodeploy.tools.ask import AskQuestion
31
31
  from truefoundry.autodeploy.tools.commit import CommitConfirmation
32
32
  from truefoundry.autodeploy.tools.docker_run import DockerRun, DockerRunLog
33
33
  from truefoundry.autodeploy.utils.client import get_git_binary
34
+ from truefoundry.cli.const import COMMAND_CLS
34
35
  from truefoundry.deploy import Build, DockerFileBuild, Job, LocalSource, Port, Service
35
- from truefoundry.deploy.cli.const import COMMAND_CLS
36
36
  from truefoundry.deploy.lib.auth.servicefoundry_session import ServiceFoundrySession
37
37
  from truefoundry.deploy.lib.clients.servicefoundry_client import (
38
38
  ServiceFoundryServiceClient,
@@ -4,6 +4,10 @@ import sys
4
4
  import rich_click as click
5
5
 
6
6
  from truefoundry import logger
7
+ from truefoundry.cli.config import CliConfig
8
+ from truefoundry.cli.const import GROUP_CLS
9
+ from truefoundry.cli.util import setup_rich_click
10
+ from truefoundry.common.utils import is_debug_env_set, is_internal_env_set
7
11
  from truefoundry.deploy.cli.commands import (
8
12
  get_apply_command,
9
13
  get_build_command,
@@ -17,40 +21,11 @@ from truefoundry.deploy.cli.commands import (
17
21
  get_terminate_command,
18
22
  get_trigger_command,
19
23
  )
20
- from truefoundry.deploy.cli.config import CliConfig
21
- from truefoundry.deploy.cli.const import GROUP_CLS
22
- from truefoundry.deploy.cli.util import setup_rich_click
23
- from truefoundry.deploy.lib.util import is_debug_env_set, is_internal_env_set
24
+ from truefoundry.ml.cli.cli import get_ml_cli
24
25
  from truefoundry.version import __version__
25
26
 
26
27
  click.rich_click.USE_RICH_MARKUP = True
27
28
 
28
-
29
- def create_truefoundry_cli() -> click.MultiCommand:
30
- """Generates CLI by combining all subcommands into a main CLI and returns in
31
-
32
- Returns:
33
- function: main CLI functions will all added sub-commands
34
- """
35
- cli = truefoundry_cli
36
- cli.add_command(get_login_command())
37
- cli.add_command(get_logout_command())
38
- cli.add_command(get_apply_command())
39
- cli.add_command(get_deploy_command())
40
- cli.add_command(get_deploy_init_command())
41
- cli.add_command(get_patch_application_command())
42
- cli.add_command(get_delete_command())
43
- cli.add_command(get_trigger_command())
44
- cli.add_command(get_terminate_command())
45
-
46
- if not (sys.platform.startswith("win32") or sys.platform.startswith("cygwin")):
47
- cli.add_command(get_patch_command())
48
-
49
- if is_internal_env_set():
50
- cli.add_command(get_build_command())
51
- return cli
52
-
53
-
54
29
  CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"]) # noqa: C408
55
30
 
56
31
 
@@ -94,3 +69,45 @@ def truefoundry_cli(ctx, json, debug):
94
69
  if debug:
95
70
  log_level = logging.DEBUG
96
71
  logger.add_cli_handler(level=log_level)
72
+
73
+
74
+ def create_truefoundry_cli() -> click.MultiCommand:
75
+ """Generates CLI by combining all subcommands into a main CLI and returns in
76
+
77
+ Returns:
78
+ function: main CLI functions will all added sub-commands
79
+ """
80
+ cli = truefoundry_cli
81
+ cli.add_command(get_login_command())
82
+ cli.add_command(get_logout_command())
83
+ cli.add_command(get_apply_command())
84
+ cli.add_command(get_deploy_command())
85
+ cli.add_command(get_deploy_init_command())
86
+ cli.add_command(get_patch_application_command())
87
+ cli.add_command(get_delete_command())
88
+ cli.add_command(get_trigger_command())
89
+ cli.add_command(get_terminate_command())
90
+ cli.add_command(get_ml_cli())
91
+
92
+ if not (sys.platform.startswith("win32") or sys.platform.startswith("cygwin")):
93
+ cli.add_command(get_patch_command())
94
+
95
+ if is_internal_env_set():
96
+ cli.add_command(get_build_command())
97
+ return cli
98
+
99
+
100
+ def main():
101
+ # Exit the interpreter by raising SystemExit(status).
102
+ # If the status is omitted or None, it defaults to zero (i.e., success).
103
+ # If the status is an integer, it will be used as the system exit status.
104
+ # If it is another kind of object, it will be printed and the system exit status will be one (i.e., failure).
105
+ try:
106
+ cli = create_truefoundry_cli()
107
+ except Exception as e:
108
+ raise click.exceptions.UsageError(message=str(e)) from e
109
+ sys.exit(cli())
110
+
111
+
112
+ if __name__ == "__main__":
113
+ main()
@@ -5,10 +5,15 @@ from rich import box
5
5
  from rich import print_json as _rich_print_json
6
6
  from rich.table import Table
7
7
 
8
- from truefoundry.deploy.cli.config import CliConfig
9
- from truefoundry.deploy.cli.console import console
10
- from truefoundry.deploy.cli.const import DISPLAY_DATETIME_FORMAT
11
- from truefoundry.deploy.json_util import json_default_encoder
8
+ from truefoundry.cli.config import CliConfig
9
+ from truefoundry.cli.console import console
10
+ from truefoundry.cli.const import DISPLAY_DATETIME_FORMAT
11
+
12
+
13
+ def json_default_encoder(o):
14
+ if isinstance(o, datetime.datetime):
15
+ return o.isoformat()
16
+ raise TypeError(f"Cannot json encode {type(o)}: {o}")
12
17
 
13
18
 
14
19
  def print_json(data, default=json_default_encoder):
@@ -10,12 +10,9 @@ from rich.padding import Padding
10
10
  from rich.panel import Panel
11
11
  from rich.table import Table
12
12
 
13
+ from truefoundry.cli.console import console
13
14
  from truefoundry.common.exceptions import BadRequestException
14
- from truefoundry.deploy.cli.console import console
15
- from truefoundry.deploy.lib.exceptions import (
16
- ConfigurationException,
17
- )
18
- from truefoundry.deploy.lib.util import is_debug_env_set
15
+ from truefoundry.common.utils import is_debug_env_set
19
16
 
20
17
 
21
18
  def setup_rich_click():
@@ -45,12 +42,6 @@ def handle_exception(exception):
45
42
  title="Command Failed",
46
43
  border_style="red",
47
44
  )
48
- elif isinstance(exception, ConfigurationException):
49
- print_dict_as_table_panel(
50
- {"Error": exception.message},
51
- title="Command Failed",
52
- border_style="red",
53
- )
54
45
  else:
55
46
  print_dict_as_table_panel(
56
47
  {"Error": str(exception)},
@@ -1,3 +1,4 @@
1
+ import enum
1
2
  import os
2
3
  from pathlib import Path
3
4
  from typing import Optional
@@ -10,11 +11,18 @@ CREDENTIAL_FILEPATH = TFY_CONFIG_DIR / "credentials.json"
10
11
  # These keys are kept separately because we use them in error messages and some checks
11
12
  TFY_HOST_ENV_KEY = "TFY_HOST"
12
13
  TFY_API_KEY_ENV_KEY = "TFY_API_KEY"
14
+ TFY_DEBUG_ENV_KEY = "TFY_DEBUG"
15
+ TFY_INTERNAL_ENV_KEY = "TFY_INTERNAL"
13
16
 
14
17
  TFY_INTERNAL_SIGNED_URL_SERVER_HOST_ENV_KEY = "TFY_INTERNAL_SIGNED_URL_SERVER_HOST"
15
18
  TFY_INTERNAL_SIGNED_URL_SERVER_TOKEN_ENV_KEY = "TFY_INTERNAL_SIGNED_URL_SERVER_TOKEN"
16
19
 
17
20
 
21
+ class PythonPackageManager(str, enum.Enum):
22
+ PIP = "pip"
23
+ UV = "uv"
24
+
25
+
18
26
  class TrueFoundrySdkEnv(BaseSettings):
19
27
  # Note: Every field in this class should have a default value
20
28
  # Never expect the user to set these values
@@ -46,6 +54,9 @@ class TrueFoundrySdkEnv(BaseSettings):
46
54
  # For local development, this enables futher configuration via _TFYServersConfig
47
55
  TFY_CLI_LOCAL_DEV_MODE: bool = False
48
56
 
57
+ TFY_PYTHON_BUILD_PACKAGE_MANAGER: PythonPackageManager = PythonPackageManager.PIP
58
+ TFY_PYTHON_BUILD_UV_IMAGE_URI: str = "ghcr.io/astral-sh/uv:latest"
59
+
49
60
 
50
61
  ENV_VARS = TrueFoundrySdkEnv()
51
62
  API_SERVER_RELATIVE_PATH = "api/svc"
@@ -15,7 +15,9 @@ from truefoundry.common.constants import (
15
15
  API_SERVER_RELATIVE_PATH,
16
16
  ENV_VARS,
17
17
  MLFOUNDRY_SERVER_RELATIVE_PATH,
18
+ TFY_DEBUG_ENV_KEY,
18
19
  TFY_HOST_ENV_KEY,
20
+ TFY_INTERNAL_ENV_KEY,
19
21
  )
20
22
  from truefoundry.pydantic_v1 import BaseSettings
21
23
 
@@ -182,3 +184,11 @@ def list_pip_packages_installed(
182
184
  InstalledPipPackage(package["name"], package["version"])
183
185
  )
184
186
  return relevant_package_names
187
+
188
+
189
+ def is_debug_env_set() -> bool:
190
+ return bool(os.getenv(TFY_DEBUG_ENV_KEY))
191
+
192
+
193
+ def is_internal_env_set() -> bool:
194
+ return bool(os.getenv(TFY_INTERNAL_ENV_KEY))
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: application.json
3
- # timestamp: 2024-11-04T08:35:21+00:00
3
+ # timestamp: 2024-12-16T11:59:07+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -877,7 +877,7 @@ class Resources(BaseModel):
877
877
  None,
878
878
  description="+label=GPU Count\n+usage=Count of GPUs to provide to the application\nNote the exact count and max count available for a given GPU type depends on cloud provider and cluster type.",
879
879
  )
880
- shared_memory_size: Optional[conint(ge=64, le=32000)] = Field(
880
+ shared_memory_size: Optional[conint(ge=64, le=2000000)] = Field(
881
881
  None,
882
882
  description="+label=Shared Memory Size (MB)\n+usage=Define the shared memory requirements for your workload. Machine learning libraries like Pytorch can use Shared Memory\nfor inter-process communication. If you use this, we will mount a `tmpfs` backed volume at the `/dev/shm` directory.\nAny usage will also count against the workload's memory limit (`resources.memory_limit`) along with your workload's memory usage.\nIf the overall usage goes above `resources.memory_limit` the user process may get killed.\nShared Memory Size cannot be more than the defined Memory Limit for the workload.",
883
883
  )
@@ -913,7 +913,7 @@ class Rolling(BaseModel):
913
913
  description="+label=Max unavailable(%)\n+usage=Percentage of total replicas that can be brought down at one time.\nFor a value of 25 when replicas are set to 12 this would mean minimum (25% of 12) = 3 pods might be unavailable during the deployment.\nSetting this to a higher value can help in speeding up the deployment process.",
914
914
  )
915
915
  max_surge_percentage: conint(ge=0, le=100) = Field(
916
- 0,
916
+ 25,
917
917
  description="+label=Max Surge(%)\n+usage=Percentage of total replicas of updated image that can be brought up over the total replicas count.\nFor a value of 25 when replicas are set to 12 this would mean (12+(25% of 12) = 15) pods might be running at one time.\nSetting this to a higher value can help in speeding up the deployment process.",
918
918
  )
919
919
 
@@ -8,7 +8,7 @@ from truefoundry.deploy.builder.builders.tfy_notebook_buildpack.dockerfile_templ
8
8
  NotebookImageBuild,
9
9
  generate_dockerfile_content,
10
10
  )
11
- from truefoundry.deploy.builder.utils import has_pip_conf_secret
11
+ from truefoundry.deploy.builder.utils import has_python_package_manager_conf_secret
12
12
 
13
13
  __all__ = ["generate_dockerfile_content", "build"]
14
14
 
@@ -38,7 +38,9 @@ def build(
38
38
  build_configuration: NotebookImageBuild,
39
39
  extra_opts: Optional[List[str]] = None,
40
40
  ):
41
- mount_pip_conf_secret = has_pip_conf_secret(extra_opts) if extra_opts else False
41
+ mount_pip_conf_secret = (
42
+ has_python_package_manager_conf_secret(extra_opts) if extra_opts else False
43
+ )
42
44
  with TemporaryDirectory() as local_dir:
43
45
  docker_build_configuration = _convert_to_dockerfile_build_config(
44
46
  build_configuration,
@@ -7,7 +7,7 @@ from truefoundry.deploy.builder.builders import dockerfile
7
7
  from truefoundry.deploy.builder.builders.tfy_python_buildpack.dockerfile_template import (
8
8
  generate_dockerfile_content,
9
9
  )
10
- from truefoundry.deploy.builder.utils import has_pip_conf_secret
10
+ from truefoundry.deploy.builder.utils import has_python_package_manager_conf_secret
11
11
 
12
12
  __all__ = ["generate_dockerfile_content", "build"]
13
13
 
@@ -15,11 +15,11 @@ __all__ = ["generate_dockerfile_content", "build"]
15
15
  def _convert_to_dockerfile_build_config(
16
16
  build_configuration: PythonBuild,
17
17
  dockerfile_path: str,
18
- mount_pip_conf_secret: bool = False,
18
+ mount_python_package_manager_conf_secret: bool = False,
19
19
  ) -> DockerFileBuild:
20
20
  dockerfile_content = generate_dockerfile_content(
21
21
  build_configuration=build_configuration,
22
- mount_pip_conf_secret=mount_pip_conf_secret,
22
+ mount_python_package_manager_conf_secret=mount_python_package_manager_conf_secret,
23
23
  )
24
24
  with open(dockerfile_path, "w", encoding="utf8") as fp:
25
25
  fp.write(dockerfile_content)
@@ -36,12 +36,14 @@ def build(
36
36
  build_configuration: PythonBuild,
37
37
  extra_opts: Optional[List[str]] = None,
38
38
  ):
39
- mount_pip_conf_secret = has_pip_conf_secret(extra_opts) if extra_opts else False
39
+ mount_python_package_manager_conf_secret = (
40
+ has_python_package_manager_conf_secret(extra_opts) if extra_opts else False
41
+ )
40
42
  with TemporaryDirectory() as local_dir:
41
43
  docker_build_configuration = _convert_to_dockerfile_build_config(
42
44
  build_configuration,
43
45
  dockerfile_path=os.path.join(local_dir, "Dockerfile"),
44
- mount_pip_conf_secret=mount_pip_conf_secret,
46
+ mount_python_package_manager_conf_secret=mount_python_package_manager_conf_secret,
45
47
  )
46
48
  dockerfile.build(
47
49
  tag=tag,
@@ -1,13 +1,16 @@
1
1
  import os
2
+ import shlex
2
3
  from typing import Dict, List, Optional
3
4
 
4
5
  from mako.template import Template
5
6
 
6
- from truefoundry.common.constants import ENV_VARS
7
+ from truefoundry.common.constants import ENV_VARS, PythonPackageManager
7
8
  from truefoundry.deploy.auto_gen.models import PythonBuild
8
9
  from truefoundry.deploy.builder.constants import (
9
10
  PIP_CONF_BUILDKIT_SECRET_MOUNT,
10
11
  PIP_CONF_SECRET_MOUNT_AS_ENV,
12
+ UV_CONF_BUILDKIT_SECRET_MOUNT,
13
+ UV_CONF_SECRET_MOUNT_AS_ENV,
11
14
  )
12
15
  from truefoundry.deploy.v2.lib.patched_models import CUDAVersion
13
16
 
@@ -22,8 +25,8 @@ RUN ${apt_install_command}
22
25
  % if requirements_path is not None:
23
26
  COPY ${requirements_path} ${requirements_destination_path}
24
27
  % endif
25
- % if pip_install_command is not None:
26
- RUN ${pip_config_secret_mount} ${pip_install_command}
28
+ % if python_packages_install_command is not None:
29
+ RUN ${package_manager_config_secret_mount} ${python_packages_install_command}
27
30
  % endif
28
31
  COPY . /app
29
32
  WORKDIR /app
@@ -114,44 +117,91 @@ def generate_pip_install_command(
114
117
  mount_pip_conf_secret: bool = False,
115
118
  ) -> Optional[str]:
116
119
  upgrade_pip_command = "python -m pip install -U pip setuptools wheel"
117
- final_pip_install_command = None
118
- pip_install_base_command = "python -m pip install --use-pep517 --no-cache-dir"
120
+ envs = []
121
+ if mount_pip_conf_secret:
122
+ envs.append(PIP_CONF_SECRET_MOUNT_AS_ENV)
123
+
124
+ command = ["python", "-m", "pip", "install", "--use-pep517", "--no-cache-dir"]
125
+ args = []
119
126
  if requirements_path:
120
- final_pip_install_command = f"{pip_install_base_command} -r {requirements_path}"
127
+ args.append("-r")
128
+ args.append(requirements_path)
121
129
 
122
130
  if pip_packages:
123
- final_pip_install_command = (
124
- final_pip_install_command or pip_install_base_command
125
- )
126
- final_pip_install_command += " " + " ".join(
127
- f"'{package}'" for package in pip_packages
128
- )
131
+ args.extend(pip_packages)
129
132
 
130
- if not final_pip_install_command:
133
+ if not args:
131
134
  return None
132
135
 
133
- if mount_pip_conf_secret:
134
- final_pip_install_command = (
135
- f"{PIP_CONF_SECRET_MOUNT_AS_ENV} {final_pip_install_command}"
136
- )
136
+ final_pip_install_command = shlex.join(envs + command + args)
137
+ final_docker_run_command = " && ".join(
138
+ [upgrade_pip_command, final_pip_install_command]
139
+ )
140
+ return final_docker_run_command
137
141
 
138
- return " && ".join([upgrade_pip_command, final_pip_install_command])
142
+
143
+ def generate_uv_pip_install_command(
144
+ requirements_path: Optional[str],
145
+ pip_packages: Optional[List[str]],
146
+ mount_uv_conf_secret: bool = False,
147
+ ) -> Optional[str]:
148
+ upgrade_pip_command = "python -m pip install -U pip setuptools wheel"
149
+ uv_mount = f"--mount=from={ENV_VARS.TFY_PYTHON_BUILD_UV_IMAGE_URI},source=/uv,target=/usr/local/bin/uv"
150
+ envs = [
151
+ "UV_SYSTEM_PYTHON=true",
152
+ "UV_LINK_MODE=copy",
153
+ "UV_PYTHON_DOWNLOADS=never",
154
+ "UV_INDEX_STRATEGY=unsafe-best-match",
155
+ ]
156
+ if mount_uv_conf_secret:
157
+ envs.append(UV_CONF_SECRET_MOUNT_AS_ENV)
158
+
159
+ command = ["uv", "pip", "install", "--no-cache-dir"]
160
+
161
+ args = []
162
+
163
+ if requirements_path:
164
+ args.append("-r")
165
+ args.append(requirements_path)
166
+
167
+ if pip_packages:
168
+ args.extend(pip_packages)
169
+
170
+ if not args:
171
+ return None
172
+
173
+ uv_pip_install_command = shlex.join(envs + command + args)
174
+ shell_commands = " && ".join([upgrade_pip_command, uv_pip_install_command])
175
+ final_docker_run_command = " ".join([uv_mount, shell_commands])
176
+
177
+ return final_docker_run_command
139
178
 
140
179
 
141
180
  def generate_dockerfile_content(
142
181
  build_configuration: PythonBuild,
143
- mount_pip_conf_secret: bool = False,
182
+ package_manager: str = ENV_VARS.TFY_PYTHON_BUILD_PACKAGE_MANAGER,
183
+ mount_python_package_manager_conf_secret: bool = False,
144
184
  ) -> str:
145
185
  # TODO (chiragjn): Handle recursive references to other requirements files e.g. `-r requirements-gpu.txt`
146
186
  requirements_path = resolve_requirements_txt_path(build_configuration)
147
187
  requirements_destination_path = (
148
188
  "/tmp/requirements.txt" if requirements_path else None
149
189
  )
150
- pip_install_command = generate_pip_install_command(
151
- requirements_path=requirements_destination_path,
152
- pip_packages=build_configuration.pip_packages,
153
- mount_pip_conf_secret=mount_pip_conf_secret,
154
- )
190
+ if package_manager == PythonPackageManager.PIP.value:
191
+ python_packages_install_command = generate_pip_install_command(
192
+ requirements_path=requirements_destination_path,
193
+ pip_packages=build_configuration.pip_packages,
194
+ mount_pip_conf_secret=mount_python_package_manager_conf_secret,
195
+ )
196
+ elif package_manager == PythonPackageManager.UV.value:
197
+ python_packages_install_command = generate_uv_pip_install_command(
198
+ requirements_path=requirements_destination_path,
199
+ pip_packages=build_configuration.pip_packages,
200
+ mount_uv_conf_secret=mount_python_package_manager_conf_secret,
201
+ )
202
+ else:
203
+ raise ValueError(f"Unsupported package manager: {package_manager}")
204
+
155
205
  apt_install_command = generate_apt_install_command(
156
206
  apt_packages=build_configuration.apt_packages
157
207
  )
@@ -161,13 +211,22 @@ def generate_dockerfile_content(
161
211
  "apt_install_command": apt_install_command,
162
212
  "requirements_path": requirements_path,
163
213
  "requirements_destination_path": requirements_destination_path,
164
- "pip_install_command": pip_install_command,
214
+ "python_packages_install_command": python_packages_install_command,
165
215
  }
166
216
 
167
- if mount_pip_conf_secret:
168
- template_args["pip_config_secret_mount"] = PIP_CONF_BUILDKIT_SECRET_MOUNT
217
+ if mount_python_package_manager_conf_secret:
218
+ if package_manager == PythonPackageManager.PIP.value:
219
+ template_args["package_manager_config_secret_mount"] = (
220
+ PIP_CONF_BUILDKIT_SECRET_MOUNT
221
+ )
222
+ elif package_manager == PythonPackageManager.UV.value:
223
+ template_args["package_manager_config_secret_mount"] = (
224
+ UV_CONF_BUILDKIT_SECRET_MOUNT
225
+ )
226
+ else:
227
+ raise ValueError(f"Unsupported package manager: {package_manager}")
169
228
  else:
170
- template_args["pip_config_secret_mount"] = ""
229
+ template_args["package_manager_config_secret_mount"] = ""
171
230
 
172
231
  if build_configuration.cuda_version:
173
232
  template = CUDA_DOCKERFILE_TEMPLATE
@@ -5,3 +5,11 @@ PIP_CONF_BUILDKIT_SECRET_MOUNT = (
5
5
  PIP_CONF_SECRET_MOUNT_AS_ENV = (
6
6
  f"PIP_CONFIG_FILE=/run/secrets/{BUILDKIT_SECRET_MOUNT_PIP_CONF_ID}"
7
7
  )
8
+
9
+ BUILDKIT_SECRET_MOUNT_UV_CONF_ID = "uv.toml"
10
+ UV_CONF_BUILDKIT_SECRET_MOUNT = (
11
+ f"--mount=type=secret,id={BUILDKIT_SECRET_MOUNT_UV_CONF_ID}"
12
+ )
13
+ UV_CONF_SECRET_MOUNT_AS_ENV = (
14
+ f"UV_CONFIG_FILE=/run/secrets/{BUILDKIT_SECRET_MOUNT_UV_CONF_ID}"
15
+ )
@@ -1,6 +1,9 @@
1
1
  from typing import List, Optional
2
2
 
3
- from truefoundry.deploy.builder.constants import BUILDKIT_SECRET_MOUNT_PIP_CONF_ID
3
+ from truefoundry.deploy.builder.constants import (
4
+ BUILDKIT_SECRET_MOUNT_PIP_CONF_ID,
5
+ BUILDKIT_SECRET_MOUNT_UV_CONF_ID,
6
+ )
4
7
 
5
8
 
6
9
  def _get_id_from_buildkit_secret_value(value: str) -> Optional[str]:
@@ -19,14 +22,16 @@ def _get_id_from_buildkit_secret_value(value: str) -> Optional[str]:
19
22
  return None
20
23
 
21
24
 
22
- def has_pip_conf_secret(docker_build_extra_args: List[str]) -> bool:
25
+ def has_python_package_manager_conf_secret(docker_build_extra_args: List[str]) -> bool:
23
26
  args = [arg.strip() for arg in docker_build_extra_args]
24
27
  for i, arg in enumerate(docker_build_extra_args):
25
28
  if (
26
29
  arg == "--secret"
27
30
  and i + 1 < len(args)
28
- and _get_id_from_buildkit_secret_value(args[i + 1])
29
- == BUILDKIT_SECRET_MOUNT_PIP_CONF_ID
31
+ and (
32
+ _get_id_from_buildkit_secret_value(args[i + 1])
33
+ in (BUILDKIT_SECRET_MOUNT_PIP_CONF_ID, BUILDKIT_SECRET_MOUNT_UV_CONF_ID)
34
+ )
30
35
  ):
31
36
  return True
32
37
  return False
@@ -2,9 +2,9 @@ from typing import List, Tuple
2
2
 
3
3
  import rich_click as click
4
4
 
5
- from truefoundry.deploy.cli.console import console
6
- from truefoundry.deploy.cli.const import GROUP_CLS
7
- from truefoundry.deploy.cli.util import handle_exception_wrapper
5
+ from truefoundry.cli.console import console
6
+ from truefoundry.cli.const import GROUP_CLS
7
+ from truefoundry.cli.util import handle_exception_wrapper
8
8
  from truefoundry.deploy.lib.clients.servicefoundry_client import (
9
9
  ServiceFoundryServiceClient,
10
10
  )
@@ -30,13 +30,20 @@ from truefoundry.deploy.lib.model.entity import ApplyResult
30
30
  required=True,
31
31
  multiple=True,
32
32
  )
33
+ @click.option(
34
+ "--dry-run",
35
+ "--dry_run",
36
+ is_flag=True,
37
+ show_default=True,
38
+ help="Simulate the process without actually applying the manifest",
39
+ )
33
40
  @handle_exception_wrapper
34
- def apply_command(files: Tuple[str, ...]):
41
+ def apply_command(files: Tuple[str, ...], dry_run: bool = False):
35
42
  apply_results: List[ApplyResult] = []
36
43
  client = ServiceFoundryServiceClient()
37
44
  for file in files:
38
45
  with console.status(PROMPT_APPLYING_MANIFEST.format(file), spinner="dots"):
39
- for apply_result in apply_lib.apply_manifest_file(file, client):
46
+ for apply_result in apply_lib.apply_manifest_file(file, client, dry_run):
40
47
  if apply_result.success:
41
48
  console.print(f"[green]\u2714 {apply_result.message}[/]")
42
49
  else:
@@ -2,10 +2,10 @@ import json
2
2
 
3
3
  import rich_click as click
4
4
 
5
+ from truefoundry.cli.console import console
6
+ from truefoundry.cli.const import GROUP_CLS
7
+ from truefoundry.cli.util import handle_exception_wrapper
5
8
  from truefoundry.deploy import builder
6
- from truefoundry.deploy.cli.console import console
7
- from truefoundry.deploy.cli.const import GROUP_CLS
8
- from truefoundry.deploy.cli.util import handle_exception_wrapper
9
9
  from truefoundry.version import __version__
10
10
 
11
11
 
@@ -2,8 +2,8 @@ from typing import Optional
2
2
 
3
3
  import rich_click as click
4
4
 
5
- from truefoundry.deploy.cli.const import COMMAND_CLS
6
- from truefoundry.deploy.cli.util import handle_exception_wrapper
5
+ from truefoundry.cli.const import COMMAND_CLS
6
+ from truefoundry.cli.util import handle_exception_wrapper
7
7
  from truefoundry.deploy.io.rich_output_callback import RichOutputCallBack
8
8
  from truefoundry.deploy.lib.clients.servicefoundry_client import (
9
9
  ServiceFoundryServiceClient,
@@ -2,9 +2,9 @@ from typing import Optional
2
2
 
3
3
  import rich_click as click
4
4
 
5
- from truefoundry.deploy.cli.const import COMMAND_CLS, GROUP_CLS
6
- from truefoundry.deploy.cli.display_util import print_obj
7
- from truefoundry.deploy.cli.util import handle_exception_wrapper
5
+ from truefoundry.cli.const import COMMAND_CLS, GROUP_CLS
6
+ from truefoundry.cli.display_util import print_obj
7
+ from truefoundry.cli.util import handle_exception_wrapper
8
8
  from truefoundry.deploy.lib.dao import workspace as workspace_lib
9
9
 
10
10
 
@@ -1,9 +1,9 @@
1
1
  import rich_click as click
2
2
 
3
- from truefoundry.deploy.cli.config import CliConfig
4
- from truefoundry.deploy.cli.const import COMMAND_CLS, GROUP_CLS
5
- from truefoundry.deploy.cli.display_util import print_json
6
- from truefoundry.deploy.cli.util import handle_exception_wrapper
3
+ from truefoundry.cli.config import CliConfig
4
+ from truefoundry.cli.const import COMMAND_CLS, GROUP_CLS
5
+ from truefoundry.cli.display_util import print_json
6
+ from truefoundry.cli.util import handle_exception_wrapper
7
7
  from truefoundry.deploy.io.rich_output_callback import RichOutputCallBack
8
8
  from truefoundry.deploy.lib.dao import application as application_lib
9
9
  from truefoundry.deploy.lib.dao import workspace as workspace_lib
@@ -9,8 +9,8 @@ from click.exceptions import ClickException
9
9
 
10
10
  from truefoundry.autodeploy.cli import cli as autodeploy_cli
11
11
  from truefoundry.autodeploy.exception import InvalidRequirementsException
12
- from truefoundry.deploy.cli.const import COMMAND_CLS, GROUP_CLS
13
- from truefoundry.deploy.cli.util import handle_exception_wrapper
12
+ from truefoundry.cli.const import COMMAND_CLS, GROUP_CLS
13
+ from truefoundry.cli.util import handle_exception_wrapper
14
14
 
15
15
 
16
16
  def _get_default_spec_file():
@@ -1,6 +1,6 @@
1
1
  import rich_click as click
2
2
 
3
- from truefoundry.deploy.cli.const import GROUP_CLS
3
+ from truefoundry.cli.const import GROUP_CLS
4
4
  from truefoundry.ml.cli.commands.model_init import get_model_init_command
5
5
 
6
6