truefoundry 0.11.2__tar.gz → 0.11.3rc1__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 (387) hide show
  1. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/PKG-INFO +5 -2
  2. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/pyproject.toml +8 -2
  3. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/__init__.py +2 -0
  4. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/_autogen/models.py +82 -35
  5. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/trigger_command.py +21 -2
  6. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/clients/servicefoundry_client.py +4 -0
  7. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/dao/application.py +2 -0
  8. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/v2/lib/patched_models.py +33 -0
  9. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/workflow/__init__.py +2 -0
  10. truefoundry-0.11.3rc1/truefoundry/workflow/spark_task.py +91 -0
  11. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/.gitignore +0 -0
  12. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/README.md +0 -0
  13. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/_ask/__init__.py +0 -0
  14. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/_ask/cli.py +0 -0
  15. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/_ask/client.py +0 -0
  16. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/_ask/llm_utils.py +0 -0
  17. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/_client.py +0 -0
  18. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/__init__.py +0 -0
  19. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/agents/__init__.py +0 -0
  20. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/agents/base.py +0 -0
  21. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/agents/developer.py +0 -0
  22. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/agents/project_identifier.py +0 -0
  23. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/agents/tester.py +0 -0
  24. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/cli.py +0 -0
  25. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/constants.py +0 -0
  26. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/exception.py +0 -0
  27. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/logger.py +0 -0
  28. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/tools/__init__.py +0 -0
  29. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/tools/ask.py +0 -0
  30. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/tools/base.py +0 -0
  31. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/tools/commit.py +0 -0
  32. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/tools/docker_build.py +0 -0
  33. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/tools/docker_run.py +0 -0
  34. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/tools/file_type_counts.py +0 -0
  35. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/tools/list_files.py +0 -0
  36. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/tools/read_file.py +0 -0
  37. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/tools/send_request.py +0 -0
  38. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/tools/write_file.py +0 -0
  39. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/utils/client.py +0 -0
  40. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/utils/diff.py +0 -0
  41. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/autodeploy/utils/pydantic_compat.py +0 -0
  42. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/cli/__init__.py +0 -0
  43. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/cli/__main__.py +0 -0
  44. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/cli/config.py +0 -0
  45. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/cli/console.py +0 -0
  46. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/cli/const.py +0 -0
  47. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/cli/display_util.py +0 -0
  48. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/cli/util.py +0 -0
  49. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/__init__.py +0 -0
  50. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/auth_service_client.py +0 -0
  51. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/constants.py +0 -0
  52. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/credential_file_manager.py +0 -0
  53. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/credential_provider.py +0 -0
  54. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/entities.py +0 -0
  55. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/exceptions.py +0 -0
  56. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/request_utils.py +0 -0
  57. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/servicefoundry_client.py +0 -0
  58. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/session.py +0 -0
  59. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/storage_provider_utils.py +0 -0
  60. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/types.py +0 -0
  61. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/utils.py +0 -0
  62. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/common/warnings.py +0 -0
  63. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/__init__.py +0 -0
  64. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/__init__.py +0 -0
  65. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/builders/__init__.py +0 -0
  66. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/builders/dockerfile.py +0 -0
  67. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/builders/tfy_notebook_buildpack/__init__.py +0 -0
  68. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/builders/tfy_notebook_buildpack/dockerfile_template.py +0 -0
  69. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/builders/tfy_python_buildpack/__init__.py +0 -0
  70. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/builders/tfy_python_buildpack/dockerfile_template.py +0 -0
  71. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/builders/tfy_spark_buildpack/__init__.py +0 -0
  72. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/builders/tfy_spark_buildpack/dockerfile_template.py +0 -0
  73. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/builders/tfy_spark_buildpack/tfy_execute_notebook.py +0 -0
  74. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/constants.py +0 -0
  75. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/docker_service.py +0 -0
  76. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/builder/utils.py +0 -0
  77. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/__init__.py +0 -0
  78. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/__init__.py +0 -0
  79. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/apply_command.py +0 -0
  80. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/build_command.py +0 -0
  81. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/delete_command.py +0 -0
  82. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/deploy_command.py +0 -0
  83. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/deploy_init_command.py +0 -0
  84. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/get_command.py +0 -0
  85. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/k8s_exec_credential_command.py +0 -0
  86. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/kubeconfig_command.py +0 -0
  87. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/login_command.py +0 -0
  88. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/logout_command.py +0 -0
  89. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/logs_command.py +0 -0
  90. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/patch_application_command.py +0 -0
  91. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/patch_command.py +0 -0
  92. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/terminate_comand.py +0 -0
  93. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/cli/commands/utils.py +0 -0
  94. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/core/__init__.py +0 -0
  95. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/core/login.py +0 -0
  96. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/core/logout.py +0 -0
  97. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/io/__init__.py +0 -0
  98. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/io/no_output_callback.py +0 -0
  99. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/io/output_callback.py +0 -0
  100. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/io/rich_output_callback.py +0 -0
  101. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/__init__.py +0 -0
  102. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/clients/__init__.py +0 -0
  103. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/const.py +0 -0
  104. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/dao/__init__.py +0 -0
  105. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/dao/apply.py +0 -0
  106. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/dao/delete.py +0 -0
  107. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/dao/version.py +0 -0
  108. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/dao/workspace.py +0 -0
  109. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/diff_utils.py +0 -0
  110. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/logs_utils.py +0 -0
  111. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/messages.py +0 -0
  112. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/model/__init__.py +0 -0
  113. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/model/entity.py +0 -0
  114. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/session.py +0 -0
  115. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/util.py +0 -0
  116. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/lib/win32.py +0 -0
  117. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/python_deploy_codegen.py +0 -0
  118. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/v2/__init__.py +0 -0
  119. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/v2/lib/__init__.py +0 -0
  120. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/v2/lib/deploy.py +0 -0
  121. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/v2/lib/deploy_workflow.py +0 -0
  122. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/v2/lib/deployable_patched_models.py +0 -0
  123. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/v2/lib/models.py +0 -0
  124. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/deploy/v2/lib/source.py +0 -0
  125. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/logger.py +0 -0
  126. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/__init__.py +0 -0
  127. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/__init__.py +0 -0
  128. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/__init__.py +0 -0
  129. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/api/__init__.py +0 -0
  130. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/api/auth_api.py +0 -0
  131. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/api/deprecated_api.py +0 -0
  132. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/api/experiments_api.py +0 -0
  133. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/api/generate_code_snippet_api.py +0 -0
  134. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/api/health_api.py +0 -0
  135. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/api/metrics_api.py +0 -0
  136. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/api/mlfoundry_artifacts_api.py +0 -0
  137. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/api/run_artifacts_api.py +0 -0
  138. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/api/runs_api.py +0 -0
  139. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/api_client.py +0 -0
  140. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/api_response.py +0 -0
  141. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/configuration.py +0 -0
  142. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/exceptions.py +0 -0
  143. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/__init__.py +0 -0
  144. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/agent_app.py +0 -0
  145. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/agent_manifest.py +0 -0
  146. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/agent_open_api_tool_manifest.py +0 -0
  147. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/agent_open_api_tool_with_fqn.py +0 -0
  148. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/agent_with_fqn.py +0 -0
  149. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/apply_request_dto.py +0 -0
  150. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/apply_response_dto.py +0 -0
  151. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/artifact_dto.py +0 -0
  152. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/artifact_manifest.py +0 -0
  153. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/artifact_path.py +0 -0
  154. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/artifact_response_dto.py +0 -0
  155. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/artifact_type.py +0 -0
  156. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/artifact_version_dto.py +0 -0
  157. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/artifact_version_response_dto.py +0 -0
  158. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/artifact_version_serialization_format.py +0 -0
  159. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/artifact_version_status.py +0 -0
  160. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/assistant_message.py +0 -0
  161. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/authorize_user_for_model_request_dto.py +0 -0
  162. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/authorize_user_for_model_version_request_dto.py +0 -0
  163. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/blob_storage_reference.py +0 -0
  164. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/body_get_search_runs_get.py +0 -0
  165. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/chat_prompt_manifest.py +0 -0
  166. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/chat_prompt_manifest_messages_inner.py +0 -0
  167. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/columns_dto.py +0 -0
  168. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/command.py +0 -0
  169. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/content.py +0 -0
  170. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/content1.py +0 -0
  171. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/content2.py +0 -0
  172. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/content2_any_of_inner.py +0 -0
  173. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_artifact_request_dto.py +0 -0
  174. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_artifact_response_dto.py +0 -0
  175. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_artifact_version_request_dto.py +0 -0
  176. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_artifact_version_response_dto.py +0 -0
  177. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_dataset_request_dto.py +0 -0
  178. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_experiment_request_dto.py +0 -0
  179. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_experiment_response_dto.py +0 -0
  180. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_model_version_request_dto.py +0 -0
  181. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_multi_part_upload_for_dataset_request_dto.py +0 -0
  182. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_multi_part_upload_for_dataset_response_dto.py +0 -0
  183. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_multi_part_upload_request_dto.py +0 -0
  184. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_python_deployment_config_request_dto.py +0 -0
  185. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_python_deployment_config_response_dto.py +0 -0
  186. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_run_request_dto.py +0 -0
  187. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_run_response_dto.py +0 -0
  188. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/create_workflow_task_config_request_dto.py +0 -0
  189. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/data_directory_manifest.py +0 -0
  190. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/dataset_dto.py +0 -0
  191. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/dataset_response_dto.py +0 -0
  192. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/delete_artifact_versions_request_dto.py +0 -0
  193. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/delete_dataset_request_dto.py +0 -0
  194. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/delete_files_for_dataset_request_dto.py +0 -0
  195. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/delete_model_version_request_dto.py +0 -0
  196. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/delete_run_request.py +0 -0
  197. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/delete_tag_request_dto.py +0 -0
  198. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/experiment_dto.py +0 -0
  199. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/experiment_id_request_dto.py +0 -0
  200. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/experiment_response_dto.py +0 -0
  201. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/experiment_tag_dto.py +0 -0
  202. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/export_deployment_files_request_dto.py +0 -0
  203. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/external_blob_storage_source.py +0 -0
  204. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/fast_ai_framework.py +0 -0
  205. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/file_info_dto.py +0 -0
  206. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/finalize_artifact_version_request_dto.py +0 -0
  207. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/framework.py +0 -0
  208. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_artifact_version_aliases_response_dto.py +0 -0
  209. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_experiment_response_dto.py +0 -0
  210. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_latest_run_log_response_dto.py +0 -0
  211. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_metric_history_response.py +0 -0
  212. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_signed_url_for_dataset_write_request_dto.py +0 -0
  213. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_read_request_dto.py +0 -0
  214. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_read_response_dto.py +0 -0
  215. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_write_request_dto.py +0 -0
  216. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_write_response_dto.py +0 -0
  217. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_dataset_read_request_dto.py +0 -0
  218. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_dataset_read_response_dto.py +0 -0
  219. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_dataset_write_response_dto.py +0 -0
  220. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/get_tenant_id_response_dto.py +0 -0
  221. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/gluon_framework.py +0 -0
  222. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/h2_o_framework.py +0 -0
  223. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/http_validation_error.py +0 -0
  224. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/image_content_part.py +0 -0
  225. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/image_url.py +0 -0
  226. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/infer_method_name.py +0 -0
  227. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/keras_framework.py +0 -0
  228. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/latest_run_log_dto.py +0 -0
  229. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/library_name.py +0 -0
  230. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/light_gbm_framework.py +0 -0
  231. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_artifact_versions_request_dto.py +0 -0
  232. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_artifact_versions_response_dto.py +0 -0
  233. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_artifacts_request_dto.py +0 -0
  234. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_artifacts_response_dto.py +0 -0
  235. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_colums_response_dto.py +0 -0
  236. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_datasets_request_dto.py +0 -0
  237. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_datasets_response_dto.py +0 -0
  238. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_experiments_response_dto.py +0 -0
  239. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_files_for_artifact_version_request_dto.py +0 -0
  240. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_files_for_artifact_versions_response_dto.py +0 -0
  241. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_files_for_dataset_request_dto.py +0 -0
  242. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_files_for_dataset_response_dto.py +0 -0
  243. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_latest_run_logs_response_dto.py +0 -0
  244. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_metric_history_request_dto.py +0 -0
  245. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_metric_history_response_dto.py +0 -0
  246. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_model_version_response_dto.py +0 -0
  247. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_model_versions_request_dto.py +0 -0
  248. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_models_request_dto.py +0 -0
  249. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_models_response_dto.py +0 -0
  250. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_run_artifacts_response_dto.py +0 -0
  251. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/list_run_logs_response_dto.py +0 -0
  252. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/local_artifact_source.py +0 -0
  253. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/local_model_source.py +0 -0
  254. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/log_batch_request_dto.py +0 -0
  255. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/log_metric_request_dto.py +0 -0
  256. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/log_param_request_dto.py +0 -0
  257. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/manifest.py +0 -0
  258. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/manifest1.py +0 -0
  259. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/manifest2.py +0 -0
  260. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/method.py +0 -0
  261. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/metric_collection_dto.py +0 -0
  262. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/metric_dto.py +0 -0
  263. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/mime_type.py +0 -0
  264. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/model_configuration.py +0 -0
  265. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/model_dto.py +0 -0
  266. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/model_manifest.py +0 -0
  267. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/model_response_dto.py +0 -0
  268. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/model_server.py +0 -0
  269. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/model_version_dto.py +0 -0
  270. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/model_version_environment.py +0 -0
  271. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/model_version_response_dto.py +0 -0
  272. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/multi_part_upload_dto.py +0 -0
  273. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/multi_part_upload_response_dto.py +0 -0
  274. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/multi_part_upload_storage_provider.py +0 -0
  275. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/notify_artifact_version_failure_dto.py +0 -0
  276. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/onnx_framework.py +0 -0
  277. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/openapi_spec.py +0 -0
  278. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/paddle_framework.py +0 -0
  279. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/param_dto.py +0 -0
  280. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/parameters.py +0 -0
  281. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/py_torch_framework.py +0 -0
  282. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/resolve_agent_app_response_dto.py +0 -0
  283. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/restore_run_request_dto.py +0 -0
  284. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/run_data_dto.py +0 -0
  285. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/run_dto.py +0 -0
  286. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/run_info_dto.py +0 -0
  287. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/run_log_dto.py +0 -0
  288. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/run_log_input_dto.py +0 -0
  289. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/run_response_dto.py +0 -0
  290. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/run_tag_dto.py +0 -0
  291. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/search_runs_request_dto.py +0 -0
  292. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/search_runs_response_dto.py +0 -0
  293. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/set_experiment_tag_request_dto.py +0 -0
  294. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/set_tag_request_dto.py +0 -0
  295. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/signed_url_dto.py +0 -0
  296. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/sklearn_framework.py +0 -0
  297. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/sklearn_model_schema.py +0 -0
  298. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/sklearn_serialization_format.py +0 -0
  299. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/source.py +0 -0
  300. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/source1.py +0 -0
  301. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/source2.py +0 -0
  302. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/spa_cy_framework.py +0 -0
  303. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/stats_models_framework.py +0 -0
  304. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/stop.py +0 -0
  305. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/store_run_logs_request_dto.py +0 -0
  306. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/subject.py +0 -0
  307. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/subject_type.py +0 -0
  308. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/system_message.py +0 -0
  309. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/tensor_flow_framework.py +0 -0
  310. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/text.py +0 -0
  311. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/text_content_part.py +0 -0
  312. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/transformers_framework.py +0 -0
  313. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/trigger_job_run_config_request_dto.py +0 -0
  314. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/trigger_job_run_config_response_dto.py +0 -0
  315. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/true_foundry_managed_source.py +0 -0
  316. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/update_artifact_version_request_dto.py +0 -0
  317. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/update_dataset_request_dto.py +0 -0
  318. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/update_experiment_request_dto.py +0 -0
  319. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/update_model_version_request_dto.py +0 -0
  320. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/update_run_request_dto.py +0 -0
  321. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/update_run_response_dto.py +0 -0
  322. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/url.py +0 -0
  323. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/user_message.py +0 -0
  324. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/validate_external_storage_root_request_dto.py +0 -0
  325. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/validate_external_storage_root_response_dto.py +0 -0
  326. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/validation_error.py +0 -0
  327. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/validation_error_loc_inner.py +0 -0
  328. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/xg_boost_framework.py +0 -0
  329. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/xg_boost_model_schema.py +0 -0
  330. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/models/xg_boost_serialization_format.py +0 -0
  331. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client/rest.py +0 -0
  332. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/client_README.md +0 -0
  333. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/entities/artifacts.py +0 -0
  334. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/models/__init__.py +0 -0
  335. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/models/exceptions.py +0 -0
  336. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/models/schema.py +0 -0
  337. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/models/signature.py +0 -0
  338. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/_autogen/models/utils.py +0 -0
  339. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/artifact/__init__.py +0 -0
  340. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/artifact/truefoundry_artifact_repo.py +0 -0
  341. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/cli/__init__.py +0 -0
  342. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/cli/cli.py +0 -0
  343. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/cli/commands/__init__.py +0 -0
  344. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/cli/commands/download.py +0 -0
  345. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/cli/commands/model_init.py +0 -0
  346. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/cli/utils.py +0 -0
  347. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/clients/__init__.py +0 -0
  348. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/constants.py +0 -0
  349. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/entities.py +0 -0
  350. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/enums.py +0 -0
  351. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/exceptions.py +0 -0
  352. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/git_info.py +0 -0
  353. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/internal_namespace.py +0 -0
  354. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/__init__.py +0 -0
  355. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/artifacts/artifact.py +0 -0
  356. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/artifacts/constants.py +0 -0
  357. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/artifacts/dataset.py +0 -0
  358. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/artifacts/general_artifact.py +0 -0
  359. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/artifacts/model.py +0 -0
  360. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/artifacts/utils.py +0 -0
  361. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/image/__init__.py +0 -0
  362. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/image/constants.py +0 -0
  363. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/image/image.py +0 -0
  364. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/image/image_normalizer.py +0 -0
  365. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/image/types.py +0 -0
  366. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/plot.py +0 -0
  367. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/pydantic_base.py +0 -0
  368. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/log_types/utils.py +0 -0
  369. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/logger.py +0 -0
  370. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/mlfoundry_api.py +0 -0
  371. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/mlfoundry_run.py +0 -0
  372. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/model_framework.py +0 -0
  373. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/prompt_utils.py +0 -0
  374. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/run_utils.py +0 -0
  375. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/session.py +0 -0
  376. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/ml/validation_utils.py +0 -0
  377. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/pydantic_v1.py +0 -0
  378. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/version.py +0 -0
  379. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/workflow/container_task.py +0 -0
  380. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/workflow/map_task.py +0 -0
  381. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/workflow/python_task.py +0 -0
  382. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/workflow/remote_filesystem/__init__.py +0 -0
  383. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/workflow/remote_filesystem/logger.py +0 -0
  384. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py +0 -0
  385. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py +0 -0
  386. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/workflow/task.py +0 -0
  387. {truefoundry-0.11.2 → truefoundry-0.11.3rc1}/truefoundry/workflow/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: truefoundry
