truefoundry 0.11.1rc1__tar.gz → 0.11.3__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 (390) hide show
  1. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/.gitignore +4 -0
  2. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/PKG-INFO +6 -3
  3. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/pyproject.toml +9 -3
  4. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/__init__.py +2 -0
  5. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/constants.py +2 -0
  6. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/utils.py +9 -3
  7. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/__init__.py +1 -0
  8. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/_autogen/models.py +92 -36
  9. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/builder/__init__.py +2 -0
  10. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/builder/builders/__init__.py +2 -0
  11. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/builder/builders/tfy_python_buildpack/dockerfile_template.py +6 -83
  12. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/builder/builders/tfy_spark_buildpack/dockerfile_template.py +20 -72
  13. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/builder/builders/tfy_spark_buildpack/tfy_execute_notebook.py +46 -29
  14. truefoundry-0.11.3/truefoundry/deploy/builder/builders/tfy_task_pyspark_buildpack/__init__.py +52 -0
  15. truefoundry-0.11.3/truefoundry/deploy/builder/builders/tfy_task_pyspark_buildpack/dockerfile_template.py +121 -0
  16. truefoundry-0.11.3/truefoundry/deploy/builder/utils.py +120 -0
  17. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/trigger_command.py +21 -2
  18. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/clients/servicefoundry_client.py +4 -0
  19. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/dao/application.py +2 -0
  20. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/v2/lib/patched_models.py +39 -0
  21. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/artifact/truefoundry_artifact_repo.py +15 -50
  22. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/workflow/__init__.py +2 -0
  23. truefoundry-0.11.3/truefoundry/workflow/spark_task.py +91 -0
  24. truefoundry-0.11.1rc1/truefoundry/deploy/builder/utils.py +0 -37
  25. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/README.md +0 -0
  26. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/_ask/__init__.py +0 -0
  27. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/_ask/cli.py +0 -0
  28. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/_ask/client.py +0 -0
  29. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/_ask/llm_utils.py +0 -0
  30. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/_client.py +0 -0
  31. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/__init__.py +0 -0
  32. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/agents/__init__.py +0 -0
  33. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/agents/base.py +0 -0
  34. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/agents/developer.py +0 -0
  35. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/agents/project_identifier.py +0 -0
  36. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/agents/tester.py +0 -0
  37. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/cli.py +0 -0
  38. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/constants.py +0 -0
  39. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/exception.py +0 -0
  40. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/logger.py +0 -0
  41. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/tools/__init__.py +0 -0
  42. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/tools/ask.py +0 -0
  43. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/tools/base.py +0 -0
  44. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/tools/commit.py +0 -0
  45. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/tools/docker_build.py +0 -0
  46. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/tools/docker_run.py +0 -0
  47. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/tools/file_type_counts.py +0 -0
  48. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/tools/list_files.py +0 -0
  49. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/tools/read_file.py +0 -0
  50. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/tools/send_request.py +0 -0
  51. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/tools/write_file.py +0 -0
  52. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/utils/client.py +0 -0
  53. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/utils/diff.py +0 -0
  54. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/autodeploy/utils/pydantic_compat.py +0 -0
  55. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/cli/__init__.py +0 -0
  56. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/cli/__main__.py +0 -0
  57. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/cli/config.py +0 -0
  58. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/cli/console.py +0 -0
  59. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/cli/const.py +0 -0
  60. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/cli/display_util.py +0 -0
  61. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/cli/util.py +0 -0
  62. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/__init__.py +0 -0
  63. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/auth_service_client.py +0 -0
  64. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/credential_file_manager.py +0 -0
  65. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/credential_provider.py +0 -0
  66. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/entities.py +0 -0
  67. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/exceptions.py +0 -0
  68. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/request_utils.py +0 -0
  69. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/servicefoundry_client.py +0 -0
  70. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/session.py +0 -0
  71. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/storage_provider_utils.py +0 -0
  72. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/types.py +0 -0
  73. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/common/warnings.py +0 -0
  74. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/builder/builders/dockerfile.py +0 -0
  75. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/builder/builders/tfy_notebook_buildpack/__init__.py +0 -0
  76. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/builder/builders/tfy_notebook_buildpack/dockerfile_template.py +0 -0
  77. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/builder/builders/tfy_python_buildpack/__init__.py +0 -0
  78. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/builder/builders/tfy_spark_buildpack/__init__.py +0 -0
  79. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/builder/constants.py +0 -0
  80. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/builder/docker_service.py +0 -0
  81. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/__init__.py +0 -0
  82. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/__init__.py +0 -0
  83. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/apply_command.py +0 -0
  84. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/build_command.py +0 -0
  85. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/delete_command.py +0 -0
  86. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/deploy_command.py +0 -0
  87. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/deploy_init_command.py +0 -0
  88. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/get_command.py +0 -0
  89. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/k8s_exec_credential_command.py +0 -0
  90. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/kubeconfig_command.py +0 -0
  91. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/login_command.py +0 -0
  92. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/logout_command.py +0 -0
  93. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/logs_command.py +0 -0
  94. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/patch_application_command.py +0 -0
  95. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/patch_command.py +0 -0
  96. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/terminate_comand.py +0 -0
  97. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/cli/commands/utils.py +0 -0
  98. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/core/__init__.py +0 -0
  99. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/core/login.py +0 -0
  100. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/core/logout.py +0 -0
  101. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/io/__init__.py +0 -0
  102. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/io/no_output_callback.py +0 -0
  103. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/io/output_callback.py +0 -0
  104. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/io/rich_output_callback.py +0 -0
  105. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/__init__.py +0 -0
  106. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/clients/__init__.py +0 -0
  107. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/const.py +0 -0
  108. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/dao/__init__.py +0 -0
  109. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/dao/apply.py +0 -0
  110. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/dao/delete.py +0 -0
  111. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/dao/version.py +0 -0
  112. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/dao/workspace.py +0 -0
  113. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/diff_utils.py +0 -0
  114. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/logs_utils.py +0 -0
  115. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/messages.py +0 -0
  116. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/model/__init__.py +0 -0
  117. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/model/entity.py +0 -0
  118. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/session.py +0 -0
  119. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/util.py +0 -0
  120. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/lib/win32.py +0 -0
  121. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/python_deploy_codegen.py +0 -0
  122. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/v2/__init__.py +0 -0
  123. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/v2/lib/__init__.py +0 -0
  124. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/v2/lib/deploy.py +0 -0
  125. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/v2/lib/deploy_workflow.py +0 -0
  126. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/v2/lib/deployable_patched_models.py +0 -0
  127. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/v2/lib/models.py +0 -0
  128. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/deploy/v2/lib/source.py +0 -0
  129. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/logger.py +0 -0
  130. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/__init__.py +0 -0
  131. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/__init__.py +0 -0
  132. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/__init__.py +0 -0
  133. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/api/__init__.py +0 -0
  134. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/api/auth_api.py +0 -0
  135. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/api/deprecated_api.py +0 -0
  136. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/api/experiments_api.py +0 -0
  137. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/api/generate_code_snippet_api.py +0 -0
  138. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/api/health_api.py +0 -0
  139. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/api/metrics_api.py +0 -0
  140. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/api/mlfoundry_artifacts_api.py +0 -0
  141. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/api/run_artifacts_api.py +0 -0
  142. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/api/runs_api.py +0 -0
  143. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/api_client.py +0 -0
  144. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/api_response.py +0 -0
  145. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/configuration.py +0 -0
  146. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/exceptions.py +0 -0
  147. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/__init__.py +0 -0
  148. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/agent_app.py +0 -0
  149. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/agent_manifest.py +0 -0
  150. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/agent_open_api_tool_manifest.py +0 -0
  151. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/agent_open_api_tool_with_fqn.py +0 -0
  152. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/agent_with_fqn.py +0 -0
  153. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/apply_request_dto.py +0 -0
  154. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/apply_response_dto.py +0 -0
  155. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/artifact_dto.py +0 -0
  156. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/artifact_manifest.py +0 -0
  157. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/artifact_path.py +0 -0
  158. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/artifact_response_dto.py +0 -0
  159. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/artifact_type.py +0 -0
  160. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/artifact_version_dto.py +0 -0
  161. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/artifact_version_response_dto.py +0 -0
  162. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/artifact_version_serialization_format.py +0 -0
  163. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/artifact_version_status.py +0 -0
  164. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/assistant_message.py +0 -0
  165. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/authorize_user_for_model_request_dto.py +0 -0
  166. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/authorize_user_for_model_version_request_dto.py +0 -0
  167. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/blob_storage_reference.py +0 -0
  168. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/body_get_search_runs_get.py +0 -0
  169. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/chat_prompt_manifest.py +0 -0
  170. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/chat_prompt_manifest_messages_inner.py +0 -0
  171. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/columns_dto.py +0 -0
  172. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/command.py +0 -0
  173. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/content.py +0 -0
  174. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/content1.py +0 -0
  175. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/content2.py +0 -0
  176. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/content2_any_of_inner.py +0 -0
  177. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_artifact_request_dto.py +0 -0
  178. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_artifact_response_dto.py +0 -0
  179. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_artifact_version_request_dto.py +0 -0
  180. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_artifact_version_response_dto.py +0 -0
  181. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_dataset_request_dto.py +0 -0
  182. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_experiment_request_dto.py +0 -0
  183. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_experiment_response_dto.py +0 -0
  184. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_model_version_request_dto.py +0 -0
  185. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_multi_part_upload_for_dataset_request_dto.py +0 -0
  186. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_multi_part_upload_for_dataset_response_dto.py +0 -0
  187. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_multi_part_upload_request_dto.py +0 -0
  188. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_python_deployment_config_request_dto.py +0 -0
  189. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_python_deployment_config_response_dto.py +0 -0
  190. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_run_request_dto.py +0 -0
  191. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_run_response_dto.py +0 -0
  192. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/create_workflow_task_config_request_dto.py +0 -0
  193. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/data_directory_manifest.py +0 -0
  194. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/dataset_dto.py +0 -0
  195. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/dataset_response_dto.py +0 -0
  196. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/delete_artifact_versions_request_dto.py +0 -0
  197. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/delete_dataset_request_dto.py +0 -0
  198. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/delete_files_for_dataset_request_dto.py +0 -0
  199. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/delete_model_version_request_dto.py +0 -0
  200. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/delete_run_request.py +0 -0
  201. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/delete_tag_request_dto.py +0 -0
  202. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/experiment_dto.py +0 -0
  203. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/experiment_id_request_dto.py +0 -0
  204. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/experiment_response_dto.py +0 -0
  205. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/experiment_tag_dto.py +0 -0
  206. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/export_deployment_files_request_dto.py +0 -0
  207. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/external_blob_storage_source.py +0 -0
  208. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/fast_ai_framework.py +0 -0
  209. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/file_info_dto.py +0 -0
  210. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/finalize_artifact_version_request_dto.py +0 -0
  211. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/framework.py +0 -0
  212. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_artifact_version_aliases_response_dto.py +0 -0
  213. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_experiment_response_dto.py +0 -0
  214. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_latest_run_log_response_dto.py +0 -0
  215. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_metric_history_response.py +0 -0
  216. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_signed_url_for_dataset_write_request_dto.py +0 -0
  217. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_read_request_dto.py +0 -0
  218. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_read_response_dto.py +0 -0
  219. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_write_request_dto.py +0 -0
  220. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_write_response_dto.py +0 -0
  221. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_dataset_read_request_dto.py +0 -0
  222. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_dataset_read_response_dto.py +0 -0
  223. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_dataset_write_response_dto.py +0 -0
  224. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/get_tenant_id_response_dto.py +0 -0
  225. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/gluon_framework.py +0 -0
  226. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/h2_o_framework.py +0 -0
  227. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/http_validation_error.py +0 -0
  228. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/image_content_part.py +0 -0
  229. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/image_url.py +0 -0
  230. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/infer_method_name.py +0 -0
  231. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/keras_framework.py +0 -0
  232. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/latest_run_log_dto.py +0 -0
  233. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/library_name.py +0 -0
  234. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/light_gbm_framework.py +0 -0
  235. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_artifact_versions_request_dto.py +0 -0
  236. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_artifact_versions_response_dto.py +0 -0
  237. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_artifacts_request_dto.py +0 -0
  238. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_artifacts_response_dto.py +0 -0
  239. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_colums_response_dto.py +0 -0
  240. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_datasets_request_dto.py +0 -0
  241. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_datasets_response_dto.py +0 -0
  242. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_experiments_response_dto.py +0 -0
  243. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_files_for_artifact_version_request_dto.py +0 -0
  244. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_files_for_artifact_versions_response_dto.py +0 -0
  245. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_files_for_dataset_request_dto.py +0 -0
  246. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_files_for_dataset_response_dto.py +0 -0
  247. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_latest_run_logs_response_dto.py +0 -0
  248. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_metric_history_request_dto.py +0 -0
  249. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_metric_history_response_dto.py +0 -0
  250. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_model_version_response_dto.py +0 -0
  251. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_model_versions_request_dto.py +0 -0
  252. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_models_request_dto.py +0 -0
  253. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_models_response_dto.py +0 -0
  254. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_run_artifacts_response_dto.py +0 -0
  255. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/list_run_logs_response_dto.py +0 -0
  256. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/local_artifact_source.py +0 -0
  257. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/local_model_source.py +0 -0
  258. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/log_batch_request_dto.py +0 -0
  259. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/log_metric_request_dto.py +0 -0
  260. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/log_param_request_dto.py +0 -0
  261. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/manifest.py +0 -0
  262. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/manifest1.py +0 -0
  263. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/manifest2.py +0 -0
  264. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/method.py +0 -0
  265. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/metric_collection_dto.py +0 -0
  266. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/metric_dto.py +0 -0
  267. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/mime_type.py +0 -0
  268. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/model_configuration.py +0 -0
  269. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/model_dto.py +0 -0
  270. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/model_manifest.py +0 -0
  271. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/model_response_dto.py +0 -0
  272. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/model_server.py +0 -0
  273. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/model_version_dto.py +0 -0
  274. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/model_version_environment.py +0 -0
  275. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/model_version_response_dto.py +0 -0
  276. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/multi_part_upload_dto.py +0 -0
  277. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/multi_part_upload_response_dto.py +0 -0
  278. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/multi_part_upload_storage_provider.py +0 -0
  279. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/notify_artifact_version_failure_dto.py +0 -0
  280. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/onnx_framework.py +0 -0
  281. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/openapi_spec.py +0 -0
  282. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/paddle_framework.py +0 -0
  283. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/param_dto.py +0 -0
  284. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/parameters.py +0 -0
  285. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/py_torch_framework.py +0 -0
  286. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/resolve_agent_app_response_dto.py +0 -0
  287. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/restore_run_request_dto.py +0 -0
  288. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/run_data_dto.py +0 -0
  289. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/run_dto.py +0 -0
  290. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/run_info_dto.py +0 -0
  291. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/run_log_dto.py +0 -0
  292. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/run_log_input_dto.py +0 -0
  293. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/run_response_dto.py +0 -0
  294. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/run_tag_dto.py +0 -0
  295. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/search_runs_request_dto.py +0 -0
  296. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/search_runs_response_dto.py +0 -0
  297. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/set_experiment_tag_request_dto.py +0 -0
  298. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/set_tag_request_dto.py +0 -0
  299. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/signed_url_dto.py +0 -0
  300. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/sklearn_framework.py +0 -0
  301. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/sklearn_model_schema.py +0 -0
  302. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/sklearn_serialization_format.py +0 -0
  303. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/source.py +0 -0
  304. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/source1.py +0 -0
  305. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/source2.py +0 -0
  306. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/spa_cy_framework.py +0 -0
  307. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/stats_models_framework.py +0 -0
  308. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/stop.py +0 -0
  309. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/store_run_logs_request_dto.py +0 -0
  310. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/subject.py +0 -0
  311. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/subject_type.py +0 -0
  312. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/system_message.py +0 -0
  313. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/tensor_flow_framework.py +0 -0
  314. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/text.py +0 -0
  315. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/text_content_part.py +0 -0
  316. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/transformers_framework.py +0 -0
  317. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/trigger_job_run_config_request_dto.py +0 -0
  318. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/trigger_job_run_config_response_dto.py +0 -0
  319. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/true_foundry_managed_source.py +0 -0
  320. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/update_artifact_version_request_dto.py +0 -0
  321. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/update_dataset_request_dto.py +0 -0
  322. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/update_experiment_request_dto.py +0 -0
  323. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/update_model_version_request_dto.py +0 -0
  324. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/update_run_request_dto.py +0 -0
  325. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/update_run_response_dto.py +0 -0
  326. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/url.py +0 -0
  327. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/user_message.py +0 -0
  328. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/validate_external_storage_root_request_dto.py +0 -0
  329. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/validate_external_storage_root_response_dto.py +0 -0
  330. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/validation_error.py +0 -0
  331. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/validation_error_loc_inner.py +0 -0
  332. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/xg_boost_framework.py +0 -0
  333. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/xg_boost_model_schema.py +0 -0
  334. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/models/xg_boost_serialization_format.py +0 -0
  335. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client/rest.py +0 -0
  336. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/client_README.md +0 -0
  337. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/entities/artifacts.py +0 -0
  338. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/models/__init__.py +0 -0
  339. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/models/exceptions.py +0 -0
  340. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/models/schema.py +0 -0
  341. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/models/signature.py +0 -0
  342. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/_autogen/models/utils.py +0 -0
  343. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/artifact/__init__.py +0 -0
  344. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/cli/__init__.py +0 -0
  345. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/cli/cli.py +0 -0
  346. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/cli/commands/__init__.py +0 -0
  347. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/cli/commands/download.py +0 -0
  348. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/cli/commands/model_init.py +0 -0
  349. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/cli/utils.py +0 -0
  350. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/clients/__init__.py +0 -0
  351. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/constants.py +0 -0
  352. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/entities.py +0 -0
  353. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/enums.py +0 -0
  354. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/exceptions.py +0 -0
  355. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/git_info.py +0 -0
  356. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/internal_namespace.py +0 -0
  357. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/__init__.py +0 -0
  358. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/artifacts/artifact.py +0 -0
  359. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/artifacts/constants.py +0 -0
  360. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/artifacts/dataset.py +0 -0
  361. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/artifacts/general_artifact.py +0 -0
  362. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/artifacts/model.py +0 -0
  363. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/artifacts/utils.py +0 -0
  364. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/image/__init__.py +0 -0
  365. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/image/constants.py +0 -0
  366. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/image/image.py +0 -0
  367. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/image/image_normalizer.py +0 -0
  368. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/image/types.py +0 -0
  369. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/plot.py +0 -0
  370. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/pydantic_base.py +0 -0
  371. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/log_types/utils.py +0 -0
  372. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/logger.py +0 -0
  373. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/mlfoundry_api.py +0 -0
  374. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/mlfoundry_run.py +0 -0
  375. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/model_framework.py +0 -0
  376. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/prompt_utils.py +0 -0
  377. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/run_utils.py +0 -0
  378. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/session.py +0 -0
  379. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/ml/validation_utils.py +0 -0
  380. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/pydantic_v1.py +0 -0
  381. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/version.py +0 -0
  382. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/workflow/container_task.py +0 -0
  383. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/workflow/map_task.py +0 -0
  384. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/workflow/python_task.py +0 -0
  385. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/workflow/remote_filesystem/__init__.py +0 -0
  386. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/workflow/remote_filesystem/logger.py +0 -0
  387. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py +0 -0
  388. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py +0 -0
  389. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/workflow/task.py +0 -0
  390. {truefoundry-0.11.1rc1 → truefoundry-0.11.3}/truefoundry/workflow/workflow.py +0 -0
