truefoundry 0.4.4rc8__tar.gz → 0.4.4rc10__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 (359) hide show
  1. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/PKG-INFO +1 -1
  2. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/pyproject.toml +2 -1
  3. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/common/constants.py +7 -12
  4. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/common/tfy_signed_url_client.py +84 -86
  5. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/common/tfy_signed_url_fs.py +13 -7
  6. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/artifact/truefoundry_artifact_repo.py +433 -415
  7. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/__init__.py +24 -3
  8. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/api/experiments_api.py +0 -137
  9. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/api/mlfoundry_artifacts_api.py +2 -0
  10. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/__init__.py +24 -3
  11. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/artifact_dto.py +9 -0
  12. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/artifact_version_dto.py +26 -0
  13. truefoundry-0.4.4rc10/truefoundry/ml/autogen/client/models/artifact_version_serialization_format.py +34 -0
  14. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_artifact_version_response_dto.py +8 -2
  15. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_run_request_dto.py +1 -10
  16. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/dataset_dto.py +9 -0
  17. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/experiment_dto.py +14 -3
  18. truefoundry-0.4.4rc10/truefoundry/ml/autogen/client/models/external_model_source.py +79 -0
  19. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/finalize_artifact_version_request_dto.py +11 -0
  20. truefoundry-0.4.4rc10/truefoundry/ml/autogen/client/models/framework.py +154 -0
  21. truefoundry-0.4.4rc10/truefoundry/ml/autogen/client/models/library_name.py +35 -0
  22. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/model_dto.py +9 -0
  23. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/model_version_dto.py +26 -0
  24. truefoundry-0.4.4rc10/truefoundry/ml/autogen/client/models/model_version_manifest.py +119 -0
  25. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/run_info_dto.py +10 -1
  26. truefoundry-0.4.4rc10/truefoundry/ml/autogen/client/models/source.py +177 -0
  27. truefoundry-0.4.4rc10/truefoundry/ml/autogen/client/models/subject.py +79 -0
  28. truefoundry-0.4.4rc10/truefoundry/ml/autogen/client/models/subject_type.py +34 -0
  29. truefoundry-0.4.4rc10/truefoundry/ml/autogen/client/models/tensorflow_framework.py +74 -0
  30. truefoundry-0.4.4rc10/truefoundry/ml/autogen/client/models/transformers_framework.py +90 -0
  31. truefoundry-0.4.4rc10/truefoundry/ml/autogen/client/models/truefoundry_model_source.py +79 -0
  32. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/update_model_version_request_dto.py +11 -0
  33. truefoundry-0.4.4rc10/truefoundry/ml/autogen/client/models/upload_model_source.py +74 -0
  34. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client_README.md +12 -2
  35. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/entities/artifacts.py +236 -4
  36. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/artifacts/artifact.py +10 -6
  37. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/artifacts/dataset.py +13 -5
  38. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/artifacts/general_artifact.py +3 -1
  39. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/artifacts/model.py +18 -30
  40. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/artifacts/utils.py +42 -25
  41. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/image/image.py +2 -0
  42. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/plot.py +2 -0
  43. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/mlfoundry_api.py +0 -1
  44. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/workflow/__init__.py +8 -3
  45. truefoundry-0.4.4rc8/truefoundry/ml/autogen/client/models/list_seed_experiments_response_dto.py +0 -81
  46. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/README.md +0 -0
  47. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/__init__.py +0 -0
  48. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/__init__.py +0 -0
  49. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/agents/__init__.py +0 -0
  50. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/agents/base.py +0 -0
  51. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/agents/developer.py +0 -0
  52. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/agents/project_identifier.py +0 -0
  53. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/agents/tester.py +0 -0
  54. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/cli.py +0 -0
  55. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/constants.py +0 -0
  56. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/exception.py +0 -0
  57. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/logger.py +0 -0
  58. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/tools/__init__.py +0 -0
  59. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/tools/ask.py +0 -0
  60. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/tools/base.py +0 -0
  61. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/tools/commit.py +0 -0
  62. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/tools/docker_build.py +0 -0
  63. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/tools/docker_run.py +0 -0
  64. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/tools/file_type_counts.py +0 -0
  65. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/tools/list_files.py +0 -0
  66. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/tools/read_file.py +0 -0
  67. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/tools/send_request.py +0 -0
  68. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/tools/write_file.py +0 -0
  69. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/utils/client.py +0 -0
  70. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/utils/diff.py +0 -0
  71. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/autodeploy/utils/pydantic_compat.py +0 -0
  72. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/cli/__init__.py +0 -0
  73. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/cli/__main__.py +0 -0
  74. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/common/__init__.py +0 -0
  75. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/common/auth_service_client.py +0 -0
  76. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/common/credential_file_manager.py +0 -0
  77. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/common/credential_provider.py +0 -0
  78. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/common/entities.py +0 -0
  79. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/common/exceptions.py +0 -0
  80. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/common/request_utils.py +0 -0
  81. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/common/servicefoundry_client.py +0 -0
  82. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/common/utils.py +0 -0
  83. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/__init__.py +0 -0
  84. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/auto_gen/models.py +0 -0
  85. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/builder/__init__.py +0 -0
  86. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/builder/builders/__init__.py +0 -0
  87. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/builder/builders/dockerfile.py +0 -0
  88. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/builder/builders/tfy_notebook_buildpack/__init__.py +0 -0
  89. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/builder/builders/tfy_notebook_buildpack/dockerfile_template.py +0 -0
  90. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/builder/builders/tfy_python_buildpack/__init__.py +0 -0
  91. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/builder/builders/tfy_python_buildpack/dockerfile_template.py +0 -0
  92. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/builder/constants.py +0 -0
  93. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/builder/docker_service.py +0 -0
  94. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/builder/utils.py +0 -0
  95. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/__init__.py +0 -0
  96. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/cli.py +0 -0
  97. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/__init__.py +0 -0
  98. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/apply_command.py +0 -0
  99. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/build_command.py +0 -0
  100. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/build_logs_command.py +0 -0
  101. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/create_command.py +0 -0
  102. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/delete_command.py +0 -0
  103. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/deploy_command.py +0 -0
  104. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/get_command.py +0 -0
  105. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/list_command.py +0 -0
  106. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/login_command.py +0 -0
  107. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/logout_command.py +0 -0
  108. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/logs_command.py +0 -0
  109. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/patch_application_command.py +0 -0
  110. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/patch_command.py +0 -0
  111. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/redeploy_command.py +0 -0
  112. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/terminate_comand.py +0 -0
  113. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/commands/trigger_command.py +0 -0
  114. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/config.py +0 -0
  115. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/console.py +0 -0
  116. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/const.py +0 -0
  117. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/display_util.py +0 -0
  118. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/cli/util.py +0 -0
  119. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/core/__init__.py +0 -0
  120. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/core/login.py +0 -0
  121. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/core/logout.py +0 -0
  122. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/function_service/__init__.py +0 -0
  123. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/function_service/__main__.py +0 -0
  124. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/function_service/app.py +0 -0
  125. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/function_service/build.py +0 -0
  126. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/function_service/remote/__init__.py +0 -0
  127. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/function_service/remote/context.py +0 -0
  128. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/function_service/remote/method.py +0 -0
  129. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/function_service/remote/remote.py +0 -0
  130. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/function_service/route.py +0 -0
  131. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/function_service/service.py +0 -0
  132. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/function_service/utils.py +0 -0
  133. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/io/__init__.py +0 -0
  134. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/io/output_callback.py +0 -0
  135. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/io/rich_output_callback.py +0 -0
  136. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/json_util.py +0 -0
  137. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/__init__.py +0 -0
  138. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/auth/servicefoundry_session.py +0 -0
  139. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/clients/__init__.py +0 -0
  140. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/clients/servicefoundry_client.py +0 -0
  141. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/const.py +0 -0
  142. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/dao/__init__.py +0 -0
  143. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/dao/application.py +0 -0
  144. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/dao/apply.py +0 -0
  145. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/dao/version.py +0 -0
  146. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/dao/workspace.py +0 -0
  147. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/exceptions.py +0 -0
  148. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/logs_utils.py +0 -0
  149. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/messages.py +0 -0
  150. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/model/__init__.py +0 -0
  151. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/model/entity.py +0 -0
  152. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/session.py +0 -0
  153. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/util.py +0 -0
  154. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/lib/win32.py +0 -0
  155. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/python_deploy_codegen.py +0 -0
  156. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/v2/__init__.py +0 -0
  157. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/v2/lib/__init__.py +0 -0
  158. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/v2/lib/deploy.py +0 -0
  159. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/v2/lib/deploy_workflow.py +0 -0
  160. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/v2/lib/deployable_patched_models.py +0 -0
  161. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/v2/lib/models.py +0 -0
  162. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/v2/lib/patched_models.py +0 -0
  163. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/deploy/v2/lib/source.py +0 -0
  164. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/langchain/__init__.py +0 -0
  165. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/langchain/deprecated.py +0 -0
  166. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/langchain/truefoundry_chat.py +0 -0
  167. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/langchain/truefoundry_embeddings.py +0 -0
  168. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/langchain/truefoundry_llm.py +0 -0
  169. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/langchain/utils.py +0 -0
  170. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/logger.py +0 -0
  171. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/__init__.py +0 -0
  172. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/artifact/__init__.py +0 -0
  173. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/__init__.py +0 -0
  174. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/api/__init__.py +0 -0
  175. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/api/auth_api.py +0 -0
  176. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/api/deprecated_api.py +0 -0
  177. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/api/health_api.py +0 -0
  178. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/api/metrics_api.py +0 -0
  179. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/api/python_deployment_config_api.py +0 -0
  180. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/api/run_artifacts_api.py +0 -0
  181. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/api/runs_api.py +0 -0
  182. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/api_client.py +0 -0
  183. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/api_response.py +0 -0
  184. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/configuration.py +0 -0
  185. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/exceptions.py +0 -0
  186. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/add_custom_metrics_to_model_version_request_dto.py +0 -0
  187. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/add_features_to_model_version_request_dto.py +0 -0
  188. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/agent.py +0 -0
  189. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/agent_app.py +0 -0
  190. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/agent_open_api_tool.py +0 -0
  191. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/agent_open_api_tool_with_fqn.py +0 -0
  192. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/agent_with_fqn.py +0 -0
  193. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/artifact_response_dto.py +0 -0
  194. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/artifact_type.py +0 -0
  195. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/artifact_version_response_dto.py +0 -0
  196. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/artifact_version_status.py +0 -0
  197. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/assistant_message.py +0 -0
  198. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/authorize_user_for_model_request_dto.py +0 -0
  199. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/authorize_user_for_model_version_request_dto.py +0 -0
  200. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/blob_storage_reference.py +0 -0
  201. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/body_get_search_runs_get.py +0 -0
  202. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/chat_prompt.py +0 -0
  203. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/chat_prompt_messages_inner.py +0 -0
  204. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/columns_dto.py +0 -0
  205. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/content.py +0 -0
  206. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/content1.py +0 -0
  207. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/content2.py +0 -0
  208. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/content2_any_of_inner.py +0 -0
  209. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_artifact_request_dto.py +0 -0
  210. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_artifact_response_dto.py +0 -0
  211. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_artifact_version_request_dto.py +0 -0
  212. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_dataset_request_dto.py +0 -0
  213. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_experiment_request_dto.py +0 -0
  214. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_experiment_response_dto.py +0 -0
  215. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_model_version_request_dto.py +0 -0
  216. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_multi_part_upload_for_dataset_request_dto.py +0 -0
  217. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_multi_part_upload_for_dataset_response_dto.py +0 -0
  218. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_multi_part_upload_request_dto.py +0 -0
  219. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_python_deployment_config_request_dto.py +0 -0
  220. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_python_deployment_config_response_dto.py +0 -0
  221. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/create_run_response_dto.py +0 -0
  222. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/dataset_response_dto.py +0 -0
  223. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/delete_artifact_versions_request_dto.py +0 -0
  224. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/delete_dataset_request_dto.py +0 -0
  225. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/delete_files_for_dataset_request_dto.py +0 -0
  226. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/delete_model_version_request_dto.py +0 -0
  227. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/delete_run_request.py +0 -0
  228. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/delete_tag_request_dto.py +0 -0
  229. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/experiment_id_request_dto.py +0 -0
  230. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/experiment_response_dto.py +0 -0
  231. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/experiment_tag_dto.py +0 -0
  232. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/feature_dto.py +0 -0
  233. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/feature_value_type.py +0 -0
  234. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/file_info_dto.py +0 -0
  235. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/get_experiment_response_dto.py +0 -0
  236. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/get_latest_run_log_response_dto.py +0 -0
  237. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/get_metric_history_response.py +0 -0
  238. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/get_signed_url_for_dataset_write_request_dto.py +0 -0
  239. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/get_signed_urls_for_artifact_version_read_request_dto.py +0 -0
  240. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/get_signed_urls_for_artifact_version_read_response_dto.py +0 -0
  241. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/get_signed_urls_for_artifact_version_write_request_dto.py +0 -0
  242. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/get_signed_urls_for_artifact_version_write_response_dto.py +0 -0
  243. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/get_signed_urls_for_dataset_read_request_dto.py +0 -0
  244. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/get_signed_urls_for_dataset_read_response_dto.py +0 -0
  245. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/get_signed_urls_for_dataset_write_response_dto.py +0 -0
  246. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/get_tenant_id_response_dto.py +0 -0
  247. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/http_validation_error.py +0 -0
  248. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/image_content_part.py +0 -0
  249. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/image_url.py +0 -0
  250. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/internal_metadata.py +0 -0
  251. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/latest_run_log_dto.py +0 -0
  252. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_artifact_versions_request_dto.py +0 -0
  253. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_artifact_versions_response_dto.py +0 -0
  254. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_artifacts_request_dto.py +0 -0
  255. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_artifacts_response_dto.py +0 -0
  256. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_colums_response_dto.py +0 -0
  257. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_datasets_request_dto.py +0 -0
  258. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_datasets_response_dto.py +0 -0
  259. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_experiments_response_dto.py +0 -0
  260. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_files_for_artifact_version_request_dto.py +0 -0
  261. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_files_for_artifact_versions_response_dto.py +0 -0
  262. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_files_for_dataset_request_dto.py +0 -0
  263. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_files_for_dataset_response_dto.py +0 -0
  264. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_latest_run_logs_response_dto.py +0 -0
  265. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_metric_history_request_dto.py +0 -0
  266. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_metric_history_response_dto.py +0 -0
  267. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_model_version_response_dto.py +0 -0
  268. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_model_versions_request_dto.py +0 -0
  269. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_models_request_dto.py +0 -0
  270. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_models_response_dto.py +0 -0
  271. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_run_artifacts_response_dto.py +0 -0
  272. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/list_run_logs_response_dto.py +0 -0
  273. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/log_batch_request_dto.py +0 -0
  274. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/log_metric_request_dto.py +0 -0
  275. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/log_param_request_dto.py +0 -0
  276. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/method.py +0 -0
  277. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/metric_collection_dto.py +0 -0
  278. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/metric_dto.py +0 -0
  279. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/mime_type.py +0 -0
  280. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/model_configuration.py +0 -0
  281. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/model_response_dto.py +0 -0
  282. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/model_schema_dto.py +0 -0
  283. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/model_version_response_dto.py +0 -0
  284. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/multi_part_upload_dto.py +0 -0
  285. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/multi_part_upload_response_dto.py +0 -0
  286. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/multi_part_upload_storage_provider.py +0 -0
  287. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/notify_artifact_version_failure_dto.py +0 -0
  288. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/openapi_spec.py +0 -0
  289. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/param_dto.py +0 -0
  290. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/parameters.py +0 -0
  291. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/prediction_type.py +0 -0
  292. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/resolve_agent_app_response_dto.py +0 -0
  293. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/restore_run_request_dto.py +0 -0
  294. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/run_data_dto.py +0 -0
  295. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/run_dto.py +0 -0
  296. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/run_log_dto.py +0 -0
  297. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/run_log_input_dto.py +0 -0
  298. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/run_response_dto.py +0 -0
  299. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/run_tag_dto.py +0 -0
  300. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/search_runs_request_dto.py +0 -0
  301. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/search_runs_response_dto.py +0 -0
  302. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/set_experiment_tag_request_dto.py +0 -0
  303. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/set_tag_request_dto.py +0 -0
  304. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/signed_url_dto.py +0 -0
  305. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/stop.py +0 -0
  306. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/store_run_logs_request_dto.py +0 -0
  307. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/system_message.py +0 -0
  308. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/text.py +0 -0
  309. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/text_content_part.py +0 -0
  310. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/update_artifact_version_request_dto.py +0 -0
  311. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/update_dataset_request_dto.py +0 -0
  312. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/update_experiment_request_dto.py +0 -0
  313. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/update_run_request_dto.py +0 -0
  314. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/update_run_response_dto.py +0 -0
  315. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/url.py +0 -0
  316. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/user_message.py +0 -0
  317. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/validation_error.py +0 -0
  318. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/models/validation_error_loc_inner.py +0 -0
  319. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/autogen/client/rest.py +0 -0
  320. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/cli/__init__.py +0 -0
  321. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/cli/cli.py +0 -0
  322. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/cli/commands/__init__.py +0 -0
  323. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/cli/commands/download.py +0 -0
  324. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/clients/__init__.py +0 -0
  325. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/clients/entities.py +0 -0
  326. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/clients/servicefoundry_client.py +0 -0
  327. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/clients/utils.py +0 -0
  328. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/constants.py +0 -0
  329. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/entities.py +0 -0
  330. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/enums.py +0 -0
  331. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/exceptions.py +0 -0
  332. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/git_info.py +0 -0
  333. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/internal_namespace.py +0 -0
  334. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/__init__.py +0 -0
  335. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/artifacts/constants.py +0 -0
  336. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/artifacts/model_extras.py +0 -0
  337. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/image/__init__.py +0 -0
  338. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/image/constants.py +0 -0
  339. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/image/image_normalizer.py +0 -0
  340. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/image/types.py +0 -0
  341. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/pydantic_base.py +0 -0
  342. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/log_types/utils.py +0 -0
  343. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/logger.py +0 -0
  344. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/mlfoundry_run.py +0 -0
  345. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/run_utils.py +0 -0
  346. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/session.py +0 -0
  347. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/ml/validation_utils.py +0 -0
  348. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/pydantic_v1.py +0 -0
  349. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/version.py +0 -0
  350. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/workflow/container_task.py +0 -0
  351. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/workflow/example/deploy.sh +0 -0
  352. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/workflow/example/hello_world_package/workflow.py +0 -0
  353. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/workflow/example/package/test_workflow.py +0 -0
  354. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/workflow/example/truefoundry.yaml +0 -0
  355. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/workflow/example/workflow.yaml +0 -0
  356. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/workflow/map_task.py +0 -0
  357. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/workflow/python_task.py +0 -0
  358. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/workflow/task.py +0 -0
  359. {truefoundry-0.4.4rc8 → truefoundry-0.4.4rc10}/truefoundry/workflow/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: truefoundry
3
- Version: 0.4.4rc8
3
+ Version: 0.4.4rc10
4
4
  Summary: Truefoundry CLI
5
5
  Author: Abhishek Choudhary
6
6
  Author-email: abhishek@truefoundry.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "truefoundry"
3
- version = "0.4.4rc8"
3
+ version = "0.4.4rc10"
4
4
  description = "Truefoundry CLI"
5
5
  authors = ["Abhishek Choudhary <abhishek@truefoundry.com>"]
6
6
  readme = "README.md"
@@ -55,6 +55,7 @@ pandas = [
55
55
  { version = ">=1.4.0,<3.0.0", python = ">=3.10" },
56
56
  ]
57
57
 
58
+
58
59
  [tool.poetry.extras]
59
60
  workflow = ["flytekit"]
60
61
 
@@ -13,12 +13,6 @@ TFY_API_KEY_ENV_KEY = "TFY_API_KEY"
13
13
 
14
14
  TFY_INTERNAL_SIGNED_URL_SERVER_HOST_ENV_KEY = "TFY_INTERNAL_SIGNED_URL_SERVER_HOST"
15
15
  TFY_INTERNAL_SIGNED_URL_SERVER_TOKEN_ENV_KEY = "TFY_INTERNAL_SIGNED_URL_SERVER_TOKEN"
16
- TFY_INTERNAL_SIGNED_URL_SERVER_DEFAULT_TTL_ENV_KEY = (
17
- "TFY_INTERNAL_SIGNED_URL_SERVER_DEFAULT_TTL"
18
- )
19
- TFY_INTERNAL_SIGNED_URL_SERVER_MAX_TIMEOUT_ENV_KEY = (
20
- "TFY_INTERNAL_SIGNED_URL_SERVER_MAX_TIMEOUT"
21
- )
22
16
 
23
17
 
24
18
  class TrueFoundrySdkEnv(BaseSettings):
@@ -26,18 +20,19 @@ class TrueFoundrySdkEnv(BaseSettings):
26
20
  # Never expect the user to set these values
27
21
  TFY_HOST: Optional[str] = Field(default=None, env=TFY_HOST_ENV_KEY)
28
22
  TFY_API_KEY: Optional[SecretStr] = Field(default=None, env=TFY_API_KEY_ENV_KEY)
23
+
24
+ # Internal Signed URL Server
29
25
  TFY_INTERNAL_SIGNED_URL_SERVER_HOST: Optional[str] = Field(
30
26
  default=None, env=TFY_INTERNAL_SIGNED_URL_SERVER_HOST_ENV_KEY
31
27
  )
32
28
  TFY_INTERNAL_SIGNED_URL_SERVER_TOKEN: Optional[str] = Field(
33
29
  default=None, env=TFY_INTERNAL_SIGNED_URL_SERVER_TOKEN_ENV_KEY
34
30
  )
35
- TFY_INTERNAL_SIGNED_URL_SERVER_DEFAULT_TTL: int = Field(
36
- default=3600, env=TFY_INTERNAL_SIGNED_URL_SERVER_DEFAULT_TTL_ENV_KEY
37
- ) # 1 hour
38
- TFY_INTERNAL_SIGNED_URL_SERVER_MAX_TIMEOUT: int = Field(
39
- default=5, env=TFY_INTERNAL_SIGNED_URL_SERVER_MAX_TIMEOUT_ENV_KEY
40
- ) # 5 seconds
31
+ TFY_INTERNAL_SIGNED_URL_SERVER_MAX_TIMEOUT: int = 5 # default: 5 seconds
32
+ TFY_INTERNAL_SIGNED_URL_SERVER_DEFAULT_TTL: int = 3600 # default: 1 hour
33
+ TFY_INTERNAL_SIGNED_URL_REQUEST_TIMEOUT: int = 3600 # default: 1 hour
34
+
35
+ # Artifacts
41
36
  TFY_ARTIFACTS_DOWNLOAD_CHUNK_SIZE_BYTES: int = 100 * 1000 * 1000
42
37
  TFY_ARTIFACTS_DOWNLOAD_MAX_WORKERS: int = max(min(32, (os.cpu_count() or 2) * 2), 4)
43
38
  TFY_ARTIFACTS_UPLOAD_MAX_WORKERS: int = max(min(32, (os.cpu_count() or 2) * 2), 4)
@@ -1,21 +1,24 @@
1
1
  # file: client.py
2
2
  from enum import Enum
3
- from typing import Any, Dict, List, Optional
3
+ from typing import Any, Dict, List, Optional, Union
4
4
  from urllib.parse import urlencode, urljoin
5
5
 
6
6
  from requests.exceptions import RequestException
7
7
 
8
- from truefoundry.common.constants import ENV_VARS
8
+ from truefoundry.common.constants import (
9
+ ENV_VARS,
10
+ TFY_INTERNAL_SIGNED_URL_SERVER_HOST_ENV_KEY,
11
+ TFY_INTERNAL_SIGNED_URL_SERVER_TOKEN_ENV_KEY,
12
+ )
9
13
  from truefoundry.common.request_utils import requests_retry_session
10
14
  from truefoundry.common.utils import log_time
15
+ from truefoundry.logger import logger
11
16
  from truefoundry.pydantic_v1 import BaseModel, Field
12
17
 
13
- # TODO: Move print statements to logger
14
- # TODO: Move these constants to the constants module
15
- REQUEST_TIMEOUT = 3600
16
-
18
+ LOG_PREFIX = "[tfy][fs]"
17
19
  DEFAULT_TTL = ENV_VARS.TFY_INTERNAL_SIGNED_URL_SERVER_DEFAULT_TTL
18
20
  MAX_TIMEOUT = ENV_VARS.TFY_INTERNAL_SIGNED_URL_SERVER_MAX_TIMEOUT
21
+ REQUEST_TIMEOUT = ENV_VARS.TFY_INTERNAL_SIGNED_URL_REQUEST_TIMEOUT
19
22
 
20
23
 
21
24
  class SignedURLAPIResponseDto(BaseModel):
@@ -34,9 +37,9 @@ class SignedURLExistsAPIResponseDto(BaseModel):
34
37
 
35
38
  class FileInfo(BaseModel):
36
39
  path: str
37
- is_directoy: bool = Field(..., alias="isDirectory")
40
+ is_directory: bool = Field(..., alias="isDirectory")
38
41
  bytes: Optional[int] = None
39
- signedUrl: Optional[str] = None
42
+ signed_url: Optional[str] = None
40
43
 
41
44
 
42
45
  class PagedList(BaseModel):
@@ -62,51 +65,46 @@ class SignedURLClient:
62
65
  base_url: Optional[str] = None,
63
66
  token: Optional[str] = None,
64
67
  ttl: int = DEFAULT_TTL,
68
+ max_retries: int = 3,
69
+ retry_backoff_factor: float = 0.3,
65
70
  ):
66
- """
67
- Initialize the SignedURLClient.
68
-
69
- Args:
70
- base_url (str): Base URL of the signed URL server (optional).
71
- token (str): Token for authentication (optional).
72
- ttl (int): Default time-to-live for signed URLs in seconds.
73
- """
71
+ """Initialize the SignedURLClient."""
72
+ # Set the base URL and token from the environment variables
74
73
  self.base_url = base_url or ENV_VARS.TFY_INTERNAL_SIGNED_URL_SERVER_HOST
75
74
  self.token = token or ENV_VARS.TFY_INTERNAL_SIGNED_URL_SERVER_TOKEN
75
+ self.signed_url_server_headers = {
76
+ "Authorization": f"Bearer {self.token}",
77
+ "Content-Type": "application/json",
78
+ }
79
+
80
+ if not self.base_url or not self.token:
81
+ raise ValueError(
82
+ f"Set `base_url` and `token` or define env vars "
83
+ f"{TFY_INTERNAL_SIGNED_URL_SERVER_HOST_ENV_KEY} and "
84
+ f"{TFY_INTERNAL_SIGNED_URL_SERVER_TOKEN_ENV_KEY}"
85
+ )
86
+
87
+ # Set the TTL, max retries, and backoff factor
76
88
  self.ttl = ttl
77
- self.max_retries: int = 3
78
- self.retry_backoff_factor: float = 0.3
89
+ self.max_retries: int = max_retries
90
+ self.retry_backoff_factor: float = retry_backoff_factor
79
91
  self.session = requests_retry_session(
80
92
  retries=self.max_retries, backoff_factor=self.retry_backoff_factor
81
93
  )
82
94
 
83
- self.headers = {
84
- "Authorization": f"Bearer {self.token}",
85
- "Content-Type": "application/json",
86
- }
87
-
88
95
  @log_time
89
96
  def _make_request(
90
- self, endpoint: str, method: str = "GET", payload: Optional[Dict] = None
97
+ self,
98
+ endpoint: str,
99
+ method: str = "GET",
100
+ payload: Optional[Dict] = None,
101
+ headers: Optional[Dict] = None,
91
102
  ) -> Dict:
92
- """
93
- Internal method to handle requests to the signed URL server.
94
-
95
- Args:
96
- endpoint (str): The endpoint for the request.
97
- method (str): HTTP method (GET, POST, etc.).
98
- payload (Dict, optional): JSON payload for the request.
99
-
100
- Returns:
101
- Dict: JSON response from the server.
102
-
103
- Raises:
104
- RuntimeError: For network errors or invalid responses.
105
- """
103
+ """Internal method to handle requests to the signed URL server."""
106
104
  url = urljoin(self.base_url, endpoint)
107
105
  try:
108
106
  response = self.session.request(
109
- method, url, headers=self.headers, json=payload, timeout=MAX_TIMEOUT
107
+ method, url, headers=headers, json=payload, timeout=MAX_TIMEOUT
110
108
  )
111
109
  response.raise_for_status()
112
110
  return response.json()
@@ -114,19 +112,30 @@ class SignedURLClient:
114
112
  raise RuntimeError(f"Error during request to {url}: {e}") from e
115
113
 
116
114
  def _make_server_api_call(
117
- self, endpoint: SignedURLServerEndpoint, params: Optional[Dict] = None
115
+ self,
116
+ endpoint: SignedURLServerEndpoint,
117
+ params: Optional[Dict] = None,
118
+ headers: Optional[Dict] = None,
118
119
  ) -> Dict:
119
120
  """Get a signed URL for the specified operation and URI."""
120
121
  query_string = urlencode(params or {})
121
122
  endpoint_with_params = f"{endpoint.value}?{query_string}"
122
- return self._make_request(endpoint_with_params)
123
+ return self._make_request(
124
+ endpoint=endpoint_with_params, method="GET", payload=None, headers=headers
125
+ )
123
126
 
124
127
  @log_time
125
128
  def _upload_data(self, signed_url: str, data: Any) -> None:
126
- """Helper method to upload data to the signed URL."""
129
+ """
130
+ Upload data to the specified storage path using a signed URL.
131
+
132
+ Args:
133
+ signed_url: str: The signed URL to upload the data to.
134
+ data: Bytes or IO: The data to upload.
135
+ """
127
136
  try:
128
137
  response = self.session.put(
129
- signed_url,
138
+ url=signed_url,
130
139
  headers={"Content-Type": "application/octet-stream"},
131
140
  data=data,
132
141
  timeout=REQUEST_TIMEOUT,
@@ -140,6 +149,7 @@ class SignedURLClient:
140
149
  signed_object = self._make_server_api_call(
141
150
  endpoint=SignedURLServerEndpoint.WRITE,
142
151
  params={"uri": storage_uri, "expiryInSeconds": self.ttl},
152
+ headers=self.signed_url_server_headers,
143
153
  )
144
154
  pre_signed_object_dto = SignedURLAPIResponseDto.parse_obj(signed_object)
145
155
  self._upload_data(pre_signed_object_dto.signed_url, data)
@@ -148,10 +158,11 @@ class SignedURLClient:
148
158
  @log_time
149
159
  def upload(self, file_path: str, storage_uri: str) -> str:
150
160
  """Upload a file to the specified storage path using a signed URL."""
151
- print(f"Uploading {file_path} to {storage_uri}")
161
+ logger.info(f"{LOG_PREFIX} Uploading {file_path} to {storage_uri}")
152
162
  response = self._make_server_api_call(
153
163
  endpoint=SignedURLServerEndpoint.WRITE,
154
164
  params={"uri": storage_uri, "expiryInSeconds": self.ttl},
165
+ headers=self.signed_url_server_headers,
155
166
  )
156
167
  pre_signed_object_dto = SignedURLAPIResponseDto.parse_obj(response)
157
168
  with open(file_path, "rb") as file:
@@ -162,62 +173,43 @@ class SignedURLClient:
162
173
  def _download_file(
163
174
  self, signed_url: str, local_path: Optional[str] = None
164
175
  ) -> Optional[bytes]:
165
- """Common method to download a file using a signed URL.
166
-
167
- Args:
168
- signed_url (str): The signed URL to download from.
169
- local_path (Optional[str]): The local path to save the file. If None, the file will not be saved.
170
-
171
- Returns:
172
- Optional[bytes]: The content of the downloaded file if local_path is None; otherwise, None.
173
- """
176
+ """Common method to download a file using a signed URL."""
174
177
  try:
175
178
  response = self.session.get(
176
- signed_url, stream=True, headers=self.headers, timeout=REQUEST_TIMEOUT
179
+ signed_url,
180
+ stream=True,
181
+ headers={"Content-Type": "application/octet-stream"},
182
+ timeout=REQUEST_TIMEOUT,
177
183
  )
178
184
  response.raise_for_status()
179
185
  if local_path:
180
186
  with open(local_path, "wb") as file:
181
187
  for chunk in response.iter_content(chunk_size=8192):
182
188
  file.write(chunk)
183
- return None # File saved successfully; no need to return content.
184
- return response.content # Return the content if not saving to a local path.
185
-
189
+ return None
190
+ return response.content
186
191
  except RequestException as e:
187
192
  raise RuntimeError(f"Failed to download file from {signed_url}: {e}") from e
188
193
 
189
194
  @log_time
190
195
  def download(self, storage_uri: str, local_path: str) -> Optional[str]:
191
- """Download a file from the specified storage path to a local path using a signed URL.
192
-
193
- Args:
194
- storage_uri (str): The storage URI to download the file from.
195
- local_path (str): The local path to save the downloaded file.
196
-
197
- Returns:
198
- Optional[str]: The local path if successful; None if the file is saved.
199
- """
200
- print(f"Dowloading {storage_uri} to {local_path}")
196
+ """Download a file from the specified storage path to a local path using a signed URL."""
197
+ logger.info(f"{LOG_PREFIX} Downloading {storage_uri} to {local_path}")
201
198
  response = self._make_server_api_call(
202
199
  endpoint=SignedURLServerEndpoint.READ,
203
200
  params={"uri": storage_uri, "expiryInSeconds": self.ttl},
201
+ headers=self.signed_url_server_headers,
204
202
  )
205
203
  presigned_object = SignedURLAPIResponseDto.parse_obj(response)
206
204
  self._download_file(presigned_object.signed_url, local_path)
207
205
  return local_path
208
206
 
209
207
  def download_to_bytes(self, storage_uri: str) -> bytes:
210
- """Download a file from the specified storage path and return it as bytes.
211
-
212
- Args:
213
- storage_uri (str): The storage URI to download the file from.
214
-
215
- Returns:
216
- bytes: The content of the downloaded file.
217
- """
208
+ """Download a file from the specified storage path and return it as bytes."""
218
209
  response = self._make_server_api_call(
219
210
  endpoint=SignedURLServerEndpoint.READ,
220
211
  params={"uri": storage_uri, "expiryInSeconds": self.ttl},
212
+ headers=self.signed_url_server_headers,
221
213
  )
222
214
  presigned_object = SignedURLAPIResponseDto.parse_obj(response)
223
215
  return self._download_file(presigned_object.signed_url)
@@ -225,22 +217,29 @@ class SignedURLClient:
225
217
  def exists(self, uri: str) -> bool:
226
218
  """Check if a file exists at the specified path."""
227
219
  response = self._make_server_api_call(
228
- endpoint=SignedURLServerEndpoint.EXISTS, params={"uri": uri}
220
+ endpoint=SignedURLServerEndpoint.EXISTS,
221
+ params={"uri": uri},
222
+ headers=self.signed_url_server_headers,
229
223
  )
230
- response_obj = SignedURLExistsAPIResponseDto.parse_obj(response)
231
- return response_obj.exists
224
+ return SignedURLExistsAPIResponseDto.parse_obj(response).exists
232
225
 
233
226
  def is_directory(self, uri: str) -> bool:
234
227
  """Check if the specified URI is a directory."""
235
228
  response = self._make_server_api_call(
236
- endpoint=SignedURLServerEndpoint.IS_DIRECTORY, params={"path": uri}
229
+ endpoint=SignedURLServerEndpoint.IS_DIRECTORY,
230
+ params={"path": uri},
231
+ headers=self.signed_url_server_headers,
237
232
  )
238
- response_obj = SignedURLIsDirectoryAPIResponseDto.parse_obj(response)
239
- print(f"Path {uri} is_directory: {response_obj.is_directory}")
240
- return response_obj.is_directory
233
+ is_directory = SignedURLIsDirectoryAPIResponseDto.parse_obj(
234
+ response
235
+ ).is_directory
236
+ logger.info(f"{LOG_PREFIX} Path {uri} is a directory: {is_directory}")
237
+ return is_directory
241
238
 
242
239
  @log_time
243
- def list_files(self, path: str, detail: bool = False, max_results: int = 1000):
240
+ def list_files(
241
+ self, path: str, detail: bool = False, max_results: int = 1000
242
+ ) -> Union[List[FileInfo], List[str]]:
244
243
  """List files in the specified directory."""
245
244
  token = ""
246
245
  items: List[FileInfo] = []
@@ -249,6 +248,7 @@ class SignedURLClient:
249
248
  response = self._make_server_api_call(
250
249
  endpoint=SignedURLServerEndpoint.LIST_FILES,
251
250
  params={"path": path, "maxResults": max_results, "pageToken": token},
251
+ headers=self.signed_url_server_headers,
252
252
  )
253
253
  response_obj = PagedList.parse_obj(response)
254
254
  items.extend(response_obj.items)
@@ -257,6 +257,4 @@ class SignedURLClient:
257
257
  break
258
258
 
259
259
  # Return the items or paths based on the detail flag
260
- if detail:
261
- return items
262
- return [item.path for item in items]
260
+ return items if detail else [item.path for item in items]
@@ -23,7 +23,7 @@ class SignedURLFileSystem(AbstractFileSystem):
23
23
 
24
24
  @log_time
25
25
  def exists(self, path, **kwargs):
26
- """Is there a file at the given path"""
26
+ """Check if a file exists at the given path."""
27
27
  return self.client.exists(path)
28
28
 
29
29
  @log_time
@@ -38,8 +38,8 @@ class SignedURLFileSystem(AbstractFileSystem):
38
38
  ):
39
39
  """Get file(s) to local"""
40
40
  # TODO: Add support for ThreadPoolExecutor here
41
- # TODO: Do a proper error handling here
42
41
  # TODO: Add support for async download
42
+ # TODO: Do a proper error handling here
43
43
  if self.isdir(rpath):
44
44
  if not recursive:
45
45
  raise ValueError(
@@ -52,7 +52,7 @@ class SignedURLFileSystem(AbstractFileSystem):
52
52
  for file_info in files:
53
53
  file_path = file_info.path.rstrip("/").rsplit("/")[-1]
54
54
 
55
- is_directory = file_info.is_directoy
55
+ is_directory = file_info.is_directory
56
56
  # Construct the relative path for local download
57
57
  relative_path = rpath.rstrip("/") + "/" + file_path
58
58
  target_local_path = lpath.rstrip("/") + "/" + file_path
@@ -71,16 +71,20 @@ class SignedURLFileSystem(AbstractFileSystem):
71
71
  **kwargs,
72
72
  )
73
73
  else:
74
- # Download the file
75
74
  self.client.download(
76
75
  storage_uri=relative_path, local_path=target_local_path
77
76
  )
78
77
 
79
78
  else:
79
+ # Ensure the directory exists first
80
80
  target_local_path = lpath
81
81
  if target_local_path.endswith("/"):
82
- Path(target_local_path).mkdir(parents=True, exist_ok=True)
83
- target_local_path = target_local_path + rpath.rsplit("/")[-1]
82
+ # If it ends with "/", it's a directory, so create the directory first
83
+ target_local_path = os.path.join(
84
+ target_local_path, rpath.rsplit("/", 1)[-1]
85
+ )
86
+ # Create the directory for the target file path (common for both cases)
87
+ Path(os.path.dirname(target_local_path)).mkdir(parents=True, exist_ok=True)
84
88
  self.client.download(storage_uri=rpath, local_path=target_local_path)
85
89
 
86
90
  @log_time
@@ -126,7 +130,8 @@ class SignedURLFileSystem(AbstractFileSystem):
126
130
  )
127
131
  return None
128
132
  else:
129
- # Handle single file upload
133
+ if rpath.endswith("/"):
134
+ rpath = os.path.join(rpath, local_path.name)
130
135
  return self.client.upload(file_path=lpath, storage_uri=rpath)
131
136
 
132
137
  @log_time
@@ -189,6 +194,7 @@ class SignedURLFileSystem(AbstractFileSystem):
189
194
  class SignedURLBufferedFile(AbstractBufferedFile):
190
195
  """
191
196
  Buffered file implementation for Signed URL-based file system.
197
+ # TODO: Need to test this implementation
192
198
  """
193
199
 
194
200
  def __init__(