3
- Version: 0.11.2
3
+ Version: 0.11.3rc1
4
4
  Summary: TrueFoundry CLI
5
5
  Author-email: TrueFoundry Team <abhishek@truefoundry.com>
6
6
  Requires-Python: <3.14,>=3.8.1
@@ -36,8 +36,11 @@ 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.2" # This is a placeholder version, it will be replaced when releasing
3
+ version = "0.11.3rc1" # 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" }]
@@ -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",
@@ -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-16T09:53:23+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -989,6 +989,34 @@ class TaskDockerFileBuild(BaseModel):
989
989
  build_args: Optional[Dict[str, str]] = Field(None, description="")
990
990
 
991
991
 
992
+ class TaskPySparkBuild(BaseModel):
993
+ """
994
+ Describes the configuration for the PySpark build for a task
995
+ """
996
+
997
+ type: Literal["task-pyspark-build"] = Field(..., description="")
998
+ spark_version: str = Field(
999
+ "3.5.2",
1000
+ description="Spark version should match the spark version installed in the image.",
1001
+ )
1002
+ docker_registry: Optional[str] = Field(
1003
+ None,
1004
+ description="FQN of the container registry. If you can't find your registry here,\nadd it through the [Integrations](/integrations?tab=docker-registry) page",
1005
+ )
1006
+ requirements_path: Optional[str] = Field(
1007
+ None,
1008
+ description="Path to `requirements.txt` relative to\n`Path to build context`",
1009
+ )
1010
+ pip_packages: Optional[List[str]] = Field(
1011
+ None,
1012
+ description='Define pip package requirements.\nIn Python/YAML E.g. ["fastapi>=0.90,<1.0", "uvicorn"]',
1013
+ )
1014
+ apt_packages: Optional[List[str]] = Field(
1015
+ None,
1016
+ description='Debian packages to install via `apt get`.\nIn Python/YAML E.g. ["git", "ffmpeg", "htop"]',
1017
+ )
1018
+
1019
+
992
1020
  class TaskPythonBuild(BaseModel):