@@ -150,3 +150,7 @@ aclImdb/
150
150
  **/.DS_Store
151
151
 
152
152
  .mypy-errors.txt
153
+
154
+ almond-output*
155
+ rt*.jar
156
+ hsperfdata_*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: truefoundry
3
- Version: 0.11.1rc1
3
+ Version: 0.11.3
4
4
  Summary: TrueFoundry CLI
5
5
  Author-email: TrueFoundry Team <abhishek@truefoundry.com>
6
6
  Requires-Python: <3.14,>=3.8.1
@@ -30,14 +30,17 @@ Requires-Dist: requirements-parser<0.12.0,>=0.11.0
30
30
  Requires-Dist: rich-click<2.0.0,>=1.2.1
31
31
  Requires-Dist: rich<14.0.0,>=13.7.1
32
32
  Requires-Dist: tqdm<5.0.0,>=4.0.0
33
- Requires-Dist: truefoundry-sdk<0.2.0,>=0.1.7
33
+ Requires-Dist: truefoundry-sdk<0.2.0,>=0.1.9
34
34
  Requires-Dist: typing-extensions>=4.0
35
35
  Requires-Dist: urllib3<3,>=1.26.18
36
36
  Requires-Dist: yq<4.0.0,>=3.1.0
37
37
  Provides-Extra: ai
