truefoundry 0.6.3rc2__tar.gz → 0.6.3rc3__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.
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/PKG-INFO +1 -1
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/pyproject.toml +1 -1
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/utils.py +4 -1
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/__init__.py +3 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/_autogen/models.py +105 -73
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/clients/servicefoundry_client.py +13 -4
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/v2/lib/deploy.py +19 -7
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/v2/lib/deploy_workflow.py +28 -5
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/v2/lib/patched_models.py +8 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/workflow/workflow.py +10 -3
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/.gitignore +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/README.md +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/_client.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/agents/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/agents/base.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/agents/developer.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/agents/project_identifier.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/agents/tester.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/cli.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/constants.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/exception.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/logger.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/tools/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/tools/ask.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/tools/base.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/tools/commit.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/tools/docker_build.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/tools/docker_run.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/tools/file_type_counts.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/tools/list_files.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/tools/read_file.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/tools/send_request.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/tools/write_file.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/utils/client.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/utils/diff.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/utils/pydantic_compat.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/cli/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/cli/__main__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/cli/config.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/cli/console.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/cli/const.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/cli/display_util.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/cli/util.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/auth_service_client.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/constants.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/credential_file_manager.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/credential_provider.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/entities.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/exceptions.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/request_utils.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/servicefoundry_client.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/session.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/storage_provider_utils.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/types.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/common/warnings.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/builder/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/builder/builders/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/builder/builders/dockerfile.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/builder/builders/tfy_notebook_buildpack/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/builder/builders/tfy_notebook_buildpack/dockerfile_template.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/builder/builders/tfy_python_buildpack/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/builder/builders/tfy_python_buildpack/dockerfile_template.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/builder/constants.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/builder/docker_service.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/builder/utils.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/apply_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/build_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/create_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/delete_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/deploy_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/deploy_init_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/get_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/list_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/login_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/logout_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/logs_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/patch_application_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/patch_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/redeploy_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/terminate_comand.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/cli/commands/trigger_command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/core/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/core/login.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/core/logout.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/io/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/io/output_callback.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/io/rich_output_callback.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/clients/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/const.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/dao/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/dao/application.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/dao/apply.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/dao/delete.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/dao/version.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/dao/workspace.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/logs_utils.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/messages.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/model/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/model/entity.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/session.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/util.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/lib/win32.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/python_deploy_codegen.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/v2/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/v2/lib/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/v2/lib/deployable_patched_models.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/v2/lib/models.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/deploy/v2/lib/source.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/logger.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/api/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/api/auth_api.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/api/deprecated_api.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/api/experiments_api.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/api/generate_code_snippet_api.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/api/health_api.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/api/metrics_api.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/api/mlfoundry_artifacts_api.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/api/run_artifacts_api.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/api/runs_api.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/api_client.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/api_response.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/configuration.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/exceptions.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/agent_app.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/agent_manifest.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/agent_open_api_tool_manifest.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/agent_open_api_tool_with_fqn.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/agent_with_fqn.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/apply_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/apply_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/artifact_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/artifact_manifest.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/artifact_path.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/artifact_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/artifact_type.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/artifact_version_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/artifact_version_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/artifact_version_serialization_format.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/artifact_version_status.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/assistant_message.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/authorize_user_for_model_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/authorize_user_for_model_version_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/blob_storage_reference.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/body_get_search_runs_get.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/chat_prompt_manifest.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/chat_prompt_manifest_messages_inner.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/columns_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/command.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/content.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/content1.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/content2.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/content2_any_of_inner.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_artifact_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_artifact_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_artifact_version_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_artifact_version_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_dataset_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_experiment_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_experiment_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_model_version_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_multi_part_upload_for_dataset_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_multi_part_upload_for_dataset_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_multi_part_upload_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_python_deployment_config_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_python_deployment_config_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_run_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_run_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/create_workflow_task_config_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/data_directory_manifest.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/dataset_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/dataset_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/delete_artifact_versions_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/delete_dataset_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/delete_files_for_dataset_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/delete_model_version_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/delete_run_request.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/delete_tag_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/experiment_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/experiment_id_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/experiment_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/experiment_tag_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/export_deployment_files_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/external_blob_storage_source.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/fast_ai_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/file_info_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/finalize_artifact_version_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_artifact_version_aliases_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_experiment_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_latest_run_log_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_metric_history_response.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_signed_url_for_dataset_write_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_read_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_read_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_write_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_write_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_dataset_read_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_dataset_read_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_dataset_write_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/get_tenant_id_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/gluon_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/h2_o_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/http_validation_error.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/image_content_part.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/image_url.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/infer_method_name.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/keras_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/latest_run_log_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/library_name.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/light_gbm_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_artifact_versions_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_artifact_versions_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_artifacts_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_artifacts_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_colums_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_datasets_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_datasets_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_experiments_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_files_for_artifact_version_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_files_for_artifact_versions_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_files_for_dataset_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_files_for_dataset_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_latest_run_logs_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_metric_history_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_metric_history_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_model_version_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_model_versions_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_models_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_models_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_run_artifacts_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/list_run_logs_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/local_artifact_source.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/local_model_source.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/log_batch_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/log_metric_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/log_param_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/manifest.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/manifest1.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/manifest2.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/method.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/metric_collection_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/metric_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/mime_type.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/model_configuration.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/model_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/model_manifest.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/model_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/model_server.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/model_version_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/model_version_environment.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/model_version_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/multi_part_upload_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/multi_part_upload_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/multi_part_upload_storage_provider.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/notify_artifact_version_failure_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/onnx_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/openapi_spec.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/paddle_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/param_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/parameters.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/py_torch_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/resolve_agent_app_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/restore_run_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/run_data_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/run_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/run_info_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/run_log_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/run_log_input_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/run_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/run_tag_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/search_runs_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/search_runs_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/set_experiment_tag_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/set_tag_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/signed_url_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/sklearn_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/sklearn_model_schema.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/sklearn_serialization_format.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/source.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/source1.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/source2.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/spa_cy_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/stats_models_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/stop.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/store_run_logs_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/subject.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/subject_type.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/system_message.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/tensor_flow_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/text.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/text_content_part.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/transformers_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/trigger_job_run_config_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/trigger_job_run_config_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/true_foundry_managed_source.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/update_artifact_version_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/update_dataset_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/update_experiment_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/update_model_version_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/update_run_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/update_run_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/url.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/user_message.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/validate_external_storage_root_request_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/validate_external_storage_root_response_dto.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/validation_error.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/validation_error_loc_inner.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/xg_boost_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/xg_boost_model_schema.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/models/xg_boost_serialization_format.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client/rest.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/client_README.md +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/entities/artifacts.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/models/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/models/exceptions.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/models/schema.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/models/signature.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/_autogen/models/utils.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/artifact/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/artifact/truefoundry_artifact_repo.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/cli/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/cli/cli.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/cli/commands/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/cli/commands/download.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/cli/commands/model_init.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/cli/utils.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/clients/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/clients/servicefoundry_client.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/constants.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/entities.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/enums.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/exceptions.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/git_info.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/internal_namespace.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/artifacts/artifact.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/artifacts/constants.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/artifacts/dataset.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/artifacts/general_artifact.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/artifacts/model.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/artifacts/utils.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/image/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/image/constants.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/image/image.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/image/image_normalizer.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/image/types.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/plot.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/pydantic_base.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/log_types/utils.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/logger.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/mlfoundry_api.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/mlfoundry_run.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/model_framework.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/run_utils.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/session.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/ml/validation_utils.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/pydantic_v1.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/version.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/workflow/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/workflow/container_task.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/workflow/map_task.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/workflow/python_task.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/workflow/remote_filesystem/__init__.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/workflow/remote_filesystem/logger.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py +0 -0
- {truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/workflow/task.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "truefoundry"
|
|
3
|
-
version = "0.6.
|
|
3
|
+
version = "0.6.3rc3" # 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" }]
|
|
@@ -93,7 +93,10 @@ def timed_lru_cache(
|
|
|
93
93
|
|
|
94
94
|
|
|
95
95
|
def poll_for_function(
|
|
96
|
-
func: Callable[..., T],
|
|
96
|
+
func: Callable[..., T],
|
|
97
|
+
poll_after_secs: int = 5,
|
|
98
|
+
*args,
|
|
99
|
+
**kwargs,
|
|
97
100
|
) -> Generator[T, None, None]:
|
|
98
101
|
while True:
|
|
99
102
|
yield func(*args, **kwargs)
|
|
@@ -14,6 +14,7 @@ from truefoundry.deploy._autogen.models import (
|
|
|
14
14
|
SparkExecutorDynamicScaling,
|
|
15
15
|
SparkExecutorFixedInstances,
|
|
16
16
|
WorkbenchImage,
|
|
17
|
+
WorkflowAlert,
|
|
17
18
|
)
|
|
18
19
|
from truefoundry.deploy.lib.dao.application import (
|
|
19
20
|
delete_application,
|
|
@@ -72,6 +73,7 @@ from truefoundry.deploy.v2.lib.patched_models import (
|
|
|
72
73
|
CUDAVersion,
|
|
73
74
|
DockerFileBuild,
|
|
74
75
|
DynamicVolumeConfig,
|
|
76
|
+
Email,
|
|
75
77
|
Endpoint,
|
|
76
78
|
GcpTPU,
|
|
77
79
|
GitHelmRepo,
|
|
@@ -109,6 +111,7 @@ from truefoundry.deploy.v2.lib.patched_models import (
|
|
|
109
111
|
Schedule,
|
|
110
112
|
SecretMount,
|
|
111
113
|
ServiceAutoscaling,
|
|
114
|
+
SlackWebhook,
|
|
112
115
|
SQSInputConfig,
|
|
113
116
|
SQSOutputConfig,
|
|
114
117
|
SQSQueueMetricConfig,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: application.json
|
|
3
|
-
# timestamp: 2025-03-
|
|
3
|
+
# timestamp: 2025-03-27T11:40:57+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -212,6 +212,17 @@ class DynamicVolumeConfig(BaseModel):
|
|
|
212
212
|
size: conint(ge=1, le=64000) = Field(..., description="Size of volume in Gi")
|
|
213
213
|
|
|
214
214
|
|
|
215
|
+
class Email(BaseModel):
|
|
216
|
+
type: Literal["email"] = Field(..., description="")
|
|
217
|
+
notification_channel: constr(min_length=1) = Field(
|
|
218
|
+
..., description="Specify the notification channel to send alerts to"
|
|
219
|
+
)
|
|
220
|
+
to_emails: List[constr(min_length=1)] = Field(
|
|
221
|
+
...,
|
|
222
|
+
description="List of recipients' email addresses if the notification channel is Email.",
|
|
223
|
+
)
|
|
224
|
+
|
|
225
|
+
|
|
215
226
|
class Endpoint(BaseModel):
|
|
216
227
|
host: constr(
|
|
217
228
|
regex=r"^((([a-zA-Z0-9\-]{1,63}\.)([a-zA-Z0-9\-]{1,63}\.)*([A-Za-z]{1,63}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))$"
|
|
@@ -349,25 +360,6 @@ class Image(BaseModel):
|
|
|
349
360
|
)
|
|
350
361
|
|
|
351
362
|
|
|
352
|
-
class JobAlert(BaseModel):
|
|
353
|
-
"""
|
|
354
|
-
Describes the configuration for the job alerts
|
|
355
|
-
"""
|
|
356
|
-
|
|
357
|
-
notification_channel: constr(min_length=1) = Field(
|
|
358
|
-
..., description="Specify the notification channel to send alerts to"
|
|
359
|
-
)
|
|
360
|
-
to_emails: Optional[List[constr(min_length=1)]] = Field(
|
|
361
|
-
None,
|
|
362
|
-
description="List of recipients' email addresses if the notification channel is Email.",
|
|
363
|
-
)
|
|
364
|
-
on_start: bool = Field(False, description="Send an alert when the job starts")
|
|
365
|
-
on_completion: bool = Field(
|
|
366
|
-
False, description="Send an alert when the job completes"
|
|
367
|
-
)
|
|
368
|
-
on_failure: bool = Field(True, description="Send an alert when the job fails")
|
|
369
|
-
|
|
370
|
-
|
|
371
363
|
class Claim(BaseModel):
|
|
372
364
|
key: str
|
|
373
365
|
values: List[str]
|
|
@@ -837,6 +829,13 @@ class ServiceAutoscaling(BaseAutoscaling):
|
|
|
837
829
|
)
|
|
838
830
|
|
|
839
831
|
|
|
832
|
+
class SlackWebhook(BaseModel):
|
|
833
|
+
type: Literal["slack-webhook"] = Field(..., description="")
|
|
834
|
+
notification_channel: constr(min_length=1) = Field(
|
|
835
|
+
..., description="Specify the notification channel to send alerts to"
|
|
836
|
+
)
|
|
837
|
+
|
|
838
|
+
|
|
840
839
|
class SparkDriverConfig(BaseModel):
|
|
841
840
|
ui_endpoint: Endpoint
|
|
842
841
|
resources: Optional[Resources] = None
|
|
@@ -1174,59 +1173,6 @@ class Helm(BaseModel):
|
|
|
1174
1173
|
)
|
|
1175
1174
|
|
|
1176
1175
|
|
|
1177
|
-
class Job(BaseModel):
|
|
1178
|
-
"""
|
|
1179
|
-
Describes the configuration for the job
|
|
1180
|
-
"""
|
|
1181
|
-
|
|
1182
|
-
type: Literal["job"] = Field(..., description="")
|
|
1183
|
-
name: constr(regex=r"^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$") = Field(
|
|
1184
|
-
..., description="Name of the job"
|
|
1185
|
-
)
|
|
1186
|
-
image: Union[Build, Image] = Field(
|
|
1187
|
-
...,
|
|
1188
|
-
description="Specify whether you want to deploy a Docker image or build and deploy from source code",
|
|
1189
|
-
)
|
|
1190
|
-
trigger: Union[Manual, Schedule] = Field(
|
|
1191
|
-
{"type": "manual"}, description="Specify the trigger"
|
|
1192
|
-
)
|
|
1193
|
-
trigger_on_deploy: bool = Field(
|
|
1194
|
-
False, description="Trigger the job after deploy immediately"
|
|
1195
|
-
)
|
|
1196
|
-
params: Optional[List[Param]] = Field(
|
|
1197
|
-
None, description="Configure params and pass it to create different job runs"
|
|
1198
|
-
)
|
|
1199
|
-
env: Optional[Dict[str, str]] = Field(
|
|
1200
|
-
None,
|
|
1201
|
-
description="Configure environment variables to be injected in the service either as plain text or secrets. [Docs](https://docs.truefoundry.com/docs/env-variables)",
|
|
1202
|
-
)
|
|
1203
|
-
resources: Optional[Resources] = None
|
|
1204
|
-
alerts: Optional[List[JobAlert]] = Field(
|
|
1205
|
-
None,
|
|
1206
|
-
description="Configure alerts to be sent when the job starts/fails/completes",
|
|
1207
|
-
)
|
|
1208
|
-
retries: conint(ge=0, le=10) = Field(
|
|
1209
|
-
0,
|
|
1210
|
-
description="Specify the maximum number of attempts to retry a job before it is marked as failed.",
|
|
1211
|
-
)
|
|
1212
|
-
timeout: Optional[conint(le=432000, gt=0)] = Field(
|
|
1213
|
-
None, description="Job timeout in seconds."
|
|
1214
|
-
)
|
|
1215
|
-
concurrency_limit: Optional[PositiveInt] = Field(
|
|
1216
|
-
None, description="Number of runs that can run concurrently"
|
|
1217
|
-
)
|
|
1218
|
-
service_account: Optional[str] = Field(None, description="")
|
|
1219
|
-
mounts: Optional[List[Union[SecretMount, StringDataMount, VolumeMount]]] = Field(
|
|
1220
|
-
None,
|
|
1221
|
-
description="Configure data to be mounted to job pod(s) as a string, secret or volume. [Docs](https://docs.truefoundry.com/docs/mounting-volumes-job)",
|
|
1222
|
-
)
|
|
1223
|
-
labels: Optional[Dict[str, str]] = Field(None, description="")
|
|
1224
|
-
kustomize: Optional[Kustomize] = None
|
|
1225
|
-
workspace_fqn: Optional[str] = Field(
|
|
1226
|
-
None, description="Fully qualified name of the workspace"
|
|
1227
|
-
)
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
1176
|
class KafkaInputConfig(BaseModel):
|
|
1231
1177
|
"""
|
|
1232
1178
|
Describes the configuration for the input Kafka worker
|
|
@@ -1468,6 +1414,18 @@ class WorkerConfig(BaseModel):
|
|
|
1468
1414
|
)
|
|
1469
1415
|
|
|
1470
1416
|
|
|
1417
|
+
class WorkflowAlert(BaseModel):
|
|
1418
|
+
"""
|
|
1419
|
+
Describes the configuration for the workflow alerts
|
|
1420
|
+
"""
|
|
1421
|
+
|
|
1422
|
+
notification_target: Optional[Union[Email, SlackWebhook]] = None
|
|
1423
|
+
on_completion: bool = Field(
|
|
1424
|
+
False, description="Send an alert when the job completes"
|
|
1425
|
+
)
|
|
1426
|
+
on_failure: bool = Field(True, description="Send an alert when the job fails")
|
|
1427
|
+
|
|
1428
|
+
|
|
1471
1429
|
class BaseService(BaseModel):
|
|
1472
1430
|
name: constr(regex=r"^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$") = Field(
|
|
1473
1431
|
...,
|
|
@@ -1516,6 +1474,26 @@ class FlyteTaskTemplate(BaseModel):
|
|
|
1516
1474
|
custom: FlyteTaskCustom
|
|
1517
1475
|
|
|
1518
1476
|
|
|
1477
|
+
class JobAlert(BaseModel):
|
|
1478
|
+
"""
|
|
1479
|
+
Describes the configuration for the job alerts
|
|
1480
|
+
"""
|
|
1481
|
+
|
|
1482
|
+
notification_channel: Optional[constr(min_length=1)] = Field(
|
|
1483
|
+
None, description="Specify the notification channel to send alerts to"
|
|
1484
|
+
)
|
|
1485
|
+
to_emails: Optional[List[constr(min_length=1)]] = Field(
|
|
1486
|
+
None,
|
|
1487
|
+
description="List of recipients' email addresses if the notification channel is Email.",
|
|
1488
|
+
)
|
|
1489
|
+
notification_target: Optional[Union[Email, SlackWebhook]] = None
|
|
1490
|
+
on_start: bool = Field(False, description="Send an alert when the job starts")
|
|
1491
|
+
on_completion: bool = Field(
|
|
1492
|
+
False, description="Send an alert when the job completes"
|
|
1493
|
+
)
|
|
1494
|
+
on_failure: bool = Field(True, description="Send an alert when the job fails")
|
|
1495
|
+
|
|
1496
|
+
|
|
1519
1497
|
class Service(BaseService):
|
|
1520
1498
|
"""
|
|
1521
1499
|
Describes the configuration for the service
|
|
@@ -1557,6 +1535,59 @@ class FlyteTask(BaseModel):
|
|
|
1557
1535
|
description: Optional[Any] = None
|
|
1558
1536
|
|
|
1559
1537
|
|
|
1538
|
+
class Job(BaseModel):
|
|
1539
|
+
"""
|
|
1540
|
+
Describes the configuration for the job
|
|
1541
|
+
"""
|
|
1542
|
+
|
|
1543
|
+
type: Literal["job"] = Field(..., description="")
|
|
1544
|
+
name: constr(regex=r"^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$") = Field(
|
|
1545
|
+
..., description="Name of the job"
|
|
1546
|
+
)
|
|
1547
|
+
image: Union[Build, Image] = Field(
|
|
1548
|
+
...,
|
|
1549
|
+
description="Specify whether you want to deploy a Docker image or build and deploy from source code",
|
|
1550
|
+
)
|
|
1551
|
+
trigger: Union[Manual, Schedule] = Field(
|
|
1552
|
+
{"type": "manual"}, description="Specify the trigger"
|
|
1553
|
+
)
|
|
1554
|
+
trigger_on_deploy: bool = Field(
|
|
1555
|
+
False, description="Trigger the job after deploy immediately"
|
|
1556
|
+
)
|
|
1557
|
+
params: Optional[List[Param]] = Field(
|
|
1558
|
+
None, description="Configure params and pass it to create different job runs"
|
|
1559
|
+
)
|
|
1560
|
+
env: Optional[Dict[str, str]] = Field(
|
|
1561
|
+
None,
|
|
1562
|
+
description="Configure environment variables to be injected in the service either as plain text or secrets. [Docs](https://docs.truefoundry.com/docs/env-variables)",
|
|
1563
|
+
)
|
|
1564
|
+
resources: Optional[Resources] = None
|
|
1565
|
+
alerts: Optional[List[JobAlert]] = Field(
|
|
1566
|
+
None,
|
|
1567
|
+
description="Configure alerts to be sent when the job starts/fails/completes",
|
|
1568
|
+
)
|
|
1569
|
+
retries: conint(ge=0, le=10) = Field(
|
|
1570
|
+
0,
|
|
1571
|
+
description="Specify the maximum number of attempts to retry a job before it is marked as failed.",
|
|
1572
|
+
)
|
|
1573
|
+
timeout: Optional[conint(le=432000, gt=0)] = Field(
|
|
1574
|
+
None, description="Job timeout in seconds."
|
|
1575
|
+
)
|
|
1576
|
+
concurrency_limit: Optional[PositiveInt] = Field(
|
|
1577
|
+
None, description="Number of runs that can run concurrently"
|
|
1578
|
+
)
|
|
1579
|
+
service_account: Optional[str] = Field(None, description="")
|
|
1580
|
+
mounts: Optional[List[Union[SecretMount, StringDataMount, VolumeMount]]] = Field(
|
|
1581
|
+
None,
|
|
1582
|
+
description="Configure data to be mounted to job pod(s) as a string, secret or volume. [Docs](https://docs.truefoundry.com/docs/mounting-volumes-job)",
|
|
1583
|
+
)
|
|
1584
|
+
labels: Optional[Dict[str, str]] = Field(None, description="")
|
|
1585
|
+
kustomize: Optional[Kustomize] = None
|
|
1586
|
+
workspace_fqn: Optional[str] = Field(
|
|
1587
|
+
None, description="Fully qualified name of the workspace"
|
|
1588
|
+
)
|
|
1589
|
+
|
|
1590
|
+
|
|
1560
1591
|
class Workflow(BaseModel):
|
|
1561
1592
|
"""
|
|
1562
1593
|
Describes the configuration for the worflow
|
|
@@ -1575,6 +1606,7 @@ class Workflow(BaseModel):
|
|
|
1575
1606
|
flyte_entities: Optional[List[Union[FlyteTask, FlyteWorkflow, FlyteLaunchPlan]]] = (
|
|
1576
1607
|
Field(None, description="")
|
|
1577
1608
|
)
|
|
1609
|
+
alerts: Optional[List[WorkflowAlert]] = Field(None, description="")
|
|
1578
1610
|
|
|
1579
1611
|
|
|
1580
1612
|
class ApplicationSet(BaseModel):
|
|
@@ -14,7 +14,10 @@ from rich.status import Status
|
|
|
14
14
|
from tqdm import tqdm
|
|
15
15
|
from tqdm.utils import CallbackIOWrapper
|
|
16
16
|
|
|
17
|
-
from truefoundry.common.constants import
|
|
17
|
+
from truefoundry.common.constants import (
|
|
18
|
+
SERVICEFOUNDRY_CLIENT_MAX_RETRIES,
|
|
19
|
+
VERSION_PREFIX,
|
|
20
|
+
)
|
|
18
21
|
from truefoundry.common.request_utils import request_handling
|
|
19
22
|
from truefoundry.common.servicefoundry_client import (
|
|
20
23
|
ServiceFoundryServiceClient as BaseServiceFoundryServiceClient,
|
|
@@ -247,7 +250,7 @@ class ServiceFoundryServiceClient(BaseServiceFoundryServiceClient):
|
|
|
247
250
|
callback: Optional[OutputCallBack] = None,
|
|
248
251
|
) -> socketio.Client:
|
|
249
252
|
callback = callback or OutputCallBack()
|
|
250
|
-
sio = socketio.Client(request_timeout=60)
|
|
253
|
+
sio = socketio.Client(request_timeout=60, reconnection_attempts=10)
|
|
251
254
|
callback.print_line("Waiting for the task to start...")
|
|
252
255
|
next_log_start_timestamp = query_dict.get("startTs")
|
|
253
256
|
|
|
@@ -286,6 +289,7 @@ class ServiceFoundryServiceClient(BaseServiceFoundryServiceClient):
|
|
|
286
289
|
transports="websocket",
|
|
287
290
|
headers=self._get_headers(),
|
|
288
291
|
socketio_path=socketio_path,
|
|
292
|
+
retry=True,
|
|
289
293
|
)
|
|
290
294
|
return sio
|
|
291
295
|
|
|
@@ -298,10 +302,15 @@ class ServiceFoundryServiceClient(BaseServiceFoundryServiceClient):
|
|
|
298
302
|
|
|
299
303
|
@check_min_cli_version
|
|
300
304
|
def get_deployment_statuses(
|
|
301
|
-
self,
|
|
305
|
+
self,
|
|
306
|
+
application_id: str,
|
|
307
|
+
deployment_id: str,
|
|
308
|
+
retry_count: int = SERVICEFOUNDRY_CLIENT_MAX_RETRIES,
|
|
302
309
|
) -> List[AppDeploymentStatusResponse]:
|
|
303
310
|
url = f"{self._api_server_url}/{VERSION_PREFIX}/app/{application_id}/deployments/{deployment_id}/statuses"
|
|
304
|
-
response = session_with_retries().get(
|
|
311
|
+
response = session_with_retries(retries=retry_count).get(
|
|
312
|
+
url, headers=self._get_headers()
|
|
313
|
+
)
|
|
305
314
|
response_data = request_handling(response)
|
|
306
315
|
return parse_obj_as(List[AppDeploymentStatusResponse], response_data)
|
|
307
316
|
|
|
@@ -107,12 +107,20 @@ def _tail_build_logs(build_response: BuildResponse) -> socketio.Client:
|
|
|
107
107
|
|
|
108
108
|
def _deploy_wait_handler( # noqa: C901
|
|
109
109
|
deployment: Deployment,
|
|
110
|
+
tail_logs: bool = True,
|
|
110
111
|
) -> Optional[DeploymentTransitionStatus]:
|
|
112
|
+
tail_logs_or_polling_status_message = (
|
|
113
|
+
"You can press Ctrl + C to exit the tailing of build logs "
|
|
114
|
+
)
|
|
115
|
+
if not tail_logs:
|
|
116
|
+
tail_logs_or_polling_status_message = (
|
|
117
|
+
"you can press Ctrl + C to exit the polling of deployment status "
|
|
118
|
+
)
|
|
111
119
|
_log_application_dashboard_url(
|
|
112
120
|
deployment=deployment,
|
|
113
121
|
log_message=(
|
|
114
122
|
"You can track the progress below or on the dashboard:- '%s'\n"
|
|
115
|
-
"
|
|
123
|
+
f"{tail_logs_or_polling_status_message}"
|
|
116
124
|
"and deployment will continue on the server"
|
|
117
125
|
),
|
|
118
126
|
)
|
|
@@ -130,6 +138,7 @@ def _deploy_wait_handler( # noqa: C901
|
|
|
130
138
|
poll_after_secs=poll_interval_seconds,
|
|
131
139
|
application_id=deployment.applicationId,
|
|
132
140
|
deployment_id=deployment.id,
|
|
141
|
+
retry_count=10,
|
|
133
142
|
):
|
|
134
143
|
if len(deployment_statuses) == 0:
|
|
135
144
|
logger.warning("Did not receive any deployment status")
|
|
@@ -157,12 +166,15 @@ def _deploy_wait_handler( # noqa: C901
|
|
|
157
166
|
latest_deployment_status.transition
|
|
158
167
|
== DeploymentTransitionStatus.BUILDING
|
|
159
168
|
):
|
|
160
|
-
if not socket:
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
169
|
+
if tail_logs and not socket:
|
|
170
|
+
try:
|
|
171
|
+
build_responses = client.get_deployment_build_response(
|
|
172
|
+
application_id=deployment.applicationId,
|
|
173
|
+
deployment_id=deployment.id,
|
|
174
|
+
)
|
|
175
|
+
socket = _tail_build_logs(build_responses[0])
|
|
176
|
+
except Exception as e:
|
|
177
|
+
logger.error("Error tailing build logs: %s", e)
|
|
166
178
|
|
|
167
179
|
time_elapsed = time.monotonic() - start_time
|
|
168
180
|
if time_elapsed > total_timeout_time:
|
|
@@ -25,15 +25,17 @@ from truefoundry.deploy.lib.clients.servicefoundry_client import (
|
|
|
25
25
|
ServiceFoundryServiceClient,
|
|
26
26
|
)
|
|
27
27
|
from truefoundry.deploy.lib.dao.workspace import get_workspace_by_fqn
|
|
28
|
-
from truefoundry.deploy.lib.model.entity import Deployment
|
|
28
|
+
from truefoundry.deploy.lib.model.entity import Deployment, DeploymentTransitionStatus
|
|
29
|
+
from truefoundry.deploy.v2.lib.deploy import _deploy_wait_handler
|
|
29
30
|
from truefoundry.deploy.v2.lib.source import (
|
|
30
31
|
local_source_to_remote_source,
|
|
31
32
|
)
|
|
32
33
|
from truefoundry.logger import logger
|
|
33
34
|
from truefoundry.pydantic_v1 import ValidationError
|
|
34
35
|
from truefoundry.workflow.workflow import (
|
|
36
|
+
TRUEFOUNDRY_ALERTS_CONFIG,
|
|
35
37
|
TRUEFOUNDRY_LAUNCH_PLAN_NAME,
|
|
36
|
-
|
|
38
|
+
truefoundry_config_store,
|
|
37
39
|
)
|
|
38
40
|
|
|
39
41
|
|
|
@@ -173,7 +175,7 @@ def _validate_workflow_entities( # noqa: C901
|
|
|
173
175
|
# validate that all inputs have default values for cron workflows
|
|
174
176
|
for launch_plan in launch_plans:
|
|
175
177
|
if (
|
|
176
|
-
|
|
178
|
+
truefoundry_config_store.get(launch_plan.spec.workflow_id.name)
|
|
177
179
|
and launch_plan.id.name == TRUEFOUNDRY_LAUNCH_PLAN_NAME
|
|
178
180
|
):
|
|
179
181
|
workflow_inputs = launch_plan.spec.default_inputs.parameters
|
|
@@ -236,7 +238,7 @@ def _generate_manifest_for_workflow(
|
|
|
236
238
|
|
|
237
239
|
# this is the case when someone has a cron schedule. and this line is for handling default launch plan in this case.
|
|
238
240
|
if (
|
|
239
|
-
|
|
241
|
+
truefoundry_config_store.get(workflow_name)
|
|
240
242
|
and workflow_name == entity.id.name
|
|
241
243
|
):
|
|
242
244
|
continue
|
|
@@ -262,6 +264,14 @@ def _generate_manifest_for_workflow(
|
|
|
262
264
|
|
|
263
265
|
workflow.flyte_entities.append(message_dict)
|
|
264
266
|
|
|
267
|
+
alerts_config = truefoundry_config_store.get(TRUEFOUNDRY_ALERTS_CONFIG)
|
|
268
|
+
if alerts_config:
|
|
269
|
+
if not workflow.alerts:
|
|
270
|
+
workflow.alerts = alerts_config
|
|
271
|
+
else:
|
|
272
|
+
logger.warning(
|
|
273
|
+
"Alerts are configured in both workflow decorator as well as in deployment config. Alerts configured in workflow decorator will be ignored."
|
|
274
|
+
)
|
|
265
275
|
# this step is just to verify if pydantic model is still valid after adding flyte_entities
|
|
266
276
|
autogen_models.Workflow.validate({**workflow.dict()})
|
|
267
277
|
|
|
@@ -288,7 +298,7 @@ def deploy_workflow(
|
|
|
288
298
|
|
|
289
299
|
# we need to rest the execution config store as it is a global variable and we don't want to keep the cron execution config for next workflow
|
|
290
300
|
# this is only needed for notebook environment
|
|
291
|
-
|
|
301
|
+
truefoundry_config_store.reset()
|
|
292
302
|
|
|
293
303
|
workspace_id = get_workspace_by_fqn(workspace_fqn).id
|
|
294
304
|
|
|
@@ -314,4 +324,17 @@ def deploy_workflow(
|
|
|
314
324
|
deployment.fqn,
|
|
315
325
|
)
|
|
316
326
|
deployment_url = f"{client.tfy_host.strip('/')}/applications/{deployment.applicationId}?tab=deployments"
|
|
327
|
+
if wait:
|
|
328
|
+
try:
|
|
329
|
+
last_status_printed = _deploy_wait_handler(
|
|
330
|
+
deployment=deployment, tail_logs=False
|
|
331
|
+
)
|
|
332
|
+
if not last_status_printed or DeploymentTransitionStatus.is_failure_state(
|
|
333
|
+
last_status_printed
|
|
334
|
+
):
|
|
335
|
+
deployment_tab_url = f"{client.tfy_host.strip('/')}/applications/{deployment.applicationId}?tab=deployments"
|
|
336
|
+
message = f"Deployment Failed. Please refer to the logs for additional details - {deployment_tab_url}"
|
|
337
|
+
sys.exit(message)
|
|
338
|
+
except KeyboardInterrupt:
|
|
339
|
+
logger.info("Ctrl-c executed. The deployment will still continue.")
|
|
317
340
|
logger.info("You can find the application on the dashboard:- '%s'", deployment_url)
|
|
@@ -563,3 +563,11 @@ class TaskPythonBuild(models.TaskPythonBuild, PatchedModelBase):
|
|
|
563
563
|
|
|
564
564
|
# Deprecated aliases, kept for backward compatibility
|
|
565
565
|
TruefoundryArtifactSource = TrueFoundryArtifactSource
|
|
566
|
+
|
|
567
|
+
|
|
568
|
+
class Email(models.Email, PatchedModelBase):
|
|
569
|
+
type: Literal["email"] = "email"
|
|
570
|
+
|
|
571
|
+
|
|
572
|
+
class SlackWebhook(models.SlackWebhook, PatchedModelBase):
|
|
573
|
+
type: Literal["slack-webhook"] = "slack-webhook"
|
|
@@ -10,9 +10,11 @@ from flytekit.core.workflow import (
|
|
|
10
10
|
)
|
|
11
11
|
from flytekit.core.workflow import workflow as flytekit_workflow
|
|
12
12
|
|
|
13
|
+
from truefoundry.deploy._autogen.models import WorkflowAlert
|
|
13
14
|
from truefoundry.pydantic_v1 import BaseModel
|
|
14
15
|
|
|
15
16
|
TRUEFOUNDRY_LAUNCH_PLAN_NAME = "default"
|
|
17
|
+
TRUEFOUNDRY_ALERTS_CONFIG = "tfy_alerts_config"
|
|
16
18
|
|
|
17
19
|
|
|
18
20
|
class ExecutionConfig(BaseModel):
|
|
@@ -22,7 +24,7 @@ class ExecutionConfig(BaseModel):
|
|
|
22
24
|
schedule: str
|
|
23
25
|
|
|
24
26
|
|
|
25
|
-
class
|
|
27
|
+
class TruefoundryConfigStore(BaseModel):
|
|
26
28
|
execution_config_map: Dict[str, ExecutionConfig] = {}
|
|
27
29
|
|
|
28
30
|
def reset(self):
|
|
@@ -35,7 +37,7 @@ class ExecutionConfigStore(BaseModel):
|
|
|
35
37
|
self.execution_config_map[key] = value
|
|
36
38
|
|
|
37
39
|
|
|
38
|
-
|
|
40
|
+
truefoundry_config_store = TruefoundryConfigStore()
|
|
39
41
|
|
|
40
42
|
|
|
41
43
|
def workflow(
|
|
@@ -43,6 +45,7 @@ def workflow(
|
|
|
43
45
|
failure_policy: Optional[WorkflowFailurePolicy] = None,
|
|
44
46
|
on_failure: Optional[Task] = None,
|
|
45
47
|
execution_configs: Optional[List[ExecutionConfig]] = None,
|
|
48
|
+
alerts: Optional[List[WorkflowAlert]] = None,
|
|
46
49
|
) -> Union[
|
|
47
50
|
Callable[[Callable[..., FuncOut]], PythonFunctionWorkflow],
|
|
48
51
|
PythonFunctionWorkflow,
|
|
@@ -85,6 +88,7 @@ def workflow(
|
|
|
85
88
|
failure_policy=failure_policy,
|
|
86
89
|
on_failure=on_failure,
|
|
87
90
|
execution_configs=execution_configs,
|
|
91
|
+
alerts=alerts,
|
|
88
92
|
)
|
|
89
93
|
|
|
90
94
|
return wrapper
|
|
@@ -109,6 +113,9 @@ def workflow(
|
|
|
109
113
|
function_module = _workflow_function.__module__
|
|
110
114
|
function_name = _workflow_function.__name__
|
|
111
115
|
function_path = f"{function_module}.{function_name}"
|
|
112
|
-
|
|
116
|
+
truefoundry_config_store.set(function_path, execution_config)
|
|
117
|
+
|
|
118
|
+
if alerts:
|
|
119
|
+
truefoundry_config_store.set(TRUEFOUNDRY_ALERTS_CONFIG, alerts)
|
|
113
120
|
|
|
114
121
|
return workflow_object
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/agents/project_identifier.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/tools/file_type_counts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{truefoundry-0.6.3rc2 → truefoundry-0.6.3rc3}/truefoundry/autodeploy/utils/pydantic_compat.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|