993
1021
  """
994
1022
  Describes the configuration for the python build for a task
@@ -1200,7 +1228,7 @@ class ContainerTaskConfig(BaseModel):
1200
1228
  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
1229
  )
1202
1230
  resources: Optional[Resources] = None
1203
- mounts: Optional[List[Union[SecretMount, StringDataMount, VolumeMount]]] = Field(
1231
+ mounts: Optional[List[VolumeMount]] = Field(
1204
1232
  None, description="Configure data to be mounted to Workflow pod(s) as a volume."
1205
1233
  )
1206
1234
  service_account: Optional[str] = Field(None, description="")
@@ -1567,15 +1595,6 @@ class FlyteLaunchPlan(BaseModel):
1567
1595
  closure: Any
1568
1596
 
1569
1597
 
1570
- class FlyteTaskCustom(BaseModel):
1571
- truefoundry: Union[PythonTaskConfig, ContainerTaskConfig]
1572
-
1573
-
1574
- class FlyteTaskTemplate(BaseModel):
1575
- id: FlyteTaskID
1576
- custom: FlyteTaskCustom
1577
-
1578
-
1579
1598
  class JobAlert(BaseModel):
1580
1599
  """
1581
1600
  Describes the configuration for the job alerts
@@ -1594,6 +1613,25 @@ class JobAlert(BaseModel):
1594
1613
  on_failure: bool = Field(True, description="Send an alert when the job fails")
