truss 0.10.9rc601__tar.gz → 0.10.10__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 truss might be problematic. Click here for more details.

Files changed (409) hide show
  1. {truss-0.10.9rc601 → truss-0.10.10}/PKG-INFO +2 -2
  2. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/python_bindings/README.md +4 -4
  3. {truss-0.10.9rc601 → truss-0.10.10}/pyproject.toml +3 -2
  4. {truss-0.10.9rc601 → truss-0.10.10}/truss/base/constants.py +0 -1
  5. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/train/deploy_checkpoints/deploy_checkpoints.py +30 -22
  6. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/train/deploy_checkpoints/deploy_checkpoints_helpers.py +8 -2
  7. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/train/deploy_checkpoints/deploy_full_checkpoints.py +2 -2
  8. truss-0.10.10/truss/cli/train/deploy_checkpoints/deploy_whisper_checkpoints.py +63 -0
  9. truss-0.10.10/truss/cli/train/deploy_from_checkpoint_config_whisper.yml +17 -0
  10. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/train_commands.py +11 -3
  11. {truss-0.10.9rc601 → truss-0.10.10}/truss/contexts/image_builder/cache_warmer.py +1 -3
  12. {truss-0.10.9rc601 → truss-0.10.10}/truss/contexts/image_builder/serving_image_builder.py +24 -32
  13. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/baseten/api.py +11 -0
  14. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/baseten/core.py +209 -1
  15. truss-0.10.10/truss/remote/baseten/utils/time.py +15 -0
  16. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server/model_wrapper.py +0 -12
  17. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server/requirements.txt +1 -1
  18. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server/truss_server.py +0 -13
  19. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server.Dockerfile.jinja +1 -1
  20. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/cli/train/test_deploy_checkpoints.py +436 -0
  21. truss-0.10.10/truss/tests/remote/baseten/conftest.py +18 -0
  22. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/remote/baseten/test_api.py +49 -14
  23. truss-0.10.10/truss/tests/remote/baseten/test_core.py +763 -0
  24. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_openai/model/model.py +0 -3
  25. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/truss_handle.py +0 -1
  26. {truss-0.10.9rc601 → truss-0.10.10}/truss-train/truss_train/definitions.py +6 -0
  27. {truss-0.10.9rc601 → truss-0.10.10}/truss-train/truss_train/deployment.py +15 -2
  28. {truss-0.10.9rc601 → truss-0.10.10}/truss-transfer/README.md +2 -2
  29. truss-0.10.9rc601/truss/tests/remote/baseten/test_core.py +0 -247
  30. truss-0.10.9rc601/truss/tests/util/test_basetenpointer.py +0 -227
  31. truss-0.10.9rc601/truss/util/basetenpointer.py +0 -160
  32. {truss-0.10.9rc601 → truss-0.10.10}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  33. {truss-0.10.9rc601 → truss-0.10.10}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  34. {truss-0.10.9rc601 → truss-0.10.10}/.github/pull_request_template.md +0 -0
  35. {truss-0.10.9rc601 → truss-0.10.10}/.gitignore +0 -0
  36. {truss-0.10.9rc601 → truss-0.10.10}/CODE_OF_CONDUCT.md +0 -0
  37. {truss-0.10.9rc601 → truss-0.10.10}/CONTRIBUTING.md +0 -0
  38. {truss-0.10.9rc601 → truss-0.10.10}/LICENSE +0 -0
  39. {truss-0.10.9rc601 → truss-0.10.10}/README.md +0 -0
  40. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/README.md +0 -0
  41. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/README.md +0 -0
  42. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/android-arm-eabi/README.md +0 -0
  43. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/android-arm64/README.md +0 -0
  44. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/darwin-arm64/README.md +0 -0
  45. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/darwin-universal/README.md +0 -0
  46. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/darwin-x64/README.md +0 -0
  47. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/freebsd-x64/README.md +0 -0
  48. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/linux-arm-gnueabihf/README.md +0 -0
  49. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/linux-arm-musleabihf/README.md +0 -0
  50. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/linux-arm64-gnu/README.md +0 -0
  51. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/linux-arm64-musl/README.md +0 -0
  52. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/linux-riscv64-gnu/README.md +0 -0
  53. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/linux-x64-gnu/README.md +0 -0
  54. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/linux-x64-musl/README.md +0 -0
  55. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/win32-arm64-msvc/README.md +0 -0
  56. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/win32-ia32-msvc/README.md +0 -0
  57. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/node_bindings/npm/win32-x64-msvc/README.md +0 -0
  58. {truss-0.10.9rc601 → truss-0.10.10}/baseten-performance-client/scripts/README_nodejs.md +0 -0
  59. {truss-0.10.9rc601 → truss-0.10.10}/context_builder.Dockerfile +0 -0
  60. {truss-0.10.9rc601 → truss-0.10.10}/docs/README.md +0 -0
  61. {truss-0.10.9rc601 → truss-0.10.10}/docs/chains/doc_gen/README.md +0 -0
  62. {truss-0.10.9rc601 → truss-0.10.10}/docs/contribute/base-images.md +0 -0
  63. {truss-0.10.9rc601 → truss-0.10.10}/docs/contribute/release.md +0 -0
  64. {truss-0.10.9rc601 → truss-0.10.10}/truss/__init__.py +0 -0
  65. {truss-0.10.9rc601 → truss-0.10.10}/truss/api/__init__.py +0 -0
  66. {truss-0.10.9rc601 → truss-0.10.10}/truss/api/definitions.py +0 -0
  67. {truss-0.10.9rc601 → truss-0.10.10}/truss/base/__init__.py +0 -0
  68. {truss-0.10.9rc601 → truss-0.10.10}/truss/base/custom_types.py +0 -0
  69. {truss-0.10.9rc601 → truss-0.10.10}/truss/base/errors.py +0 -0
  70. {truss-0.10.9rc601 → truss-0.10.10}/truss/base/trt_llm_config.py +0 -0
  71. {truss-0.10.9rc601 → truss-0.10.10}/truss/base/truss_config.py +0 -0
  72. {truss-0.10.9rc601 → truss-0.10.10}/truss/base/truss_spec.py +0 -0
  73. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/chains_commands.py +0 -0
  74. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/cli.py +0 -0
  75. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/logs/base_watcher.py +0 -0
  76. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/logs/model_log_watcher.py +0 -0
  77. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/logs/training_log_watcher.py +0 -0
  78. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/logs/utils.py +0 -0
  79. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/remote_cli.py +0 -0
  80. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/train/common.py +0 -0
  81. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/train/core.py +0 -0
  82. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/train/deploy_checkpoints/__init__.py +0 -0
  83. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/train/deploy_checkpoints/deploy_lora_checkpoints.py +0 -0
  84. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/train/deploy_from_checkpoint_config.yml +0 -0
  85. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/train/metrics_watcher.py +0 -0
  86. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/train/poller.py +0 -0
  87. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/train/types.py +0 -0
  88. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/utils/common.py +0 -0
  89. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/utils/output.py +0 -0
  90. {truss-0.10.9rc601 → truss-0.10.10}/truss/cli/utils/self_upgrade.py +0 -0
  91. {truss-0.10.9rc601 → truss-0.10.10}/truss/contexts/docker_build_setup.py +0 -0
  92. {truss-0.10.9rc601 → truss-0.10.10}/truss/contexts/image_builder/image_builder.py +0 -0
  93. {truss-0.10.9rc601 → truss-0.10.10}/truss/contexts/image_builder/util.py +0 -0
  94. {truss-0.10.9rc601 → truss-0.10.10}/truss/contexts/local_loader/docker_build_emulator.py +0 -0
  95. {truss-0.10.9rc601 → truss-0.10.10}/truss/contexts/local_loader/dockerfile_parser.py +0 -0
  96. {truss-0.10.9rc601 → truss-0.10.10}/truss/contexts/local_loader/load_model_local.py +0 -0
  97. {truss-0.10.9rc601 → truss-0.10.10}/truss/contexts/local_loader/truss_module_loader.py +0 -0
  98. {truss-0.10.9rc601 → truss-0.10.10}/truss/contexts/local_loader/utils.py +0 -0
  99. {truss-0.10.9rc601 → truss-0.10.10}/truss/contexts/truss_context.py +0 -0
  100. {truss-0.10.9rc601 → truss-0.10.10}/truss/local/local_config.py +0 -0
  101. {truss-0.10.9rc601 → truss-0.10.10}/truss/local/local_config_handler.py +0 -0
  102. {truss-0.10.9rc601 → truss-0.10.10}/truss/patch/__init__.py +0 -0
  103. {truss-0.10.9rc601 → truss-0.10.10}/truss/patch/hash.py +0 -0
  104. {truss-0.10.9rc601 → truss-0.10.10}/truss/patch/signature.py +0 -0
  105. {truss-0.10.9rc601 → truss-0.10.10}/truss/patch/truss_dir_patch_applier.py +0 -0
  106. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/baseten/__init__.py +0 -0
  107. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/baseten/auth.py +0 -0
  108. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/baseten/custom_types.py +0 -0
  109. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/baseten/error.py +0 -0
  110. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/baseten/remote.py +0 -0
  111. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/baseten/rest_client.py +0 -0
  112. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/baseten/service.py +0 -0
  113. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/baseten/utils/status.py +0 -0
  114. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/baseten/utils/tar.py +0 -0
  115. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/baseten/utils/transfer.py +0 -0
  116. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/remote_factory.py +0 -0
  117. {truss-0.10.9rc601 → truss-0.10.10}/truss/remote/truss_remote.py +0 -0
  118. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/README.md.jinja +0 -0
  119. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/__init__.py +0 -0
  120. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/base.Dockerfile.jinja +0 -0
  121. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/cache.Dockerfile.jinja +0 -0
  122. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/cache_requirements.txt +0 -0
  123. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/application.py +0 -0
  124. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/endpoints.py +0 -0
  125. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/helpers/context_managers.py +0 -0
  126. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/helpers/custom_types.py +0 -0
  127. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/helpers/errors.py +0 -0
  128. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/helpers/inference_server_controller.py +0 -0
  129. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/helpers/inference_server_process_controller.py +0 -0
  130. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/helpers/inference_server_starter.py +0 -0
  131. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/helpers/truss_patch/__init__.py +0 -0
  132. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/helpers/truss_patch/model_code_patch_applier.py +0 -0
  133. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/helpers/truss_patch/model_container_patch_applier.py +0 -0
  134. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/helpers/truss_patch/requirement_name_identifier.py +0 -0
  135. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/helpers/truss_patch/system_packages.py +0 -0
  136. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/control/server.py +0 -0
  137. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/control/requirements.txt +0 -0
  138. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/copy_cache_files.Dockerfile.jinja +0 -0
  139. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/custom/examples.yaml +0 -0
  140. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/custom/model/__init__.py +0 -0
  141. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/custom/model/model.py +0 -0
  142. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/custom_python_dx/my_model.py +0 -0
  143. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/docker_server/proxy.conf.jinja +0 -0
  144. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/docker_server/supervisord.conf.jinja +0 -0
  145. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/docker_server_requirements.txt +0 -0
  146. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server/__init__.py +0 -0
  147. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server/common/__init__.py +0 -0
  148. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server/common/errors.py +0 -0
  149. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server/common/patches/whisper/patch.py +0 -0
  150. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server/common/patches.py +0 -0
  151. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server/common/retry.py +0 -0
  152. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server/common/schema.py +0 -0
  153. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server/common/tracing.py +0 -0
  154. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/server/main.py +0 -0
  155. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/shared/__init__.py +0 -0
  156. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/shared/dynamic_config_resolver.py +0 -0
  157. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/shared/lazy_data_resolver.py +0 -0
  158. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/shared/log_config.py +0 -0
  159. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/shared/secrets_resolver.py +0 -0
  160. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/shared/serialization.py +0 -0
  161. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/shared/util.py +0 -0
  162. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/trtllm-audio/model/model.py +0 -0
  163. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/trtllm-audio/packages/sigint_patch.py +0 -0
  164. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/trtllm-audio/packages/whisper_trt/__init__.py +0 -0
  165. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/trtllm-audio/packages/whisper_trt/assets.py +0 -0
  166. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/trtllm-audio/packages/whisper_trt/batching.py +0 -0
  167. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/trtllm-audio/packages/whisper_trt/custom_types.py +0 -0
  168. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/trtllm-audio/packages/whisper_trt/modeling.py +0 -0
  169. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/trtllm-audio/packages/whisper_trt/tokenizer.py +0 -0
  170. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/trtllm-audio/packages/whisper_trt/utils.py +0 -0
  171. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/trtllm-briton/README.md +0 -0
  172. {truss-0.10.9rc601 → truss-0.10.10}/truss/templates/trtllm-briton/src/extension.py +0 -0
  173. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/__init__.py +0 -0
  174. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/cli/test_cli.py +0 -0
  175. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/cli/train/resources/test_deploy_from_checkpoint_config.yml +0 -0
  176. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/cli/train/test_train_cli_core.py +0 -0
  177. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/conftest.py +0 -0
  178. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/contexts/image_builder/test_serving_image_builder.py +1 -1
  179. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/contexts/local_loader/test_load_local.py +0 -0
  180. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/contexts/local_loader/test_truss_module_finder.py +0 -0
  181. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/helpers.py +0 -0
  182. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/local/test_local_config_handler.py +0 -0
  183. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/patch/test_calc_patch.py +0 -0
  184. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/patch/test_dir_signature.py +0 -0
  185. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/patch/test_hash.py +0 -0
  186. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/patch/test_signature.py +0 -0
  187. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/patch/test_truss_dir_patch_applier.py +0 -0
  188. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/patch/test_types.py +0 -0
  189. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/remote/baseten/test_auth.py +0 -0
  190. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/remote/baseten/test_remote.py +0 -0
  191. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/remote/baseten/test_service.py +0 -0
  192. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/remote/test_remote_factory.py +0 -0
  193. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/remote/test_truss_remote.py +0 -0
  194. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/control/control/helpers/test_context_managers.py +0 -0
  195. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/control/control/helpers/test_model_container_patch_applier.py +0 -0
  196. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/control/control/helpers/test_requirement_name_identifier.py +0 -0
  197. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/control/control/test_endpoints.py +0 -0
  198. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/control/control/test_server.py +0 -0
  199. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/control/control/test_server_integration.py +0 -0
  200. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/core/server/test_dynamic_config_resolver.py +0 -0
  201. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/core/server/test_lazy_data_resolver_v2.py +0 -0
  202. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/core/server/test_secrets_resolver.py +0 -0
  203. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/server/common/test_retry.py +0 -0
  204. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/server/test_model_wrapper.py +0 -0
  205. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/server/test_schema.py +0 -0
  206. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/templates/server/test_truss_server.py +0 -0
  207. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_build.py +0 -0
  208. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_config.py +0 -0
  209. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_context_builder_image.py +0 -0
  210. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_control_truss_patching.py +0 -0
  211. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_custom_server.py +0 -0
  212. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/__init__.py +0 -0
  213. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/annotated_types_truss/__init__.py +0 -0
  214. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/annotated_types_truss/config.yaml +0 -0
  215. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/annotated_types_truss/model/__init__.py +0 -0
  216. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/annotated_types_truss/model/model.py +0 -0
  217. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/auto-mpg.data +0 -0
  218. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/context_builder_image_test/Dockerfile +0 -0
  219. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/context_builder_image_test/__init__.py +0 -0
  220. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/context_builder_image_test/test.py +0 -0
  221. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/gcs_fix/__init__.py +0 -0
  222. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/gcs_fix/config.yaml +0 -0
  223. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/gcs_fix/model/__init__.py +0 -0
  224. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/gcs_fix/model/model.py +0 -0
  225. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/happy.ipynb +0 -0
  226. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/model_load_failure_test/__init__.py +0 -0
  227. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/model_load_failure_test/config.yaml +0 -0
  228. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/model_load_failure_test/model/__init__.py +0 -0
  229. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/model_load_failure_test/model/model.py +0 -0
  230. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/patch_ping_test_server/__init__.py +0 -0
  231. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/patch_ping_test_server/app.py +0 -0
  232. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/pima-indians-diabetes.csv +0 -0
  233. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/readme_int_example.md +0 -0
  234. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/readme_no_example.md +0 -0
  235. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/readme_str_example.md +0 -0
  236. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/server.Dockerfile +0 -0
  237. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/server_conformance_test_truss/__init__.py +0 -0
  238. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/server_conformance_test_truss/config.yaml +0 -0
  239. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/server_conformance_test_truss/model/__init__.py +0 -0
  240. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/server_conformance_test_truss/model/model.py +0 -0
  241. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_async_truss/__init__.py +0 -0
  242. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_async_truss/config.yaml +0 -0
  243. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_async_truss/model/__init__.py +0 -0
  244. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_async_truss/model/model.py +0 -0
  245. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_basic_truss/__init__.py +0 -0
  246. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_basic_truss/config.yaml +0 -0
  247. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_basic_truss/model/__init__.py +0 -0
  248. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_basic_truss/model/model.py +0 -0
  249. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_build_commands/__init__.py +0 -0
  250. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_build_commands/config.yaml +0 -0
  251. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_build_commands/model/__init__.py +0 -0
  252. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_build_commands/model/model.py +0 -0
  253. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_build_commands_failure/__init__.py +0 -0
  254. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_build_commands_failure/config.yaml +0 -0
  255. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_build_commands_failure/model/__init__.py +0 -0
  256. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_build_commands_failure/model/model.py +0 -0
  257. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_concurrency_truss/__init__.py +0 -0
  258. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_concurrency_truss/config.yaml +0 -0
  259. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_concurrency_truss/model/__init__.py +0 -0
  260. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_concurrency_truss/model/model.py +0 -0
  261. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_custom_server_truss/__init__.py +0 -0
  262. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_custom_server_truss/config.yaml +0 -0
  263. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_custom_server_truss/test_docker_image/Dockerfile +0 -0
  264. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_custom_server_truss/test_docker_image/README.md +0 -0
  265. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_custom_server_truss/test_docker_image/VERSION +0 -0
  266. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_custom_server_truss/test_docker_image/__init__.py +0 -0
  267. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_custom_server_truss/test_docker_image/app.py +0 -0
  268. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_custom_server_truss/test_docker_image/build_upload_new_image.sh +0 -0
  269. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_env_vars/config.yaml +0 -0
  270. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_go_custom_server_truss/config.yaml +0 -0
  271. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_go_custom_server_truss/docker/Dockerfile +0 -0
  272. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_go_custom_server_truss/docker/README.md +0 -0
  273. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_go_custom_server_truss/docker/VERSION +0 -0
  274. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_go_custom_server_truss/docker/build_upload_new_image.sh +0 -0
  275. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_go_custom_server_truss/docker/main.go +0 -0
  276. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_openai/__init__.py +0 -0
  277. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_openai/config.yaml +0 -0
  278. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_openai/model/__init__.py +0 -0
  279. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_pyantic_v1/__init__.py +0 -0
  280. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_pyantic_v1/config.yaml +0 -0
  281. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_pyantic_v1/model/__init__.py +0 -0
  282. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_pyantic_v1/model/model.py +0 -0
  283. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_pyantic_v1/requirements.txt +0 -0
  284. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_pyantic_v2/__init__.py +0 -0
  285. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_pyantic_v2/config.yaml +0 -0
  286. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_pyantic_v2/model/__init__.py +0 -0
  287. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_pyantic_v2/model/model.py +0 -0
  288. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_pyantic_v2/requirements.txt +0 -0
  289. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_requirements_file_truss/__init__.py +0 -0
  290. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_requirements_file_truss/config.yaml +0 -0
  291. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_requirements_file_truss/model/__init__.py +0 -0
  292. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_requirements_file_truss/model/model.py +0 -0
  293. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_requirements_file_truss/requirements.txt +0 -0
  294. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_async_generator_truss/__init__.py +0 -0
  295. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_async_generator_truss/config.yaml +0 -0
  296. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_async_generator_truss/model/__init__.py +0 -0
  297. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_async_generator_truss/model/model.py +0 -0
  298. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_read_timeout/__init__.py +0 -0
  299. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_read_timeout/config.yaml +0 -0
  300. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_read_timeout/model/__init__.py +0 -0
  301. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_read_timeout/model/model.py +0 -0
  302. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss/__init__.py +0 -0
  303. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss/config.yaml +0 -0
  304. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss/model/__init__.py +0 -0
  305. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss/model/model.py +0 -0
  306. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss_with_error/__init__.py +0 -0
  307. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss_with_error/config.yaml +0 -0
  308. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss_with_error/model/__init__.py +0 -0
  309. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss_with_error/model/model.py +0 -0
  310. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss_with_error/packages/__init__.py +0 -0
  311. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss_with_error/packages/helpers_1.py +0 -0
  312. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss_with_error/packages/helpers_2.py +0 -0
  313. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss_with_tracing/__init__.py +0 -0
  314. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss_with_tracing/config.yaml +0 -0
  315. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss_with_tracing/model/__init__.py +0 -0
  316. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_streaming_truss_with_tracing/model/model.py +0 -0
  317. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_trt_llm_truss/__init__.py +0 -0
  318. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_trt_llm_truss/config.yaml +0 -0
  319. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_trt_llm_truss/model/__init__.py +0 -0
  320. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_trt_llm_truss/model/model.py +0 -0
  321. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss/__init__.py +0 -0
  322. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss/config.yaml +0 -0
  323. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss/examples.yaml +0 -0
  324. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss/model/__init__.py +0 -0
  325. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss/model/dummy +0 -0
  326. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss/model/model.py +0 -0
  327. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss/packages/__init__.py +0 -0
  328. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss/packages/test_package/__init__.py +0 -0
  329. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss/packages/test_package/test.py +0 -0
  330. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_server_model_cache_v1/__init__.py +0 -0
  331. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_server_model_cache_v1/config.yaml +0 -0
  332. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_server_model_cache_v1/model/__init__.py +0 -0
  333. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_server_model_cache_v1/model/model.py +0 -0
  334. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_server_model_cache_v2/__init__.py +0 -0
  335. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_server_model_cache_v2/config.yaml +0 -0
  336. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_server_model_cache_v2/model/__init__.py +0 -0
  337. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_server_model_cache_v2/model/model.py +0 -0
  338. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_with_error/__init__.py +0 -0
  339. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_with_error/config.yaml +0 -0
  340. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_with_error/model/__init__.py +0 -0
  341. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_with_error/model/model.py +0 -0
  342. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_with_error/packages/__init__.py +0 -0
  343. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_with_error/packages/helpers_1.py +0 -0
  344. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_data/test_truss_with_error/packages/helpers_2.py +0 -0
  345. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_docker.py +0 -0
  346. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_model_inference.py +0 -0
  347. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_model_schema.py +0 -0
  348. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_testing_utilities_for_other_tests.py +0 -0
  349. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_truss_gatherer.py +0 -0
  350. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_truss_handle.py +0 -0
  351. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/test_util.py +0 -0
  352. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/trt_llm/test_trt_llm_config.py +0 -0
  353. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/trt_llm/test_validation.py +0 -0
  354. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/util/test_config_checks.py +0 -0
  355. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/util/test_env_vars.py +0 -0
  356. {truss-0.10.9rc601 → truss-0.10.10}/truss/tests/util/test_path.py +0 -0
  357. {truss-0.10.9rc601 → truss-0.10.10}/truss/trt_llm/config_checks.py +0 -0
  358. {truss-0.10.9rc601 → truss-0.10.10}/truss/trt_llm/validation.py +0 -0
  359. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/__init__.py +0 -0
  360. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/build.py +0 -0
  361. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/decorators.py +0 -0
  362. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/patch/__init__.py +0 -0
  363. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/patch/calc_patch.py +0 -0
  364. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/patch/constants.py +0 -0
  365. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/patch/custom_types.py +0 -0
  366. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/patch/dir_signature.py +0 -0
  367. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/patch/hash.py +0 -0
  368. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/patch/local_truss_patch_applier.py +0 -0
  369. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/patch/signature.py +0 -0
  370. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/patch/truss_dir_patch_applier.py +0 -0
  371. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/readme_generator.py +0 -0
  372. {truss-0.10.9rc601 → truss-0.10.10}/truss/truss_handle/truss_gatherer.py +0 -0
  373. {truss-0.10.9rc601 → truss-0.10.10}/truss/util/.truss_ignore +0 -0
  374. {truss-0.10.9rc601 → truss-0.10.10}/truss/util/docker.py +0 -0
  375. {truss-0.10.9rc601 → truss-0.10.10}/truss/util/download.py +0 -0
  376. {truss-0.10.9rc601 → truss-0.10.10}/truss/util/env_vars.py +0 -0
  377. {truss-0.10.9rc601 → truss-0.10.10}/truss/util/gpu.py +0 -0
  378. {truss-0.10.9rc601 → truss-0.10.10}/truss/util/jinja.py +0 -0
  379. {truss-0.10.9rc601 → truss-0.10.10}/truss/util/log_utils.py +0 -0
  380. {truss-0.10.9rc601 → truss-0.10.10}/truss/util/notebook.py +0 -0
  381. {truss-0.10.9rc601 → truss-0.10.10}/truss/util/path.py +0 -0
  382. {truss-0.10.9rc601 → truss-0.10.10}/truss/util/requirements.py +0 -0
  383. {truss-0.10.9rc601 → truss-0.10.10}/truss/util/user_config.py +0 -0
  384. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/examples/README.md +0 -0
  385. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/examples/audio-transcription/README.md +0 -0
  386. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/examples/rag/README.md +0 -0
  387. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/tests/itest_chain/requirements.txt +0 -0
  388. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/__init__.py +0 -0
  389. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/deployment/__init__.py +0 -0
  390. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/deployment/code_gen.py +0 -0
  391. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/deployment/deployment_client.py +0 -0
  392. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/framework.py +0 -0
  393. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/private_types.py +0 -0
  394. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/public_api.py +0 -0
  395. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/public_types.py +0 -0
  396. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/py.typed +0 -0
  397. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/pydantic_numpy.py +0 -0
  398. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/reference_code/reference_chainlet.py +0 -0
  399. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/reference_code/reference_model.py +0 -0
  400. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/remote_chainlet/__init__.py +0 -0
  401. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/remote_chainlet/model_skeleton.py +0 -0
  402. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/remote_chainlet/stub.py +0 -0
  403. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/remote_chainlet/utils.py +0 -0
  404. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/streaming.py +0 -0
  405. {truss-0.10.9rc601 → truss-0.10.10}/truss-chains/truss_chains/utils.py +0 -0
  406. {truss-0.10.9rc601 → truss-0.10.10}/truss-train/truss_train/__init__.py +0 -0
  407. {truss-0.10.9rc601 → truss-0.10.10}/truss-train/truss_train/loader.py +0 -0
  408. {truss-0.10.9rc601 → truss-0.10.10}/truss-train/truss_train/public_api.py +0 -0
  409. {truss-0.10.9rc601 → truss-0.10.10}/truss-transfer/tests/README.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: truss