38
38
  Requires-Dist: mcp==1.9.4; (python_version >= '3.10') and extra == 'ai'
39
+ Provides-Extra: spark
40
+ Requires-Dist: flytekit==1.15.3; (python_version >= '3.9' and python_version <= '3.12') and extra == 'spark'
41
+ Requires-Dist: flytekitplugins-spark==1.15.3; (python_version >= '3.9' and python_version <= '3.12') and extra == 'spark'
39
42
  Provides-Extra: workflow
40
- Requires-Dist: flytekit==1.15.3; (python_version >= '3.9' and python_version < '3.13') and extra == 'workflow'
43
+ Requires-Dist: flytekit==1.15.3; (python_version >= '3.9' and python_version <= '3.12') and extra == 'workflow'
41
44
  Description-Content-Type: text/markdown
42
45
 
43
46
  # TrueFoundry
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "truefoundry"
3
- version = "0.11.1rc1" # This is a placeholder version, it will be replaced when releasing
3
+ version = "0.11.3" # This is a placeholder version, it will be replaced when releasing
4
4
  requires-python = ">=3.8.1,<3.14"
5
5
  description = "TrueFoundry CLI"
6
6
  authors = [{ name = "TrueFoundry Team", email = "abhishek@truefoundry.com" }]
@@ -31,7 +31,7 @@ dependencies = [
31
31
  "rich-click>=1.2.1,<2.0.0",
32
32
  "rich>=13.7.1,<14.0.0",
33
33
  "tqdm>=4.0.0,<5.0.0",
34
- "truefoundry-sdk>=0.1.7,<0.2.0",
34
+ "truefoundry-sdk>=0.1.9,<0.2.0",
35
35
  "typing-extensions>=4.0",
36
36
  "urllib3>=1.26.18,<3",
37
37
  "yq>=3.1.0,<4.0.0",
@@ -41,7 +41,13 @@ dependencies = [
41
41
  ]
42
42
 
43
43
  [project.optional-dependencies]
44
- workflow = ["flytekit==1.15.3 ; python_version >= '3.9' and python_version < '3.13'"]
44
+ workflow = [
45
+ "flytekit==1.15.3; python_version >= '3.9' and python_version <= '3.12'",
46
+ ]
47
+ spark = [
48
+ "flytekit==1.15.3; python_version >= '3.9' and python_version <= '3.12'",
49
+ "flytekitplugins-spark==1.15.3; python_version >= '3.9' and python_version <= '3.12'",
50
+ ]
45
51
  ai = [
46
52
  "mcp==1.9.4 ; python_version >= '3.10'",
47
53
  ]
@@ -12,6 +12,7 @@ from truefoundry_sdk import (
12
12
  ToolSchema,
13
13
  UserMessage,
14
14
  )
15
+ from truefoundry_sdk.client import TrueFoundry
15
16
 
16
17
  from truefoundry._client import client
17
18
  from truefoundry.common.warnings import (
@@ -39,6 +40,7 @@ __all__ = [
39
40
  "render_prompt",
40
41
  "suppress_truefoundry_deprecation_warnings",
41
42
  "SystemMessage",
43
+ "TrueFoundry",
42
44
  "ToolCall",
43
45
  "ToolMessage",
44
46
  "ToolSchema",
@@ -68,6 +68,8 @@ class TrueFoundrySdkEnv(BaseSettings):
68
68
  # TODO(gw): Use another image with more linient rate limits
69
69
  TFY_SPARK_BUILD_SPARK_IMAGE_REPO: str = "public.ecr.aws/bitnami/spark"
70
70
 
71
+ TFY_TASK_PYSPARK_BUILD_SPARK_IMAGE_REPO: str = "public.ecr.aws/bitnami/spark"
72
+
71
73
  # For local development, this enables futher configuration via _TFYServersConfig
72
74
  TFY_CLI_LOCAL_DEV_MODE: bool = False
73
75
 
@@ -16,6 +16,7 @@ from truefoundry.common.constants import (
16
16
  API_SERVER_RELATIVE_PATH,
17
17
  ENV_VARS,
18
18
  MLFOUNDRY_SERVER_RELATIVE_PATH,
19
+ TFY_API_KEY_ENV_KEY,
19
20
  TFY_DEBUG_ENV_KEY,
20
21
  TFY_HOST_ENV_KEY,
21
22
  TFY_INTERNAL_ENV_KEY,
@@ -113,9 +114,14 @@ def validate_tfy_host(tfy_host: str) -> None:
113
114
  def resolve_tfy_host(tfy_host: Optional[str] = None) -> str:
114
115
  tfy_host = tfy_host or ENV_VARS.TFY_HOST
115
116
  if not tfy_host:
116
- raise ValueError(
117
- f"Either `host` should be provided using `--host <value>`, or `{TFY_HOST_ENV_KEY}` env must be set"
118
- )
117
+ if ENV_VARS.TFY_API_KEY:
118
+ raise ValueError(
119
+ f"TFY_HOST` env must be set since `{TFY_API_KEY_ENV_KEY}` env is set. Either set `{TFY_HOST_ENV_KEY}` or unset `{TFY_API_KEY_ENV_KEY}` and login"
120
+ )
121
+ else:
122
+ raise ValueError(
123
+ f"Either `host` should be provided using `--host <value>`, or `{TFY_HOST_ENV_KEY}` env must be set"
124
+ )
119
125
  tfy_host = tfy_host.strip("/")
120
126
  validate_tfy_host(tfy_host)
121
127
  return tfy_host
@@ -120,6 +120,7 @@ from truefoundry.deploy.v2.lib.patched_models import (
120
120
  SparkJobPythonEntrypoint,
121
121
  SparkJobPythonNotebookEntrypoint,
122
122
  SparkJobScalaEntrypoint,
123
+ SparkJobScalaNotebookEntrypoint,
123
124
  SQSInputConfig,
124
125
  SQSOutputConfig,
125
126
  SQSQueueMetricConfig,
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: application.json
3
- # timestamp: 2025-06-18T21:24:37+00:00
3
+ # timestamp: 2025-07-28T14:11:36+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -103,7 +103,7 @@ class AsyncProcessorSidecar(BaseModel):
103
103
 
104
104
 
105
105
  class Autoshutdown(BaseModel):
106
- wait_time: conint(ge=0) = Field(
106
+ wait_time: conint(ge=0, le=604800) = Field(
107
107
  900,
108
108
  description="The period to wait after the last received request before scaling the replicas to 0. This value should be high enough to allow for the replicas of the service to come up to avoid premature scaling down.",
109
109
  )
@@ -957,6 +957,14 @@ class SparkJobScalaEntrypoint(BaseModel):
957
957
  )
958
958
 
959
959
 
960
+ class SparkJobScalaNotebookEntrypoint(BaseModel):
961
+ type: Literal["scala-notebook"] = Field(..., description="")
962
+ main_application_file: str = Field(
963
+ ...,
964
+ description="The main application file to be executed by the spark job. Relative path in case of git repository.",
965
+ )
966
+
967
+
960
968
  class StaticVolumeConfig(BaseModel):
961
969
  type: Literal["static"] = Field(..., description="Volume Type for the volume.")
962
970
  persistent_volume_name: str = Field(
@@ -989,6 +997,34 @@ class TaskDockerFileBuild(BaseModel):
989
997
  build_args: Optional[Dict[str, str]] = Field(None, description="")
990
998
 
991
999
 
1000
+ class TaskPySparkBuild(BaseModel):
1001
+ """
1002
+ Describes the configuration for the PySpark build for a task
1003
+ """
1004
+
1005
+ type: Literal["task-pyspark-build"] = Field(..., description="")
1006
+ spark_version: str = Field(
1007
+ "3.5.2",
1008
+ description="Spark version should match the spark version installed in the image.",
1009
+ )
1010
+ docker_registry: Optional[str] = Field(
1011
+ None,
1012
+ description="FQN of the container registry. If you can't find your registry here,\nadd it through the [Integrations](/integrations?tab=docker-registry) page",
1013
+ )
1014
+ requirements_path: Optional[str] = Field(
1015
+ None,
1016
+ description="Path to `requirements.txt` relative to\n`Path to build context`",
1017
+ )
1018
+ pip_packages: Optional[List[str]] = Field(
1019
+ None,
1020
+ description='Define pip package requirements.\nIn Python/YAML E.g. ["fastapi>=0.90,<1.0", "uvicorn"]',
1021
+ )
1022
+ apt_packages: Optional[List[str]] = Field(
1023
+ None,
1024
+ description='Debian packages to install via `apt get`.\nIn Python/YAML E.g. ["git", "ffmpeg", "htop"]',
1025
+ )
1026
+
1027
+
992
1028
  class TaskPythonBuild(BaseModel):
993
1029
  """
994
1030
  Describes the configuration for the python build for a task
@@ -1200,7 +1236,7 @@ class ContainerTaskConfig(BaseModel):
1200
1236
  description="Configure environment variables to be injected in the task either as plain text or secrets. [Docs](https://docs.truefoundry.com/docs/env-variables)",
1201
1237
  )
1202
1238
  resources: Optional[Resources] = None
1203
- mounts: Optional[List[Union[SecretMount, StringDataMount, VolumeMount]]] = Field(
1239
+ mounts: Optional[List[VolumeMount]] = Field(
1204
1240
  None, description="Configure data to be mounted to Workflow pod(s) as a volume."
1205
1241
  )
1206
1242
  service_account: Optional[str] = Field(None, description="")
@@ -1461,6 +1497,7 @@ class SparkJob(BaseModel):
1461
1497
  SparkJobScalaEntrypoint,
1462
1498
  SparkJobJavaEntrypoint,
1463
1499
  SparkJobPythonNotebookEntrypoint,
1500
+ SparkJobScalaNotebookEntrypoint,
1464
1501
  ] = Field(..., description="")
1465
1502
  driver_config: SparkDriverConfig
1466
1503
  executor_config: SparkExecutorConfig
@@ -1567,15 +1604,6 @@ class FlyteLaunchPlan(BaseModel):
1567
1604
  closure: Any
1568
1605
 
1569
1606
 
1570
- class FlyteTaskCustom(BaseModel):
1571
- truefoundry: Union[PythonTaskConfig, ContainerTaskConfig]
1572
-
1573
-
1574
- class FlyteTaskTemplate(BaseModel):
1575
- id: FlyteTaskID
1576
- custom: FlyteTaskCustom
1577
-
1578
-
1579
1607
  class JobAlert(BaseModel):
1580
1608
  """
1581
1609
  Describes the configuration for the job alerts
@@ -1594,6 +1622,25 @@ class JobAlert(BaseModel):
1594
1622
  on_failure: bool = Field(True, description="Send an alert when the job fails")
1595
1623
 
1596
1624
 
1625
+ class PySparkTaskConfig(BaseModel):
1626
+ type: Literal["pyspark-task-config"] = Field(..., description="")
1627
+ image: TaskPySparkBuild
1628
+ driver_config: SparkDriverConfig
1629
+ executor_config: SparkExecutorConfig
1630
+ spark_conf: Optional[Dict[str, Any]] = Field(
1631
+ None,
1632
+ description="Extra configuration properties to be passed to the spark job. [Docs](https://spark.apache.org/docs/latest/configuration.html)",
1633
+ )
1634
+ env: Optional[Dict[str, str]] = Field(
1635
+ None,
1636
+ description="Configure environment variables to be injected in the task either as plain text or secrets. [Docs](https://docs.truefoundry.com/docs/env-variables)",
1637
+ )
1638
+ mounts: Optional[List[Union[SecretMount, StringDataMount, VolumeMount]]] = Field(
1639
+ None, description="Configure data to be mounted to Workflow pod(s) as a volume."
1640
+ )
1641
+ service_account: Optional[str] = Field(None, description="")
1642
+
1643
+
1597
1644
  class Service(BaseService):
1598
1645
  """
1599
1646
  Describes the configuration for the service
@@ -1630,9 +1677,13 @@ class AsyncService(BaseService):
1630
1677
  sidecar: Optional[AsyncProcessorSidecar] = None
1631
1678
 
1632
1679
 
1633
- class FlyteTask(BaseModel):
1634
- template: FlyteTaskTemplate
1635
- description: Optional[Any] = None
1680
+ class FlyteTaskCustom(BaseModel):
1681
+ truefoundry: Union[PythonTaskConfig, ContainerTaskConfig, PySparkTaskConfig]
1682
+
1683
+
1684
+ class FlyteTaskTemplate(BaseModel):
1685
+ id: FlyteTaskID
1686
+ custom: FlyteTaskCustom
1636
1687
 
1637
1688
 
1638
1689
  class Job(BaseModel):
@@ -1688,27 +1739,6 @@ class Job(BaseModel):
1688
1739
  )
1689
1740
 
1690
1741
 
1691
- class Workflow(BaseModel):
1692
- """
1693
- Describes the configuration for the worflow
1694
- """
1695
-
1696
- type: Literal["workflow"] = Field(..., description="")
1697
- name: constr(regex=r"^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$") = Field(
1698
- ..., description="Name of the workflow"
1699
- )
1700
- source: Union[LocalSource, RemoteSource] = Field(
1701
- ..., description="Source Code for the workflow, either local or remote"
1702
- )
1703
- workflow_file_path: str = Field(
1704
- ..., description="Path to the workflow file relative to the project root path"
1705
- )
1706
- flyte_entities: Optional[List[Union[FlyteTask, FlyteWorkflow, FlyteLaunchPlan]]] = (
1707
- Field(None, description="")
1708
- )
1709
- alerts: Optional[List[WorkflowAlert]] = Field(None, description="")
1710
-
1711
-
1712
1742
  class ApplicationSet(BaseModel):
1713
1743
  """
1714
1744
  Describes the configuration for the application set
@@ -1735,6 +1765,32 @@ class ApplicationSet(BaseModel):
1735
1765
  )
1736
1766
 
1737
1767
 
1768
+ class FlyteTask(BaseModel):
1769
+ template: FlyteTaskTemplate
1770
+ description: Optional[Any] = None
1771
+
1772
+
1773
+ class Workflow(BaseModel):
1774
+ """
1775
+ Describes the configuration for the worflow
1776
+ """
1777
+
1778
+ type: Literal["workflow"] = Field(..., description="")
1779
+ name: constr(regex=r"^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$") = Field(
1780
+ ..., description="Name of the workflow"
1781
+ )
1782
+ source: Union[LocalSource, RemoteSource] = Field(
1783
+ ..., description="Source Code for the workflow, either local or remote"
1784
+ )
1785
+ workflow_file_path: str = Field(
1786
+ ..., description="Path to the workflow file relative to the project root path"
1787
+ )
1788
+ flyte_entities: Optional[List[Union[FlyteTask, FlyteWorkflow, FlyteLaunchPlan]]] = (
1789
+ Field(None, description="")
1790
+ )
1791
+ alerts: Optional[List[WorkflowAlert]] = Field(None, description="")
1792
+
1793
+
1738
1794
  class Application(BaseModel):
1739
1795
  __root__: Union[
1740
1796
  Service,
@@ -5,6 +5,7 @@ from truefoundry.deploy._autogen.models import (
5
5
  PythonBuild,
6
6
  SparkBuild,
7
7
  TaskDockerFileBuild,
8
+ TaskPySparkBuild,
8
9
  TaskPythonBuild,
9
10
  )
10
11
  from truefoundry.deploy.builder.builders import get_builder
@@ -22,6 +23,7 @@ class _BuildConfig(BaseModel):
22
23
  TaskPythonBuild,
23
24
  TaskDockerFileBuild,
24
25
  SparkBuild,
26
+ TaskPySparkBuild,
25
27
  ] = Field(discriminator="type")
26
28
 
27
29
 
@@ -5,6 +5,7 @@ from truefoundry.deploy.builder.builders import (
5
5
  tfy_notebook_buildpack,
6
6
  tfy_python_buildpack,
7
7
  tfy_spark_buildpack,
8
+ tfy_task_pyspark_buildpack,
8
9
  )
9
10
 
10
11
  BUILD_REGISTRY: Dict[str, Callable] = {
@@ -12,6 +13,7 @@ BUILD_REGISTRY: Dict[str, Callable] = {
12
13
  "tfy-python-buildpack": tfy_python_buildpack.build,
13
14
  "tfy-notebook-buildpack": tfy_notebook_buildpack.build,
14
15
  "tfy-spark-buildpack": tfy_spark_buildpack.build,
16
+ "task-pyspark-build": tfy_task_pyspark_buildpack.build,
15
17
  }
16
18
 
17
19
  __all__ = ["get_builder"]
@@ -1,5 +1,4 @@
1
- import shlex
2
- from typing import Dict, List, Optional
1
+ from typing import Dict
3
2
 
4
3
  from mako.template import Template
5
4
 
@@ -7,9 +6,12 @@ from truefoundry.common.constants import ENV_VARS, PythonPackageManager
7
6
  from truefoundry.deploy._autogen.models import PythonBuild
8
7
  from truefoundry.deploy.builder.constants import (
9
8
  PIP_CONF_BUILDKIT_SECRET_MOUNT,
10
- PIP_CONF_SECRET_MOUNT_AS_ENV,
11
9
  UV_CONF_BUILDKIT_SECRET_MOUNT,
12
- UV_CONF_SECRET_MOUNT_AS_ENV,
10
+ )
11
+ from truefoundry.deploy.builder.utils import (
12
+ generate_apt_install_command,
13
+ generate_pip_install_command,
14
+ generate_uv_pip_install_command,
13
15
  )
14
16
  from truefoundry.deploy.v2.lib.patched_models import (
15
17
  CUDAVersion,
@@ -82,85 +84,6 @@ CUDA_VERSION_TO_IMAGE_TAG: Dict[str, str] = {
82
84
  }
83
85
 
84
86
 
85
- def generate_apt_install_command(apt_packages: Optional[List[str]]) -> Optional[str]:
86
- packages_list = None
87
- if apt_packages:
88
- packages_list = " ".join(p.strip() for p in apt_packages if p.strip())
89
- if not packages_list:
90
- return None
91
- apt_update_command = "apt update"
92
- apt_install_command = f"DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends {packages_list}"
93
- clear_apt_lists_command = "rm -rf /var/lib/apt/lists/*"
94
- return " && ".join(
95
- [apt_update_command, apt_install_command, clear_apt_lists_command]
96
- )
97
-
98
-
99
- def generate_pip_install_command(
100
- requirements_path: Optional[str],
101
- pip_packages: Optional[List[str]],
102
- mount_pip_conf_secret: bool = False,
103
- ) -> Optional[str]:
104
- upgrade_pip_command = "python -m pip install -U pip setuptools wheel"
105
- envs = []
106
- if mount_pip_conf_secret:
107
- envs.append(PIP_CONF_SECRET_MOUNT_AS_ENV)
108
-
109
- command = ["python", "-m", "pip", "install", "--use-pep517", "--no-cache-dir"]
110
- args = []
111
- if requirements_path:
112
- args.append("-r")
113
- args.append(requirements_path)
114
-
115
- if pip_packages:
116
- args.extend(pip_packages)
117
-
118
- if not args:
119
- return None
120
-
121
- final_pip_install_command = shlex.join(envs + command + args)
122
- final_docker_run_command = " && ".join(
123
- [upgrade_pip_command, final_pip_install_command]
124
- )
125
- return final_docker_run_command
126
-
127
-
128
- def generate_uv_pip_install_command(
129
- requirements_path: Optional[str],
130
- pip_packages: Optional[List[str]],
131
- mount_uv_conf_secret: bool = False,
132
- ) -> Optional[str]:
133
- upgrade_pip_command = "python -m pip install -U pip setuptools wheel"
134
- uv_mount = f"--mount=from={ENV_VARS.TFY_PYTHON_BUILD_UV_IMAGE_URI},source=/uv,target=/usr/local/bin/uv"
135
- envs = [
136
- "UV_LINK_MODE=copy",
137
- "UV_PYTHON_DOWNLOADS=never",
138
- "UV_INDEX_STRATEGY=unsafe-best-match",
139
- ]
140
- if mount_uv_conf_secret:
141
- envs.append(UV_CONF_SECRET_MOUNT_AS_ENV)
142
-
143
- command = ["uv", "pip", "install", "--no-cache-dir"]
144
-
145
- args = []
146
-
147
- if requirements_path:
148
- args.append("-r")
149
- args.append(requirements_path)
150
-
151
- if pip_packages:
152
- args.extend(pip_packages)
153
-
154
- if not args:
155
- return None
156
-
157
- uv_pip_install_command = shlex.join(envs + command + args)
158
- shell_commands = " && ".join([upgrade_pip_command, uv_pip_install_command])
159
- final_docker_run_command = " ".join([uv_mount, shell_commands])
160
-
161
- return final_docker_run_command
162
-
163
-
164
87
  def generate_dockerfile_content(
165
88
  build_configuration: PythonBuild,
166
89
  package_manager: str = ENV_VARS.TFY_PYTHON_BUILD_PACKAGE_MANAGER,
@@ -1,15 +1,14 @@
1
- import shlex
2
- from typing import List, Optional
3
-
4
1
  from mako.template import Template
5
2
 
6
3
  from truefoundry.common.constants import ENV_VARS, PythonPackageManager
7
4
  from truefoundry.deploy._autogen.models import SparkBuild
8
5
  from truefoundry.deploy.builder.constants import (
9
6
  PIP_CONF_BUILDKIT_SECRET_MOUNT,
10
- PIP_CONF_SECRET_MOUNT_AS_ENV,
11
7
  UV_CONF_BUILDKIT_SECRET_MOUNT,
12
- UV_CONF_SECRET_MOUNT_AS_ENV,
8
+ )
9
+ from truefoundry.deploy.builder.utils import (
10
+ generate_pip_install_command,
11
+ generate_uv_pip_install_command,
13
12
  )
14
13
  from truefoundry.deploy.v2.lib.patched_models import (
15
14
  _resolve_requirements_path,
@@ -26,8 +25,7 @@ RUN ${package_manager_config_secret_mount} ${python_packages_install_command}
26
25
  % endif
27
26
  ENV PYTHONDONTWRITEBYTECODE=1
28
27
  ENV IPYTHONDIR=/tmp/.ipython
29
- RUN groupadd --system --gid 1001 spark && useradd --system --uid 1001 --gid spark --no-create-home spark
30
- USER spark
28
+ USER 1001
31
29
  COPY . /app
32
30
  """
33
31
 
@@ -35,6 +33,20 @@ _POST_USER_TEMPLATE = """
35
33
  COPY tfy_execute_notebook.py /app/tfy_execute_notebook.py
36
34
  """
37
35
 
36
+ _ALMOND_INSTALL_TEMPLATE = """
37
+ ENV COURSIER_CACHE=/opt/coursier-cache
38
+ RUN install_packages curl
39
+ RUN curl -Lo coursier https://git.io/coursier-cli && \
40
+ chmod +x coursier && \
41
+ ./coursier launch almond:0.14.1 -- --install --global && \
42
+ chown -R 1001:0 /usr/local/share/jupyter && \
43
+ chown -R 1001:0 /opt/coursier-cache && \
44
+ rm -f coursier
45
+ """
46
+
47
+ # Docker image size with almond - 1.26GB
48
+ # Docker image size without almond - 1.1GB
49
+ # Not much harm in packaging almond by default
38
50
  DOCKERFILE_TEMPLATE = Template(
39
51
  """
40
52
  FROM ${spark_image_repo}:${spark_version}
@@ -43,6 +55,7 @@ RUN apt update && \
43
55
  DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends git && \
44
56
  rm -rf /var/lib/apt/lists/*
45
57
  """
58
+ + _ALMOND_INSTALL_TEMPLATE
46
59
  + _POST_PYTHON_INSTALL_TEMPLATE
47
60
  + _POST_USER_TEMPLATE
48
61
  )
@@ -55,71 +68,6 @@ ADDITIONAL_PIP_PACKAGES = [
55
68
  ]
56
69
 
57
70
 
58
- def generate_pip_install_command(
59
- requirements_path: Optional[str],
60
- pip_packages: Optional[List[str]],
61
- mount_pip_conf_secret: bool = False,
62
- ) -> Optional[str]:
63
- upgrade_pip_command = "python3 -m pip install -U pip setuptools wheel"
64
- envs = []
65
- if mount_pip_conf_secret:
66
- envs.append(PIP_CONF_SECRET_MOUNT_AS_ENV)
67
-
68
- command = ["python3", "-m", "pip", "install", "--use-pep517", "--no-cache-dir"]
69
- args = []
70
- if requirements_path:
71
- args.append("-r")
72
- args.append(requirements_path)
73
-
74
- if pip_packages:
75
- args.extend(pip_packages)
76
-
77
- if not args:
78
- return None
79
-
80
- final_pip_install_command = shlex.join(envs + command + args)
81
- final_docker_run_command = " && ".join(
82
- [upgrade_pip_command, final_pip_install_command]
83
- )
84
- return final_docker_run_command
85
-
86
-
87
- def generate_uv_pip_install_command(
88
- requirements_path: Optional[str],
89
- pip_packages: Optional[List[str]],
90
- mount_uv_conf_secret: bool = False,
91
- ) -> Optional[str]:
92
- upgrade_pip_command = "python3 -m pip install -U pip setuptools wheel"
93
- uv_mount = f"--mount=from={ENV_VARS.TFY_PYTHON_BUILD_UV_IMAGE_URI},source=/uv,target=/usr/local/bin/uv"
94
- envs = [
95
- "UV_LINK_MODE=copy",
96
- "UV_PYTHON_DOWNLOADS=never",
97
- "UV_INDEX_STRATEGY=unsafe-best-match",
98
- ]
99
- if mount_uv_conf_secret:
100
- envs.append(UV_CONF_SECRET_MOUNT_AS_ENV)
101
-
102
- command = ["uv", "pip", "install", "--no-cache-dir"]
103
-
104
- args = []
105
-
106
- if requirements_path:
107
- args.append("-r")
108
- args.append(requirements_path)
109
-
110
- if pip_packages:
111
- args.extend(pip_packages)
112
-
113
- if not args:
114
- return None
115
-
116
- uv_pip_install_command = shlex.join(envs + command + args)
117
- shell_commands = " && ".join([upgrade_pip_command, uv_pip_install_command])
118
- final_docker_run_command = " ".join([uv_mount, shell_commands])
119
-
120
- return final_docker_run_command
121
-
122
-
123
71
  def generate_dockerfile_content(
124
72
  build_configuration: SparkBuild,
125
73
  package_manager: str = ENV_VARS.TFY_PYTHON_BUILD_PACKAGE_MANAGER,