1595
1614
 
1596
1615
 
1616
+ class PySparkTaskConfig(BaseModel):
1617
+ type: Literal["pyspark-task-config"] = Field(..., description="")
1618
+ image: TaskPySparkBuild
1619
+ driver_config: SparkDriverConfig
1620
+ executor_config: SparkExecutorConfig
1621
+ spark_conf: Optional[Dict[str, Any]] = Field(
1622
+ None,
1623
+ description="Extra configuration properties to be passed to the spark job. [Docs](https://spark.apache.org/docs/latest/configuration.html)",
1624
+ )
1625
+ env: Optional[Dict[str, str]] = Field(
1626
+ None,
1627
+ description="Configure environment variables to be injected in the task either as plain text or secrets. [Docs](https://docs.truefoundry.com/docs/env-variables)",
1628
+ )
1629
+ mounts: Optional[List[Union[SecretMount, StringDataMount, VolumeMount]]] = Field(
1630
+ None, description="Configure data to be mounted to Workflow pod(s) as a volume."
1631
+ )
1632
+ service_account: Optional[str] = Field(None, description="")
1633
+
1634
+
1597
1635
  class Service(BaseService):
1598
1636
  """
1599
1637
  Describes the configuration for the service
@@ -1630,9 +1668,13 @@ class AsyncService(BaseService):
1630
1668
  sidecar: Optional[AsyncProcessorSidecar] = None
1631
1669
 
1632
1670
 
1633
- class FlyteTask(BaseModel):
1634
- template: FlyteTaskTemplate
1635
- description: Optional[Any] = None
1671
+ class FlyteTaskCustom(BaseModel):
1672
+ truefoundry: Union[PythonTaskConfig, ContainerTaskConfig, PySparkTaskConfig]
1673
+
1674
+
1675
+ class FlyteTaskTemplate(BaseModel):
1676
+ id: FlyteTaskID
1677
+ custom: FlyteTaskCustom
1636
1678
 
1637
1679
 
1638
1680
  class Job(BaseModel):
@@ -1688,27 +1730,6 @@ class Job(BaseModel):
1688
1730
  )
1689
1731
 
1690
1732
 
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
1733
  class ApplicationSet(BaseModel):
1713
1734
  """
1714
1735
  Describes the configuration for the application set
@@ -1735,6 +1756,32 @@ class ApplicationSet(BaseModel):
1735
1756
  )
1736
1757
 
1737
1758
 
1759
+ class FlyteTask(BaseModel):
1760
+ template: FlyteTaskTemplate
1761
+ description: Optional[Any] = None
1762
+
1763
+
1764
+ class Workflow(BaseModel):
1765
+ """
1766
+ Describes the configuration for the worflow
1767
+ """
1768
+
1769
+ type: Literal["workflow"] = Field(..., description="")
1770
+ name: constr(regex=r"^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$") = Field(
1771
+ ..., description="Name of the workflow"
1772
+ )
1773
+ source: Union[LocalSource, RemoteSource] = Field(
1774
+ ..., description="Source Code for the workflow, either local or remote"
1775
+ )
1776
+ workflow_file_path: str = Field(
1777
+ ..., description="Path to the workflow file relative to the project root path"
1778
+ )
1779
+ flyte_entities: Optional[List[Union[FlyteTask, FlyteWorkflow, FlyteLaunchPlan]]] = (
1780
+ Field(None, description="")
1781
+ )
1782
+ alerts: Optional[List[WorkflowAlert]] = Field(None, description="")
1783
+
1784
+
1738
1785
  class Application(BaseModel):
1739
1786
  __root__: Union[
1740
1787
  Service,
@@ -35,8 +35,20 @@ def trigger_command():
35
35
  nargs=-1,
36
36
  required=False,
37
37
  )
38
+ @click.option(
39
+ "--run-name-alias",
40
+ "--run_name_alias",
41
+ type=click.STRING,
42
+ required=False,
43
+ help="Alias for the job run name.",
44
+ )
38
45
  @handle_exception_wrapper
39
- def trigger_job(application_fqn: str, command: Optional[Sequence[str]], params):
46
+ def trigger_job(
47
+ application_fqn: str,
48
+ params,
49
+ command: Optional[Sequence[str]],
50
+ run_name_alias: Optional[str],
51
+ ):
40
52
  """
41
53
  Trigger a Job on TrueFoundry asynchronously
42
54
 
@@ -54,6 +66,10 @@ def trigger_job(application_fqn: str, command: Optional[Sequence[str]], params):
54
66
  Passing params:
55
67
 
56
68
  [b]tfy trigger job --application-fqn "my-cluster:my-workspace:my-job" -- --param1_name param1_value --param2_name param2_value ...[/]
69
+ \n
70
+
71
+ passing run_name_alias:
72
+ [b]tfy trigger job --application-fqn "my-cluster:my-workspace:my-job" --run_name_alias "my_run_alias"[/]
57
73
  """
58
74
  if params:
59
75
  params_dict = {}
@@ -78,7 +94,10 @@ def trigger_job(application_fqn: str, command: Optional[Sequence[str]], params):
78
94
  params_dict[key] = value
79
95
 
80
96
  application.trigger_job(
81
- application_fqn=application_fqn, command=command, params=params
97
+ application_fqn=application_fqn,
98
+ command=command,
99
+ params=params,
100
+ run_name_alias=run_name_alias,
82
101
  )
83
102
 
84
103
 
@@ -578,6 +578,7 @@ class ServiceFoundryServiceClient(BaseServiceFoundryServiceClient):
578
578
  def trigger_job(
579
579
  self,
580
580
  deployment_id: str,
581
+ run_name_alias: Optional[str] = None,
581
582
  command: Optional[str] = None,
582
583
  params: Optional[Dict[str, str]] = None,
583
584
  ) -> TriggerJobResult:
@@ -585,11 +586,14 @@ class ServiceFoundryServiceClient(BaseServiceFoundryServiceClient):
585
586
  body = {
586
587
  "deploymentId": deployment_id,
587
588
  "input": {},
589
+ "metadata": {},
588
590
  }
589
591
  if command:
590
592
  body["input"]["command"] = command
591
593
  if params:
592
594
  body["input"]["params"] = params
595
+ if run_name_alias:
596
+ body["metadata"]["job_run_name_alias"] = run_name_alias
593
597
  response = session_with_retries().post(
594
598
  url, json=body, headers=self._get_headers()
595
599
  )
@@ -117,6 +117,7 @@ def trigger_job(
117
117
  application_fqn: str,
118
118
  command: Optional[Union[str, Sequence[str]]] = None,
119
119
  params: Optional[Dict[str, str]] = None,
120
+ run_name_alias: Optional[str] = None,
120
121
  ) -> TriggerJobResult:
121
122
  """
122
123
  Trigger a Job on TrueFoundry platform
@@ -178,6 +179,7 @@ def trigger_job(
178
179
  deployment_id=application_info.activeDeploymentId,
179
180
  command=command_str if command_str else None,
180
181
  params=params if params else None,
182
+ run_name_alias=run_name_alias.strip() if run_name_alias else None,
181
183
  )
182
184
  jobRunName = result.jobRunName
183
185
  previous_runs_url = f"{client.tfy_host.strip('/')}/deployments/{application_info.id}?tab=previousRuns"
@@ -526,3 +526,36 @@ class SparkJobPythonNotebookEntrypoint(
526
526
  models.SparkJobPythonNotebookEntrypoint, PatchedModelBase
527
527
  ):
528
528
  type: Literal["python-notebook"] = "python-notebook"
529
+
530
+
531
+ class PySparkTaskConfig(models.PySparkTaskConfig, PatchedModelBase):
532
+ type: Literal["pyspark-task-config"] = "pyspark-task-config"
533
+
534
+ def __init__(self, *args, **kwargs):
535
+ super().__init__(*args, **kwargs)
536
+ try:
537
+ import truefoundry.workflow.spark_task as _ # noqa: F401
538
+ except ImportError as e:
539
+ raise ImportError(
540
+ "truefoundry.workflow.spark_task is not installed. Please install it with `pip install truefoundry[workflow,spark]`"
541
+ ) from e
542
+
543
+
544
+ class SparkDriverConfig(models.SparkDriverConfig, PatchedModelBase):
545
+ type: Literal["spark-driver-config"] = "spark-driver-config"
546
+
547
+
548
+ class SparkExecutorConfig(models.SparkExecutorConfig, PatchedModelBase):
549
+ type: Literal["spark-executor-config"] = "spark-executor-config"
550
+
551
+
552
+ class SparkExecutorFixedInstances(models.SparkExecutorFixedInstances, PatchedModelBase):
553
+ type: Literal["fixed"] = "fixed"
554
+
555
+
556
+ class SparkExecutorDynamicScaling(models.SparkExecutorDynamicScaling, PatchedModelBase):
557
+ type: Literal["dynamic"] = "dynamic"
558
+
559
+
560
+ class TaskPySparkBuild(models.TaskPySparkBuild, PatchedModelBase):
561
+ type: Literal["task-pyspark-build"] = "task-pyspark-build"
@@ -15,6 +15,7 @@ from flytekit.types.file import FlyteFile
15
15
  from truefoundry.common.constants import ENV_VARS
16
16
  from truefoundry.deploy.v2.lib.patched_models import (
17
17
  ContainerTaskConfig,
18
+ PySparkTaskConfig,
18
19
  PythonTaskConfig,
19
20
  TaskDockerFileBuild,
20
21
  TaskPythonBuild,
@@ -41,6 +42,7 @@ __all__ = [
41
42
  "ExecutionConfig",
42
43
  "FlyteFile",
43
44
  "FlyteError",
45
+ "PySparkTaskConfig",
44
46
  ]
45
47
 
46
48
 
@@ -0,0 +1,91 @@
1
+ import os
2
+ import shutil
3
+ from typing import Any, Callable, Dict, Optional
4
+
5
+ from flytekit import FlyteContextManager, PythonFunctionTask, lazy_module
6
+ from flytekit.configuration import SerializationSettings
7
+ from flytekit.core.context_manager import ExecutionParameters
8
+ from flytekit.extend import ExecutionState, TaskPlugins
9
+ from flytekit.extend.backend.base_agent import AsyncAgentExecutorMixin
10
+
11
+ from truefoundry.deploy.v2.lib.patched_models import PySparkTaskConfig
12
+
13
+ pyspark_sql = lazy_module("pyspark.sql")
14
+ SparkSession = pyspark_sql.SparkSession
15
+
16
+
17
+ class TfySparkFunctionTask(
18
+ AsyncAgentExecutorMixin, PythonFunctionTask[PySparkTaskConfig]
19
+ ):
20
+ """
21
+ Actual Plugin that transforms the local python code for execution within a spark context
22
+ """
23
+
24
+ _SPARK_TASK_TYPE = "spark"
25
+
26
+ def __init__(
27
+ self,
28
+ task_config: PySparkTaskConfig,
29
+ task_function: Callable,
30
+ **kwargs,
31
+ ):
32
+ self.sess: Optional[SparkSession] = None # type: ignore
33
+
34
+ task_type = self._SPARK_TASK_TYPE
35
+
36
+ super(TfySparkFunctionTask, self).__init__(
37
+ task_config=task_config,
38
+ task_type=task_type,
39
+ task_function=task_function,
40
+ **kwargs,
41
+ )
42
+
43
+ def get_custom(self, settings: SerializationSettings) -> Dict[str, Any]:
44
+ return {"truefoundry": self._task_config.dict()}
45
+
46
+ def pre_execute(self, user_params: ExecutionParameters) -> ExecutionParameters:
47
+ import pyspark as _pyspark
48
+
49
+ ctx = FlyteContextManager.current_context()
50
+ sess_builder = _pyspark.sql.SparkSession.builder.appName(
51
+ f"FlyteSpark: {user_params.execution_id}"
52
+ )
53
+ if not (
54
+ ctx.execution_state
55
+ and ctx.execution_state.mode == ExecutionState.Mode.TASK_EXECUTION
56
+ ):
57
+ # If either of above cases is not true, then we are in local execution of this task
58
+ # Add system spark-conf for local/notebook based execution.
59
+ spark_conf = _pyspark.SparkConf()
60
+ spark_conf.set("spark.driver.bindAddress", "127.0.0.1")
61
+ for k, v in self.task_config.spark_conf.items():
62
+ spark_conf.set(k, v)
63
+ # In local execution, propagate PYTHONPATH to executors too. This makes the spark
64
+ # execution hermetic to the execution environment. For example, it allows running
65
+ # Spark applications using Bazel, without major changes.
66
+ if "PYTHONPATH" in os.environ:
67
+ spark_conf.setExecutorEnv("PYTHONPATH", os.environ["PYTHONPATH"])
68
+ sess_builder = sess_builder.config(conf=spark_conf)
69
+
70
+ self.sess = sess_builder.getOrCreate()
71
+
72
+ if (
73
+ ctx.serialization_settings
74
+ and ctx.serialization_settings.fast_serialization_settings
75
+ and ctx.serialization_settings.fast_serialization_settings.enabled
76
+ and ctx.execution_state
77
+ and ctx.execution_state.mode == ExecutionState.Mode.TASK_EXECUTION
78
+ ):
79
+ file_name = "flyte_wf"
80
+ file_format = "zip"
81
+ shutil.make_archive(file_name, file_format, os.getcwd())
82
+ self.sess.sparkContext.addPyFile(f"{file_name}.{file_format}")
83
+
84
+ return user_params.builder().add_attr("SPARK_SESSION", self.sess).build()
85
+
86
+ def execute(self, **kwargs) -> Any:
87
+ return PythonFunctionTask.execute(self, **kwargs)
88
+
89
+
90
+ # Inject the Spark plugin into flytekits dynamic plugin loading system
91
+ TaskPlugins.register_pythontask_plugin(PySparkTaskConfig, TfySparkFunctionTask)
File without changes
File without changes