3
- Version: 0.10.9rc601
3
+ Version: 0.10.10
4
4
  Summary: A seamless bridge from model development to model delivery
5
5
  Project-URL: Repository, https://github.com/basetenlabs/truss
6
6
  Project-URL: Homepage, https://truss.baseten.co
@@ -37,7 +37,7 @@ Requires-Dist: rich<14,>=13.4.2
37
37
  Requires-Dist: ruff>=0.4.8
38
38
  Requires-Dist: tenacity>=8.0.1
39
39
  Requires-Dist: tomlkit>=0.13.2
40
- Requires-Dist: truss-transfer==0.0.27
40
+ Requires-Dist: truss-transfer==0.0.29
41
41
  Requires-Dist: watchfiles<0.20,>=0.19.0
42
42
  Description-Content-Type: text/markdown
43
43
 
@@ -1,6 +1,6 @@
1
1
  # High performance client for Baseten.co
2
2
 
3
- This library provides a high-performance Python client for Baseten.co endpoints including embeddings, reranking, and classification. It was built for massive concurrent post requests to any URL, also outside of baseten.co. PerformanceClient releases the GIL while performing requests in the Rust, and supports simulaneous sync and async usage. It was benchmarked with >1200 rps per client in [our blog](https://www.baseten.co/blog/your-client-code-matters-10x-higher-embedding-throughput-with-python-and-rust/). PerformanceClient is built on top of pyo3, reqwest and tokio and is MIT licensed.
3
+ This library provides a high-performance Python client for Baseten.co endpoints including embeddings, reranking, and classification. It was built for massive concurrent post requests to any URL, also outside of baseten.co. PerformanceClient releases the GIL while performing requests in the Rust, and supports simultaneous sync and async usage. It was benchmarked with >1200 rps per client in [our blog](https://www.baseten.co/blog/your-client-code-matters-10x-higher-embedding-throughput-with-python-and-rust/). PerformanceClient is built on top of pyo3, reqwest and tokio and is MIT licensed.
4
4
 
5
5
  ![benchmarks](https://www.baseten.co/_next/image/?url=https%3A%2F%2Fwww.datocms-assets.com%2F104802%2F1749832130-diagram-9.png%3Fauto%3Dformat%26fit%3Dmax%26w%3D1200&w=3840&q=75)
6
6
 
@@ -93,7 +93,7 @@ Comparison against `pip install openai` for `/v1/embeddings`. Tested with the `.
93
93
  | 131 072 | 1 024 | 4.63 | 39.07 | 8.44× |
94
94
  | 2 097 152 | 16 384 | 70.92 | 903.68 | 12.74× |
95
95
 
96
- ### Gerneral Batch POST
96
+ ### General Batch POST
97
97
 
98
98
  The batch_post method is generic. It can be used to send POST requests to any URL, not limited to Baseten endpoints. The input and output can be any JSON item.
99
99
 
@@ -179,7 +179,7 @@ async def async_rerank():
179
179
  ```
180
180
 
181
181
  ### Classification
182
- Predicy (classification endpoint) compatible with BEI or text-embeddings-inference.
182
+ Predict (classification endpoint) compatible with BEI or text-embeddings-inference.
183
183
  #### Synchronous Classification
184
184
 
185
185
  ```python
@@ -230,7 +230,7 @@ Here's an example demonstrating how to catch these errors for the `embed` method
230
230
  ```python
231
231
  import requests
232
232
 
233
- # client = PerformanceClient(base_url="your_b10_url", api_key="your_b10_api_key")
233
+ # client = PerformanceClient(base_url="your_baseten_url", api_key="your_baseten_api_key")
234
234
 
235
235
  texts_to_embed = ["Hello world", "Another text example"]
236
236
  try:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "truss"
3
- version = "0.10.9rc601"
3
+ version = "0.10.10"
4
4
  description = "A seamless bridge from model development to model delivery"
5
5
  authors = [
6
6
  { name = "Pankaj Gupta", email = "no-reply@baseten.co" },
@@ -43,7 +43,7 @@ dependencies = [
43
43
  "ruff>=0.4.8",
44
44
  "tenacity>=8.0.1",
45
45
  "watchfiles>=0.19.0,<0.20",
46
- "truss-transfer==0.0.27",
46
+ "truss-transfer==0.0.29",
47
47
  ]
48
48
 
49
49
  [project.urls]
@@ -78,6 +78,7 @@ dev = [
78
78
  "types-aiofiles>=24.1.0",
79
79
  "types-requests==2.31.0.2",
80
80
  "types-setuptools>=69.0.0.0,<70",
81
+ "types-python-dateutil>=2.9.0.20250822",
81
82
  ]
82
83
  dev-server = [
83
84
  "aiohttp>3.11.13",
@@ -29,7 +29,6 @@ BEI_REQUIRED_MAX_NUM_TOKENS = 16384
29
29
  TRTLLM_MIN_MEMORY_REQUEST_GI = 10
30
30
  HF_MODELS_API_URL = "https://huggingface.co/api/models"
31
31
  HF_ACCESS_TOKEN_KEY = "hf_access_token"
32
- HF_ACCESS_TOKEN_FILE_NAME = "hf_access_token"
33
32
  TRUSSLESS_MAX_PAYLOAD_SIZE = "64M"
34
33
  # Alias for TEMPLATES_DIR
35
34
  SERVING_DIR: pathlib.Path = TEMPLATES_DIR
@@ -33,6 +33,10 @@ from .deploy_lora_checkpoints import (
33
33
  hydrate_lora_checkpoint,
34
34
  render_vllm_lora_truss_config,
35
35
  )
36
+ from .deploy_whisper_checkpoints import (
37
+ hydrate_whisper_checkpoint,
38
+ render_vllm_whisper_truss_config,
39
+ )
36
40
 
37
41
  HF_TOKEN_ENVVAR_NAME = "HF_TOKEN"
38
42
  # If we change this, make sure to update the logic in backend codebase
@@ -178,6 +182,8 @@ def hydrate_checkpoint(
178
182
  return hydrate_lora_checkpoint(job_id, checkpoint_id, checkpoint)
179
183
  elif checkpoint_type.lower() == ModelWeightsFormat.FULL.value:
180
184
  return hydrate_full_checkpoint(job_id, checkpoint_id, checkpoint)
185
+ elif checkpoint_type.lower() == ModelWeightsFormat.WHISPER.value:
186
+ return hydrate_whisper_checkpoint(job_id, checkpoint_id, checkpoint)
181
187
  else:
182
188
  raise ValueError(
183
189
  f"Unsupported checkpoint type: {checkpoint_type}. Contact Baseten for support with other checkpoint types."
@@ -196,6 +202,8 @@ def _render_truss_config_for_checkpoint_deployment(
196
202
  return render_vllm_lora_truss_config(checkpoint_deploy)
197
203
  elif checkpoint_deploy.model_weight_format == ModelWeightsFormat.FULL:
198
204
  return render_vllm_full_truss_config(checkpoint_deploy)
205
+ elif checkpoint_deploy.model_weight_format == ModelWeightsFormat.WHISPER:
206
+ return render_vllm_whisper_truss_config(checkpoint_deploy)
199
207
  else:
200
208
  raise ValueError(
201
209
  f"Unsupported model weight format: {checkpoint_deploy.model_weight_format}. Please upgrade to the latest Truss version to access the latest supported formats. Contact Baseten if you would like us to support additional formats."
@@ -288,18 +296,6 @@ def _get_checkpoint_ids_to_deploy(
288
296
  return checkpoint_ids
289
297
 
290
298
 
291
- def _select_single_checkpoint(checkpoint_id_options: List[str]) -> List[str]:
292
- """Select a single checkpoint using interactive prompt."""
293
- checkpoint_id = inquirer.select(
294
- message="Select the checkpoint to deploy:", choices=checkpoint_id_options
295
- ).execute()
296
-
297
- if not checkpoint_id:
298
- raise click.UsageError("A checkpoint must be selected.")
299
-
300
- return [checkpoint_id]
301
-
302
-
303
299
  def _select_multiple_checkpoints(checkpoint_id_options: List[str]) -> List[str]:
304
300
  """Select multiple checkpoints using interactive checkbox."""
305
301
  checkpoint_ids = inquirer.checkbox(
@@ -351,6 +347,8 @@ def _get_base_model_id(user_input: Optional[str], checkpoint: dict) -> Optional[
351
347
  )
352
348
  elif checkpoint.get("checkpoint_type") == ModelWeightsFormat.FULL.value.lower():
353
349
  return None
350
+ elif checkpoint.get("checkpoint_type") == ModelWeightsFormat.WHISPER.value.lower():
351
+ return None
354
352
  else:
355
353
  base_model_id = inquirer.text(message="Enter the base model id.").execute()
356
354
  if not base_model_id:
@@ -416,18 +414,28 @@ def _validate_selected_checkpoints(
416
414
  "Unable to infer model weight format. Reach out to Baseten for support."
417
415
  )
418
416
 
419
- has_full_checkpoint = any(
420
- response_checkpoints[checkpoint_id].get("checkpoint_type")
421
- == ModelWeightsFormat.FULL.value
422
- for checkpoint_id in checkpoint_ids
423
- )
424
-
425
- if has_full_checkpoint and len(checkpoint_ids) > 1:
426
- # vLLM does not support multiple checkpoints when any checkpoint is full model weights.
427
- raise ValueError(
428
- "Full checkpoints are not supported for multiple checkpoints. Please select a single checkpoint."
417
+ validation_rules = {
418
+ ModelWeightsFormat.FULL.value: {
419
+ "error_message": "Full checkpoints are not supported for multiple checkpoints. Please select a single checkpoint.",
420
+ "reason": "vLLM does not support multiple checkpoints when any checkpoint is full model weights.",
421
+ },
422
+ ModelWeightsFormat.WHISPER.value: {
423
+ "error_message": "Whisper checkpoints are not supported for multiple checkpoints. Please select a single checkpoint.",
424
+ "reason": "vLLM does not support multiple checkpoints when any checkpoint is whisper model weights.",
425
+ },
426
+ }
427
+
428
+ # Check each checkpoint type that has restrictions
429
+ for checkpoint_type, rule in validation_rules.items():
430
+ has_restricted_checkpoint = any(
431
+ response_checkpoints[checkpoint_id].get("checkpoint_type")
432
+ == checkpoint_type
433
+ for checkpoint_id in checkpoint_ids
429
434
  )
430
435
 
436
+ if has_restricted_checkpoint and len(checkpoint_ids) > 1:
437
+ raise ValueError(rule["error_message"])
438
+
431
439
 
432
440
  def get_hf_secret_name(user_input: Union[str, SecretReference, None]) -> str:
433
441
  """Get HuggingFace secret name from user input or prompt for it."""
@@ -3,7 +3,7 @@ from pathlib import Path
3
3
 
4
4
  from truss.base import truss_config
5
5
  from truss.cli.train.types import DeployCheckpointsConfigComplete
6
- from truss_train.definitions import SecretReference
6
+ from truss_train.definitions import ModelWeightsFormat, SecretReference
7
7
 
8
8
  START_COMMAND_ENVVAR_NAME = "BT_DOCKER_SERVER_START_CMD"
9
9
 
@@ -12,8 +12,14 @@ def setup_base_truss_config(
12
12
  checkpoint_deploy: DeployCheckpointsConfigComplete,
13
13
  ) -> truss_config.TrussConfig:
14
14
  """Set up the base truss config with common properties."""
15
+ truss_deploy_config = None
16
+ truss_base_file = (
17
+ "deploy_from_checkpoint_config_whisper.yml"
18
+ if checkpoint_deploy.model_weight_format == ModelWeightsFormat.WHISPER
19
+ else "deploy_from_checkpoint_config.yml"
20
+ )
15
21
  truss_deploy_config = truss_config.TrussConfig.from_yaml(
16
- Path(os.path.dirname(__file__), "..", "deploy_from_checkpoint_config.yml")
22
+ Path(os.path.dirname(__file__), "..", truss_base_file)
17
23
  )
18
24
  if not truss_deploy_config.docker_server:
19
25
  raise ValueError(
@@ -40,7 +40,7 @@ def render_vllm_full_truss_config(
40
40
  truss_deploy_config, checkpoint_deploy
41
41
  )
42
42
 
43
- checkpoint_str = _build_full_checkpoint_string(truss_deploy_config)
43
+ checkpoint_str = build_full_checkpoint_string(truss_deploy_config)
44
44
 
45
45
  accelerator = checkpoint_deploy.compute.accelerator
46
46
 
@@ -71,7 +71,7 @@ def hydrate_full_checkpoint(
71
71
  return FullCheckpoint(training_job_id=job_id, paths=paths)
72
72
 
73
73
 
74
- def _build_full_checkpoint_string(truss_deploy_config) -> str:
74
+ def build_full_checkpoint_string(truss_deploy_config) -> str:
75
75
  """Build checkpoint string from artifact references for full checkpoints.
76
76
 
77
77
  Args:
@@ -0,0 +1,63 @@
1
+ from jinja2 import Template
2
+
3
+ from truss.base import truss_config
4
+ from truss.cli.train.deploy_checkpoints.deploy_checkpoints_helpers import (
5
+ START_COMMAND_ENVVAR_NAME,
6
+ )
7
+ from truss.cli.train.deploy_checkpoints.deploy_full_checkpoints import (
8
+ build_full_checkpoint_string,
9
+ )
10
+ from truss.cli.train.types import DeployCheckpointsConfigComplete
11
+ from truss_train.definitions import WhisperCheckpoint
12
+
13
+ from .deploy_checkpoints_helpers import (
14
+ setup_base_truss_config,
15
+ setup_environment_variables_and_secrets,
16
+ )
17
+
18
+ VLLM_WHISPER_START_COMMAND = Template(
19
+ "sh -c '{% if envvars %}{{ envvars }} {% endif %}"
20
+ 'HF_TOKEN="$$(cat /secrets/hf_access_token)" && export HF_TOKEN && '
21
+ "vllm serve {{ model_path }} --port 8000 --tensor-parallel-size {{ specify_tensor_parallelism }}'"
22
+ )
23
+
24
+
25
+ def render_vllm_whisper_truss_config(
26
+ checkpoint_deploy: DeployCheckpointsConfigComplete,
27
+ ) -> truss_config.TrussConfig:
28
+ """Render truss config specifically for whisper checkpoints using vLLM."""
29
+ truss_deploy_config = setup_base_truss_config(checkpoint_deploy)
30
+
31
+ start_command_envvars = setup_environment_variables_and_secrets(
32
+ truss_deploy_config, checkpoint_deploy
33
+ )
34
+
35
+ checkpoint_str = build_full_checkpoint_string(truss_deploy_config)
36
+
37
+ accelerator = checkpoint_deploy.compute.accelerator
38
+
39
+ start_command_args = {
40
+ "model_path": checkpoint_str,
41
+ "envvars": start_command_envvars,
42
+ "specify_tensor_parallelism": accelerator.count if accelerator else 1,
43
+ }
44
+ # Note: we set the start command as an environment variable in supervisord config.
45
+ # This is so that we don't have to change the supervisord config when the start command changes.
46
+ # Our goal is to reduce the number of times we need to rebuild the image, and allow us to deploy faster.
47
+ start_command = VLLM_WHISPER_START_COMMAND.render(**start_command_args)
48
+ truss_deploy_config.environment_variables[START_COMMAND_ENVVAR_NAME] = start_command
49
+ # Note: supervisord uses the convention %(ENV_VAR_NAME)s to access environment variable VAR_NAME
50
+ truss_deploy_config.docker_server.start_command = ( # type: ignore[union-attr]
51
+ f"%(ENV_{START_COMMAND_ENVVAR_NAME})s"
52
+ )
53
+
54
+ return truss_deploy_config
55
+
56
+
57
+ def hydrate_whisper_checkpoint(
58
+ job_id: str, checkpoint_id: str, checkpoint: dict
59
+ ) -> WhisperCheckpoint:
60
+ """Create a Checkpoint object for whisper model weights."""
61
+ # NOTE: Slash at the end is important since it means the checkpoint is a directory
62
+ paths = [f"rank-0/{checkpoint_id}/"]
63
+ return WhisperCheckpoint(training_job_id=job_id, paths=paths)
@@ -0,0 +1,17 @@
1
+ base_image:
2
+ image: vllm/vllm-openai:latest
3
+
4
+ docker_server:
5
+ start_command: sh -c "" # replaced when deploying
6
+ readiness_endpoint: /health
7
+ liveness_endpoint: /health
8
+ predict_endpoint: /v1/audio/transcriptions
9
+ server_port: 8000
10
+ runtime:
11
+ predict_concurrency : 256
12
+ environment_variables:
13
+ VLLM_LOGGING_LEVEL: WARNING
14
+ VLLM_USE_V1: 0
15
+ HF_HUB_ENABLE_HF_TRANSFER: 1
16
+ requirements:
17
+ - vllm[audio]
@@ -13,6 +13,7 @@ from truss.cli.train import common as train_common
13
13
  from truss.cli.train import core
14
14
  from truss.cli.utils import common
15
15
  from truss.cli.utils.output import console, error_console
16
+ from truss.remote.baseten.core import get_training_job_logs_with_pagination
16
17
  from truss.remote.baseten.remote import BasetenRemote
17
18
  from truss.remote.remote_factory import RemoteFactory
18
19
 
@@ -72,8 +73,11 @@ def _prepare_click_context(f: click.Command, params: dict) -> click.Context:
72
73
  @click.argument("config", type=Path, required=True)
73
74
  @click.option("--remote", type=str, required=False, help="Remote to use")
74
75
  @click.option("--tail", is_flag=True, help="Tail for status + logs after push.")
76
+ @click.option("--job-name", type=str, required=False, help="Name of the training job.")
75
77
  @common.common_options()
76
- def push_training_job(config: Path, remote: Optional[str], tail: bool):
78
+ def push_training_job(
79
+ config: Path, remote: Optional[str], tail: bool, job_name: Optional[str]
80
+ ):
77
81
  """Run a training job"""
78
82
  from truss_train import deployment
79
83
 
@@ -84,7 +88,9 @@ def push_training_job(config: Path, remote: Optional[str], tail: bool):
84
88
  remote_provider: BasetenRemote = cast(
85
89
  BasetenRemote, RemoteFactory.create(remote=remote)
86
90
  )
87
- job_resp = deployment.create_training_job_from_file(remote_provider, config)
91
+ job_resp = deployment.create_training_job_from_file(
92
+ remote_provider, config, job_name
93
+ )
88
94
 
89
95
  # Note: This post create logic needs to happen outside the context
90
96
  # of the above context manager, as only one console session can be active
@@ -138,7 +144,9 @@ def get_job_logs(
138
144
  )
139
145
 
140
146
  if not tail:
141
- logs = remote_provider.api.get_training_job_logs(project_id, job_id)
147
+ logs = get_training_job_logs_with_pagination(
148
+ remote_provider.api, project_id, job_id
149
+ )
142
150
  for log in cli_log_utils.parse_logs(logs):
143
151
  cli_log_utils.output_log(log)
144
152
  else:
@@ -15,8 +15,6 @@ from botocore.exceptions import ClientError, NoCredentialsError
15
15
  from google.cloud import storage
16
16
  from huggingface_hub import hf_hub_download
17
17
 
18
- from truss.base import constants
19
-
20
18
  B10CP_PATH_TRUSS_ENV_VAR_NAME = "B10CP_PATH_TRUSS"
21
19
 
22
20
  GCS_CREDENTIALS = "/app/data/service_account.json"
@@ -110,7 +108,7 @@ class RepositoryFile(ABC):
110
108
 
111
109
  class HuggingFaceFile(RepositoryFile):
112
110
  def download_to_cache(self):
113
- secret_path = Path(f"/etc/secrets/{constants.HF_ACCESS_TOKEN_FILE_NAME}")
111
+ secret_path = Path("/etc/secrets/hf-access-token")
114
112
  secret = secret_path.read_text().strip() if secret_path.exists() else None
115
113
  try:
116
114
  hf_hub_download(
@@ -73,7 +73,6 @@ from truss.contexts.image_builder.util import (
73
73
  )
74
74
  from truss.contexts.truss_context import TrussContext
75
75
  from truss.truss_handle.patch.hash import directory_content_hash
76
- from truss.util.basetenpointer import model_cache_hf_to_b10ptr
77
76
  from truss.util.jinja import read_template_from_fs
78
77
  from truss.util.path import (
79
78
  build_truss_target_directory,
@@ -93,6 +92,8 @@ USER_TRUSS_IGNORE_FILE = ".truss_ignore"
93
92
  GCS_CREDENTIALS = "service_account.json"
94
93
  S3_CREDENTIALS = "s3_credentials.json"
95
94
 
95
+ HF_ACCESS_TOKEN_FILE_NAME = "hf-access-token"
96
+
96
97
  CLOUD_BUCKET_CACHE = MODEL_CACHE_PATH
97
98
 
98
99
  HF_SOURCE_DIR = Path("./root/.cache/huggingface/hub/")
@@ -324,36 +325,27 @@ def get_files_to_model_cache_v1(config: TrussConfig, truss_dir: Path, build_dir:
324
325
  def build_model_cache_v2_and_copy_bptr_manifest(config: TrussConfig, build_dir: Path):
325
326
  assert config.model_cache.is_v2
326
327
  assert all(model.volume_folder is not None for model in config.model_cache.models)
327
- try:
328
- from truss_transfer import PyModelRepo, create_basetenpointer_from_models
329
-
330
- py_models = [
331
- PyModelRepo(
332
- repo_id=model.repo_id,
333
- revision=model.revision,
334
- runtime_secret_name=model.runtime_secret_name,
335
- allow_patterns=model.allow_patterns,
336
- ignore_patterns=model.ignore_patterns,
337
- volume_folder=model.volume_folder,
338
- kind=model.kind.value,
339
- )
340
- for model in config.model_cache.models
341
- ]
342
- # create BasetenPointer from models
343
- basetenpointer_json = create_basetenpointer_from_models(models=py_models)
344
- bptr_py = json.loads(basetenpointer_json)["pointers"]
345
- logging.info(f"created ({len(bptr_py)}) Basetenpointer")
346
- logging.info(f"pointers json: {basetenpointer_json}")
347
- with open(build_dir / "bptr-manifest", "w") as f:
348
- f.write(basetenpointer_json)
349
- except Exception as e:
350
- logging.warning(f"debug: failed to create BasetenPointer: {e}")
351
- # TODO: remove below section + remove logging lines above.
352
- # builds BasetenManifest for caching
353
- basetenpointers = model_cache_hf_to_b10ptr(config.model_cache)
354
- # write json of bastenpointers into build dir
355
- with open(build_dir / "bptr-manifest", "w") as f:
356
- f.write(basetenpointers.model_dump_json())
328
+ from truss_transfer import PyModelRepo, create_basetenpointer_from_models
329
+
330
+ py_models = [
331
+ PyModelRepo(
332
+ repo_id=model.repo_id,
333
+ revision=model.revision,
334
+ runtime_secret_name=model.runtime_secret_name,
335
+ allow_patterns=model.allow_patterns,
336
+ ignore_patterns=model.ignore_patterns,
337
+ volume_folder=model.volume_folder,
338
+ kind=model.kind.value,
339
+ )
340
+ for model in config.model_cache.models
341
+ ]
342
+ # create BasetenPointer from models
343
+ basetenpointer_json = create_basetenpointer_from_models(models=py_models)
344
+ bptr_py = json.loads(basetenpointer_json)["pointers"]
345
+ logging.info(f"created ({len(bptr_py)}) Basetenpointer")
346
+ logging.info(f"pointers json: {basetenpointer_json}")
347
+ with open(build_dir / "bptr-manifest", "w") as f:
348
+ f.write(basetenpointer_json)
357
349
 
358
350
 
359
351
  def generate_docker_server_nginx_config(build_dir, config):
@@ -819,7 +811,7 @@ class ServingImageBuilder(ImageBuilder):
819
811
  model_cache_v1=config.model_cache.is_v1,
820
812
  model_cache_v2=config.model_cache.is_v2,
821
813
  hf_access_token=hf_access_token,
822
- hf_access_token_file_name=constants.HF_ACCESS_TOKEN_FILE_NAME,
814
+ hf_access_token_file_name=HF_ACCESS_TOKEN_FILE_NAME,
823
815
  external_data_files=external_data_files,
824
816
  build_commands=build_commands,
825
817
  use_local_src=config.use_local_src,
@@ -669,6 +669,17 @@ class BasetenApi:
669
669
  # NB(nikhil): reverse order so latest logs are at the end
670
670
  return resp_json["logs"][::-1]
671
671
 
672
+ def _fetch_log_batch(
673
+ self, project_id: str, job_id: str, query_params: Dict[str, Any]
674
+ ) -> List[Any]:
675
+ """
676
+ Fetch a single batch of logs from the API.
677
+ """
678
+ resp_json = self._rest_api_client.post(
679
+ f"v1/training_projects/{project_id}/jobs/{job_id}/logs", body=query_params
680
+ )
681
+ return resp_json["logs"]
682
+
672
683
  def get_training_job_checkpoint_presigned_url(
673
684
  self, project_id: str, job_id: str, page_size: int = 100
674
685
  ) -> List[Dict[str, str]]: