truss 0.11.15rc12__tar.gz → 0.11.16__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 (418) hide show
  1. {truss-0.11.15rc12 → truss-0.11.16}/PKG-INFO +1 -1
  2. {truss-0.11.15rc12 → truss-0.11.16}/pyproject.toml +1 -1
  3. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/chains_commands.py +0 -10
  4. {truss-0.11.15rc12 → truss-0.11.16}/truss/contexts/image_builder/cache_warmer.py +14 -5
  5. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/api.py +4 -68
  6. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/core.py +0 -40
  7. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/custom_types.py +0 -1
  8. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/remote.py +0 -18
  9. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/utils/transfer.py +5 -2
  10. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/docker_server/supervisord.conf.jinja +1 -1
  11. truss-0.11.16/truss/tests/util/test_env_vars.py +19 -0
  12. {truss-0.11.15rc12 → truss-0.11.16}/truss/util/env_vars.py +19 -8
  13. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/deployment/deployment_client.py +0 -7
  14. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/private_types.py +0 -3
  15. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/public_api.py +0 -3
  16. truss-0.11.15rc12/truss/tests/cli/test_chains_cli.py +0 -100
  17. truss-0.11.15rc12/truss/tests/remote/baseten/test_chain_upload.py +0 -285
  18. truss-0.11.15rc12/truss/tests/util/test_env_vars.py +0 -14
  19. truss-0.11.15rc12/truss/util/error_utils.py +0 -34
  20. {truss-0.11.15rc12 → truss-0.11.16}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  21. {truss-0.11.15rc12 → truss-0.11.16}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  22. {truss-0.11.15rc12 → truss-0.11.16}/.github/pull_request_template.md +0 -0
  23. {truss-0.11.15rc12 → truss-0.11.16}/.gitignore +0 -0
  24. {truss-0.11.15rc12 → truss-0.11.16}/CODE_OF_CONDUCT.md +0 -0
  25. {truss-0.11.15rc12 → truss-0.11.16}/CONTRIBUTING.md +0 -0
  26. {truss-0.11.15rc12 → truss-0.11.16}/LICENSE +0 -0
  27. {truss-0.11.15rc12 → truss-0.11.16}/README.md +0 -0
  28. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/README.md +0 -0
  29. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/README.md +0 -0
  30. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/android-arm-eabi/README.md +0 -0
  31. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/android-arm64/README.md +0 -0
  32. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/darwin-arm64/README.md +0 -0
  33. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/darwin-universal/README.md +0 -0
  34. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/darwin-x64/README.md +0 -0
  35. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/freebsd-x64/README.md +0 -0
  36. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/linux-arm-gnueabihf/README.md +0 -0
  37. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/linux-arm-musleabihf/README.md +0 -0
  38. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/linux-arm64-gnu/README.md +0 -0
  39. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/linux-arm64-musl/README.md +0 -0
  40. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/linux-riscv64-gnu/README.md +0 -0
  41. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/linux-x64-gnu/README.md +0 -0
  42. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/linux-x64-musl/README.md +0 -0
  43. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/win32-arm64-msvc/README.md +0 -0
  44. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/win32-ia32-msvc/README.md +0 -0
  45. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/node_bindings/npm/win32-x64-msvc/README.md +0 -0
  46. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/python_bindings/README.md +0 -0
  47. {truss-0.11.15rc12 → truss-0.11.16}/baseten-performance-client/scripts/README_nodejs.md +0 -0
  48. {truss-0.11.15rc12 → truss-0.11.16}/context_builder.Dockerfile +0 -0
  49. {truss-0.11.15rc12 → truss-0.11.16}/docs/README.md +0 -0
  50. {truss-0.11.15rc12 → truss-0.11.16}/docs/chains/doc_gen/README.md +0 -0
  51. {truss-0.11.15rc12 → truss-0.11.16}/docs/contribute/base-images.md +0 -0
  52. {truss-0.11.15rc12 → truss-0.11.16}/docs/contribute/release.md +0 -0
  53. {truss-0.11.15rc12 → truss-0.11.16}/truss/__init__.py +0 -0
  54. {truss-0.11.15rc12 → truss-0.11.16}/truss/api/__init__.py +0 -0
  55. {truss-0.11.15rc12 → truss-0.11.16}/truss/api/definitions.py +0 -0
  56. {truss-0.11.15rc12 → truss-0.11.16}/truss/base/__init__.py +0 -0
  57. {truss-0.11.15rc12 → truss-0.11.16}/truss/base/constants.py +0 -0
  58. {truss-0.11.15rc12 → truss-0.11.16}/truss/base/custom_types.py +0 -0
  59. {truss-0.11.15rc12 → truss-0.11.16}/truss/base/errors.py +0 -0
  60. {truss-0.11.15rc12 → truss-0.11.16}/truss/base/trt_llm_config.py +0 -0
  61. {truss-0.11.15rc12 → truss-0.11.16}/truss/base/truss_config.py +0 -0
  62. {truss-0.11.15rc12 → truss-0.11.16}/truss/base/truss_spec.py +0 -0
  63. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/cli.py +0 -0
  64. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/logs/base_watcher.py +0 -0
  65. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/logs/model_log_watcher.py +0 -0
  66. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/logs/training_log_watcher.py +0 -0
  67. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/logs/utils.py +0 -0
  68. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/remote_cli.py +0 -0
  69. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/common.py +0 -0
  70. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/core.py +0 -0
  71. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/deploy_checkpoints/__init__.py +0 -0
  72. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/deploy_checkpoints/deploy_checkpoints.py +0 -0
  73. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/deploy_checkpoints/deploy_checkpoints_helpers.py +0 -0
  74. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/deploy_checkpoints/deploy_full_checkpoints.py +0 -0
  75. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/deploy_checkpoints/deploy_lora_checkpoints.py +0 -0
  76. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/deploy_checkpoints/deploy_whisper_checkpoints.py +0 -0
  77. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/deploy_from_checkpoint_config.yml +0 -0
  78. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/deploy_from_checkpoint_config_whisper.yml +0 -0
  79. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/metrics_watcher.py +0 -0
  80. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/poller.py +0 -0
  81. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train/types.py +0 -0
  82. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/train_commands.py +0 -0
  83. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/utils/common.py +0 -0
  84. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/utils/output.py +0 -0
  85. {truss-0.11.15rc12 → truss-0.11.16}/truss/cli/utils/self_upgrade.py +0 -0
  86. {truss-0.11.15rc12 → truss-0.11.16}/truss/contexts/docker_build_setup.py +0 -0
  87. {truss-0.11.15rc12 → truss-0.11.16}/truss/contexts/image_builder/image_builder.py +0 -0
  88. {truss-0.11.15rc12 → truss-0.11.16}/truss/contexts/image_builder/serving_image_builder.py +0 -0
  89. {truss-0.11.15rc12 → truss-0.11.16}/truss/contexts/image_builder/util.py +0 -0
  90. {truss-0.11.15rc12 → truss-0.11.16}/truss/contexts/local_loader/docker_build_emulator.py +0 -0
  91. {truss-0.11.15rc12 → truss-0.11.16}/truss/contexts/local_loader/dockerfile_parser.py +0 -0
  92. {truss-0.11.15rc12 → truss-0.11.16}/truss/contexts/local_loader/load_model_local.py +0 -0
  93. {truss-0.11.15rc12 → truss-0.11.16}/truss/contexts/local_loader/truss_module_loader.py +0 -0
  94. {truss-0.11.15rc12 → truss-0.11.16}/truss/contexts/local_loader/utils.py +0 -0
  95. {truss-0.11.15rc12 → truss-0.11.16}/truss/contexts/truss_context.py +0 -0
  96. {truss-0.11.15rc12 → truss-0.11.16}/truss/local/local_config.py +0 -0
  97. {truss-0.11.15rc12 → truss-0.11.16}/truss/local/local_config_handler.py +0 -0
  98. {truss-0.11.15rc12 → truss-0.11.16}/truss/patch/__init__.py +0 -0
  99. {truss-0.11.15rc12 → truss-0.11.16}/truss/patch/hash.py +0 -0
  100. {truss-0.11.15rc12 → truss-0.11.16}/truss/patch/signature.py +0 -0
  101. {truss-0.11.15rc12 → truss-0.11.16}/truss/patch/truss_dir_patch_applier.py +0 -0
  102. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/__init__.py +0 -0
  103. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/auth.py +0 -0
  104. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/error.py +0 -0
  105. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/rest_client.py +0 -0
  106. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/service.py +0 -0
  107. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/utils/status.py +0 -0
  108. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/utils/tar.py +0 -0
  109. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/baseten/utils/time.py +0 -0
  110. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/remote_factory.py +0 -0
  111. {truss-0.11.15rc12 → truss-0.11.16}/truss/remote/truss_remote.py +0 -0
  112. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/README.md.jinja +0 -0
  113. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/__init__.py +0 -0
  114. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/base.Dockerfile.jinja +0 -0
  115. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/cache.Dockerfile.jinja +0 -0
  116. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/cache_requirements.txt +0 -0
  117. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/application.py +0 -0
  118. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/endpoints.py +0 -0
  119. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/helpers/context_managers.py +0 -0
  120. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/helpers/custom_types.py +0 -0
  121. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/helpers/errors.py +0 -0
  122. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/helpers/inference_server_controller.py +0 -0
  123. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/helpers/inference_server_process_controller.py +0 -0
  124. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/helpers/inference_server_starter.py +0 -0
  125. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/helpers/truss_patch/__init__.py +0 -0
  126. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/helpers/truss_patch/model_code_patch_applier.py +0 -0
  127. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/helpers/truss_patch/model_container_patch_applier.py +0 -0
  128. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/helpers/truss_patch/requirement_name_identifier.py +0 -0
  129. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/helpers/truss_patch/system_packages.py +0 -0
  130. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/control/server.py +0 -0
  131. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/control/requirements.txt +0 -0
  132. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/copy_cache_files.Dockerfile.jinja +0 -0
  133. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/custom/examples.yaml +0 -0
  134. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/custom/model/__init__.py +0 -0
  135. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/custom/model/model.py +0 -0
  136. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/custom_python_dx/my_model.py +0 -0
  137. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/docker_server/proxy.conf.jinja +0 -0
  138. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/docker_server_requirements.txt +0 -0
  139. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/no_build.Dockerfile.jinja +0 -0
  140. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server/__init__.py +0 -0
  141. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server/common/__init__.py +0 -0
  142. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server/common/errors.py +0 -0
  143. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server/common/patches/whisper/patch.py +0 -0
  144. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server/common/patches.py +0 -0
  145. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server/common/retry.py +0 -0
  146. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server/common/schema.py +0 -0
  147. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server/common/tracing.py +0 -0
  148. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server/main.py +0 -0
  149. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server/model_wrapper.py +0 -0
  150. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server/requirements.txt +0 -0
  151. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server/truss_server.py +0 -0
  152. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/server.Dockerfile.jinja +0 -0
  153. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/shared/__init__.py +0 -0
  154. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/shared/dynamic_config_resolver.py +0 -0
  155. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/shared/lazy_data_resolver.py +0 -0
  156. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/shared/log_config.py +0 -0
  157. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/shared/secrets_resolver.py +0 -0
  158. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/shared/serialization.py +0 -0
  159. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/shared/util.py +0 -0
  160. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/train/config.py +0 -0
  161. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/train/run.sh +0 -0
  162. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/trtllm-audio/model/model.py +0 -0
  163. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/trtllm-audio/packages/sigint_patch.py +0 -0
  164. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/trtllm-audio/packages/whisper_trt/__init__.py +0 -0
  165. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/trtllm-audio/packages/whisper_trt/assets.py +0 -0
  166. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/trtllm-audio/packages/whisper_trt/batching.py +0 -0
  167. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/trtllm-audio/packages/whisper_trt/custom_types.py +0 -0
  168. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/trtllm-audio/packages/whisper_trt/modeling.py +0 -0
  169. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/trtllm-audio/packages/whisper_trt/tokenizer.py +0 -0
  170. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/trtllm-audio/packages/whisper_trt/utils.py +0 -0
  171. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/trtllm-briton/README.md +0 -0
  172. {truss-0.11.15rc12 → truss-0.11.16}/truss/templates/trtllm-briton/src/extension.py +0 -0
  173. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/__init__.py +0 -0
  174. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/cli/test_cli.py +0 -0
  175. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/cli/train/resources/test_deploy_from_checkpoint_config.yml +0 -0
  176. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/cli/train/test_cache_view.py +0 -0
  177. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/cli/train/test_deploy_checkpoints.py +0 -0
  178. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/cli/train/test_train_cli_core.py +0 -0
  179. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/cli/train/test_train_init.py +0 -0
  180. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/conftest.py +0 -0
  181. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/contexts/image_builder/test_serving_image_builder.py +0 -0
  182. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/contexts/local_loader/test_load_local.py +0 -0
  183. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/contexts/local_loader/test_truss_module_finder.py +0 -0
  184. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/helpers.py +0 -0
  185. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/local/test_local_config_handler.py +0 -0
  186. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/patch/test_calc_patch.py +0 -0
  187. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/patch/test_dir_signature.py +0 -0
  188. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/patch/test_hash.py +0 -0
  189. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/patch/test_signature.py +0 -0
  190. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/patch/test_truss_dir_patch_applier.py +0 -0
  191. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/patch/test_types.py +0 -0
  192. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/remote/baseten/conftest.py +0 -0
  193. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/remote/baseten/test_api.py +0 -0
  194. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/remote/baseten/test_auth.py +0 -0
  195. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/remote/baseten/test_core.py +0 -0
  196. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/remote/baseten/test_remote.py +0 -0
  197. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/remote/baseten/test_service.py +0 -0
  198. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/remote/test_remote_factory.py +0 -0
  199. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/remote/test_truss_remote.py +0 -0
  200. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/control/control/conftest.py +0 -0
  201. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/control/control/helpers/test_context_managers.py +0 -0
  202. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/control/control/helpers/test_model_container_patch_applier.py +0 -0
  203. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/control/control/helpers/test_requirement_name_identifier.py +0 -0
  204. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/control/control/test_endpoints.py +0 -0
  205. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/control/control/test_server.py +0 -0
  206. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/control/control/test_server_integration.py +0 -0
  207. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/core/server/test_dynamic_config_resolver.py +0 -0
  208. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/core/server/test_lazy_data_resolver_v2.py +0 -0
  209. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/core/server/test_secrets_resolver.py +0 -0
  210. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/server/common/test_retry.py +0 -0
  211. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/server/test_model_wrapper.py +0 -0
  212. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/server/test_schema.py +0 -0
  213. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/templates/server/test_truss_server.py +0 -0
  214. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_build.py +0 -0
  215. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_config.py +0 -0
  216. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_context_builder_image.py +0 -0
  217. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_control_truss_patching.py +0 -0
  218. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_custom_server.py +0 -0
  219. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/__init__.py +0 -0
  220. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/annotated_types_truss/__init__.py +0 -0
  221. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/annotated_types_truss/config.yaml +0 -0
  222. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/annotated_types_truss/model/__init__.py +0 -0
  223. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/annotated_types_truss/model/model.py +0 -0
  224. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/auto-mpg.data +0 -0
  225. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/context_builder_image_test/Dockerfile +0 -0
  226. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/context_builder_image_test/__init__.py +0 -0
  227. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/context_builder_image_test/test.py +0 -0
  228. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/gcs_fix/__init__.py +0 -0
  229. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/gcs_fix/config.yaml +0 -0
  230. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/gcs_fix/model/__init__.py +0 -0
  231. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/gcs_fix/model/model.py +0 -0
  232. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/happy.ipynb +0 -0
  233. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/model_load_failure_test/__init__.py +0 -0
  234. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/model_load_failure_test/config.yaml +0 -0
  235. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/model_load_failure_test/model/__init__.py +0 -0
  236. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/model_load_failure_test/model/model.py +0 -0
  237. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/patch_ping_test_server/__init__.py +0 -0
  238. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/patch_ping_test_server/app.py +0 -0
  239. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/pima-indians-diabetes.csv +0 -0
  240. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/readme_int_example.md +0 -0
  241. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/readme_no_example.md +0 -0
  242. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/readme_str_example.md +0 -0
  243. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/server.Dockerfile +0 -0
  244. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/server_conformance_test_truss/__init__.py +0 -0
  245. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/server_conformance_test_truss/config.yaml +0 -0
  246. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/server_conformance_test_truss/model/__init__.py +0 -0
  247. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/server_conformance_test_truss/model/model.py +0 -0
  248. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_async_truss/__init__.py +0 -0
  249. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_async_truss/config.yaml +0 -0
  250. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_async_truss/model/__init__.py +0 -0
  251. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_async_truss/model/model.py +0 -0
  252. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_basic_truss/__init__.py +0 -0
  253. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_basic_truss/config.yaml +0 -0
  254. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_basic_truss/model/__init__.py +0 -0
  255. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_basic_truss/model/model.py +0 -0
  256. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_build_commands/__init__.py +0 -0
  257. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_build_commands/config.yaml +0 -0
  258. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_build_commands/model/__init__.py +0 -0
  259. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_build_commands/model/model.py +0 -0
  260. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_build_commands_failure/__init__.py +0 -0
  261. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_build_commands_failure/config.yaml +0 -0
  262. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_build_commands_failure/model/__init__.py +0 -0
  263. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_build_commands_failure/model/model.py +0 -0
  264. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_concurrency_truss/__init__.py +0 -0
  265. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_concurrency_truss/config.yaml +0 -0
  266. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_concurrency_truss/model/__init__.py +0 -0
  267. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_concurrency_truss/model/model.py +0 -0
  268. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_custom_server_truss/__init__.py +0 -0
  269. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_custom_server_truss/config.yaml +0 -0
  270. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_custom_server_truss/test_docker_image/Dockerfile +0 -0
  271. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_custom_server_truss/test_docker_image/README.md +0 -0
  272. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_custom_server_truss/test_docker_image/VERSION +0 -0
  273. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_custom_server_truss/test_docker_image/__init__.py +0 -0
  274. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_custom_server_truss/test_docker_image/app.py +0 -0
  275. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_custom_server_truss/test_docker_image/build_upload_new_image.sh +0 -0
  276. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_env_vars/config.yaml +0 -0
  277. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_go_custom_server_truss/config.yaml +0 -0
  278. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_go_custom_server_truss/docker/Dockerfile +0 -0
  279. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_go_custom_server_truss/docker/README.md +0 -0
  280. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_go_custom_server_truss/docker/VERSION +0 -0
  281. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_go_custom_server_truss/docker/build_upload_new_image.sh +0 -0
  282. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_go_custom_server_truss/docker/main.go +0 -0
  283. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_openai/__init__.py +0 -0
  284. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_openai/config.yaml +0 -0
  285. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_openai/model/__init__.py +0 -0
  286. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_openai/model/model.py +0 -0
  287. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_pyantic_v1/__init__.py +0 -0
  288. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_pyantic_v1/config.yaml +0 -0
  289. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_pyantic_v1/model/__init__.py +0 -0
  290. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_pyantic_v1/model/model.py +0 -0
  291. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_pyantic_v1/requirements.txt +0 -0
  292. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_pyantic_v2/__init__.py +0 -0
  293. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_pyantic_v2/config.yaml +0 -0
  294. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_pyantic_v2/model/__init__.py +0 -0
  295. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_pyantic_v2/model/model.py +0 -0
  296. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_pyantic_v2/requirements.txt +0 -0
  297. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_requirements_file_truss/__init__.py +0 -0
  298. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_requirements_file_truss/config.yaml +0 -0
  299. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_requirements_file_truss/model/__init__.py +0 -0
  300. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_requirements_file_truss/model/model.py +0 -0
  301. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_requirements_file_truss/requirements.txt +0 -0
  302. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_async_generator_truss/__init__.py +0 -0
  303. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_async_generator_truss/config.yaml +0 -0
  304. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_async_generator_truss/model/__init__.py +0 -0
  305. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_async_generator_truss/model/model.py +0 -0
  306. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_read_timeout/__init__.py +0 -0
  307. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_read_timeout/config.yaml +0 -0
  308. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_read_timeout/model/__init__.py +0 -0
  309. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_read_timeout/model/model.py +0 -0
  310. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss/__init__.py +0 -0
  311. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss/config.yaml +0 -0
  312. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss/model/__init__.py +0 -0
  313. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss/model/model.py +0 -0
  314. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss_with_error/__init__.py +0 -0
  315. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss_with_error/config.yaml +0 -0
  316. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss_with_error/model/__init__.py +0 -0
  317. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss_with_error/model/model.py +0 -0
  318. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss_with_error/packages/__init__.py +0 -0
  319. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss_with_error/packages/helpers_1.py +0 -0
  320. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss_with_error/packages/helpers_2.py +0 -0
  321. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss_with_tracing/__init__.py +0 -0
  322. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss_with_tracing/config.yaml +0 -0
  323. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss_with_tracing/model/__init__.py +0 -0
  324. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_streaming_truss_with_tracing/model/model.py +0 -0
  325. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_trt_llm_truss/__init__.py +0 -0
  326. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_trt_llm_truss/config.yaml +0 -0
  327. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_trt_llm_truss/model/__init__.py +0 -0
  328. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_trt_llm_truss/model/model.py +0 -0
  329. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss/__init__.py +0 -0
  330. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss/config.yaml +0 -0
  331. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss/examples.yaml +0 -0
  332. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss/model/__init__.py +0 -0
  333. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss/model/dummy +0 -0
  334. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss/model/model.py +0 -0
  335. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss/packages/__init__.py +0 -0
  336. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss/packages/test_package/__init__.py +0 -0
  337. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss/packages/test_package/test.py +0 -0
  338. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_server_model_cache_v1/__init__.py +0 -0
  339. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_server_model_cache_v1/config.yaml +0 -0
  340. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_server_model_cache_v1/model/__init__.py +0 -0
  341. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_server_model_cache_v1/model/model.py +0 -0
  342. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_server_model_cache_v2/__init__.py +0 -0
  343. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_server_model_cache_v2/config.yaml +0 -0
  344. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_server_model_cache_v2/model/__init__.py +0 -0
  345. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_server_model_cache_v2/model/model.py +0 -0
  346. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_with_error/__init__.py +0 -0
  347. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_with_error/config.yaml +0 -0
  348. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_with_error/model/__init__.py +0 -0
  349. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_with_error/model/model.py +0 -0
  350. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_with_error/packages/__init__.py +0 -0
  351. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_with_error/packages/helpers_1.py +0 -0
  352. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_data/test_truss_with_error/packages/helpers_2.py +0 -0
  353. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_docker.py +0 -0
  354. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_model_inference.py +0 -0
  355. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_model_schema.py +0 -0
  356. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_testing_utilities_for_other_tests.py +0 -0
  357. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_truss_gatherer.py +0 -0
  358. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_truss_handle.py +0 -0
  359. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/test_util.py +0 -0
  360. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/trt_llm/test_trt_llm_config.py +0 -0
  361. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/trt_llm/test_validation.py +0 -0
  362. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/util/test_config_checks.py +0 -0
  363. {truss-0.11.15rc12 → truss-0.11.16}/truss/tests/util/test_path.py +0 -0
  364. {truss-0.11.15rc12 → truss-0.11.16}/truss/trt_llm/config_checks.py +0 -0
  365. {truss-0.11.15rc12 → truss-0.11.16}/truss/trt_llm/validation.py +0 -0
  366. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/__init__.py +0 -0
  367. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/build.py +0 -0
  368. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/decorators.py +0 -0
  369. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/patch/__init__.py +0 -0
  370. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/patch/calc_patch.py +0 -0
  371. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/patch/constants.py +0 -0
  372. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/patch/custom_types.py +0 -0
  373. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/patch/dir_signature.py +0 -0
  374. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/patch/hash.py +0 -0
  375. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/patch/local_truss_patch_applier.py +0 -0
  376. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/patch/signature.py +0 -0
  377. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/patch/truss_dir_patch_applier.py +0 -0
  378. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/readme_generator.py +0 -0
  379. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/truss_gatherer.py +0 -0
  380. {truss-0.11.15rc12 → truss-0.11.16}/truss/truss_handle/truss_handle.py +0 -0
  381. {truss-0.11.15rc12 → truss-0.11.16}/truss/util/.truss_ignore +0 -0
  382. {truss-0.11.15rc12 → truss-0.11.16}/truss/util/__init__.py +0 -0
  383. {truss-0.11.15rc12 → truss-0.11.16}/truss/util/docker.py +0 -0
  384. {truss-0.11.15rc12 → truss-0.11.16}/truss/util/download.py +0 -0
  385. {truss-0.11.15rc12 → truss-0.11.16}/truss/util/gpu.py +0 -0
  386. {truss-0.11.15rc12 → truss-0.11.16}/truss/util/jinja.py +0 -0
  387. {truss-0.11.15rc12 → truss-0.11.16}/truss/util/log_utils.py +0 -0
  388. {truss-0.11.15rc12 → truss-0.11.16}/truss/util/notebook.py +0 -0
  389. {truss-0.11.15rc12 → truss-0.11.16}/truss/util/path.py +0 -0
  390. {truss-0.11.15rc12 → truss-0.11.16}/truss/util/requirements.py +0 -0
  391. {truss-0.11.15rc12 → truss-0.11.16}/truss/util/user_config.py +0 -0
  392. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/examples/README.md +0 -0
  393. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/examples/audio-transcription/README.md +0 -0
  394. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/examples/rag/README.md +0 -0
  395. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/tests/itest_chain/requirements.txt +0 -0
  396. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/__init__.py +0 -0
  397. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/deployment/__init__.py +0 -0
  398. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/deployment/code_gen.py +0 -0
  399. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/framework.py +0 -0
  400. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/public_types.py +0 -0
  401. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/py.typed +0 -0
  402. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/pydantic_numpy.py +0 -0
  403. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/reference_code/reference_chainlet.py +0 -0
  404. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/reference_code/reference_model.py +0 -0
  405. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/remote_chainlet/__init__.py +0 -0
  406. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/remote_chainlet/model_skeleton.py +0 -0
  407. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/remote_chainlet/stub.py +0 -0
  408. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/remote_chainlet/utils.py +0 -0
  409. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/streaming.py +0 -0
  410. {truss-0.11.15rc12 → truss-0.11.16}/truss-chains/truss_chains/utils.py +0 -0
  411. {truss-0.11.15rc12 → truss-0.11.16}/truss-train/truss_train/__init__.py +0 -0
  412. {truss-0.11.15rc12 → truss-0.11.16}/truss-train/truss_train/definitions.py +0 -0
  413. {truss-0.11.15rc12 → truss-0.11.16}/truss-train/truss_train/deployment.py +0 -0
  414. {truss-0.11.15rc12 → truss-0.11.16}/truss-train/truss_train/loader.py +0 -0
  415. {truss-0.11.15rc12 → truss-0.11.16}/truss-train/truss_train/public_api.py +0 -0
  416. {truss-0.11.15rc12 → truss-0.11.16}/truss-train/truss_train/restore_from_checkpoint.py +0 -0
  417. {truss-0.11.15rc12 → truss-0.11.16}/truss-transfer/README.md +0 -0
  418. {truss-0.11.15rc12 → truss-0.11.16}/truss-transfer/tests/README.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: truss
3
- Version: 0.11.15rc12
3
+ Version: 0.11.16
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "truss"
3
- version = "0.11.15rc12"
3
+ version = "0.11.16"
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" },
@@ -211,14 +211,6 @@ def _create_chains_table(service) -> Tuple[rich.table.Table, List[str]]:
211
211
  default=False,
212
212
  help=common.INCLUDE_GIT_INFO_DOC,
213
213
  )
214
- @click.option(
215
- "--disable-chain-download",
216
- "disable_chain_download",
217
- is_flag=True,
218
- required=False,
219
- default=False,
220
- help="Disable downloading of pushed chain source code from the UI.",
221
- )
222
214
  @click.pass_context
223
215
  @common.common_options()
224
216
  def push_chain(
@@ -235,7 +227,6 @@ def push_chain(
235
227
  environment: Optional[str],
236
228
  experimental_watch_chainlet_names: Optional[str],
237
229
  include_git_info: bool = False,
238
- disable_chain_download: bool = False,
239
230
  ) -> None:
240
231
  """
241
232
  Deploys a chain remotely.
@@ -293,7 +284,6 @@ def push_chain(
293
284
  environment=environment,
294
285
  include_git_info=include_git_info,
295
286
  working_dir=source.parent if source.is_file() else source.resolve(),
296
- disable_chain_download=disable_chain_download,
297
287
  )
298
288
  service = deployment_client.push(
299
289
  entrypoint_cls, options, progress_bar=progress.Progress
@@ -11,11 +11,10 @@ from typing import Optional, Type
11
11
  import boto3
12
12
  from botocore import UNSIGNED
13
13
  from botocore.client import Config
14
+ from botocore.exceptions import ClientError, NoCredentialsError
14
15
  from google.cloud import storage
15
16
  from huggingface_hub import hf_hub_download
16
17
 
17
- from truss.util.error_utils import handle_client_error
18
-
19
18
  B10CP_PATH_TRUSS_ENV_VAR_NAME = "B10CP_PATH_TRUSS"
20
19
 
21
20
  GCS_CREDENTIALS = "/app/data/service_account.json"
@@ -189,14 +188,24 @@ class S3File(RepositoryFile):
189
188
  if not dst_file.parent.exists():
190
189
  dst_file.parent.mkdir(parents=True)
191
190
 
192
- with handle_client_error(
193
- f"accessing S3 bucket {bucket_name} for file {file_name}"
194
- ):
191
+ try:
195
192
  url = client.generate_presigned_url(
196
193
  "get_object",
197
194
  Params={"Bucket": bucket_name, "Key": file_name},
198
195
  ExpiresIn=3600,
199
196
  )
197
+ except NoCredentialsError as nce:
198
+ raise RuntimeError(
199
+ f"No AWS credentials found\nOriginal exception: {str(nce)}"
200
+ )
201
+ except ClientError as ce:
202
+ raise RuntimeError(
203
+ f"Client error when accessing the S3 bucket (check your credentials): {str(ce)}"
204
+ )
205
+ except Exception as exc:
206
+ raise RuntimeError(
207
+ f"File not found on S3 bucket: {file_name}\nOriginal exception: {str(exc)}"
208
+ )
200
209
 
201
210
  download_file_using_b10cp(url, dst_file, self.file_name)
202
211
 
@@ -5,7 +5,6 @@ from typing import Any, Dict, List, Mapping, Optional
5
5
  import requests
6
6
  from pydantic import BaseModel, Field
7
7
 
8
- from truss.base.custom_types import SafeModel
9
8
  from truss.remote.baseten import custom_types as b10_types
10
9
  from truss.remote.baseten.auth import ApiKey, AuthService
11
10
  from truss.remote.baseten.custom_types import APIKeyCategory
@@ -14,29 +13,6 @@ from truss.remote.baseten.rest_client import RestAPIClient
14
13
  from truss.remote.baseten.utils.transfer import base64_encoded_json_str
15
14
 
16
15
  logger = logging.getLogger(__name__)
17
- PARAMS_INDENT = "\n "
18
-
19
-
20
- class ChainAWSCredential(SafeModel):
21
- aws_access_key_id: str
22
- aws_secret_access_key: str
23
- aws_session_token: str
24
-
25
-
26
- class ChainUploadCredentials(SafeModel):
27
- s3_bucket: str
28
- s3_key: str
29
- aws_access_key_id: str
30
- aws_secret_access_key: str
31
- aws_session_token: str
32
-
33
- @property
34
- def aws_credentials(self) -> ChainAWSCredential:
35
- return ChainAWSCredential(
36
- aws_access_key_id=self.aws_access_key_id,
37
- aws_secret_access_key=self.aws_secret_access_key,
38
- aws_session_token=self.aws_session_token,
39
- )
40
16
 
41
17
 
42
18
  class InstanceTypeV1(BaseModel):
@@ -323,11 +299,7 @@ class BasetenApi:
323
299
  chain_name: Optional[str] = None,
324
300
  environment: Optional[str] = None,
325
301
  is_draft: bool = False,
326
- original_source_artifact_s3_key: Optional[str] = None,
327
- allow_truss_download: Optional[bool] = True,
328
302
  ):
329
- if allow_truss_download is None:
330
- allow_truss_download = True
331
303
  entrypoint_str = _chainlet_data_atomic_to_graphql_mutation(entrypoint)
332
304
 
333
305
  dependencies_str = ", ".join(
@@ -337,28 +309,13 @@ class BasetenApi:
337
309
  ]
338
310
  )
339
311
 
340
- params = []
341
- if chain_id:
342
- params.append(f'chain_id: "{chain_id}"')
343
- if chain_name:
344
- params.append(f'chain_name: "{chain_name}"')
345
- if environment:
346
- params.append(f'environment: "{environment}"')
347
- if original_source_artifact_s3_key:
348
- params.append(
349
- f'original_source_artifact_s3_key: "{original_source_artifact_s3_key}"'
350
- )
351
-
352
- params.append(f"is_draft: {str(is_draft).lower()}")
353
- if allow_truss_download is False:
354
- params.append("allow_truss_download: false")
355
-
356
- params_str = PARAMS_INDENT.join(params)
357
-
358
312
  query_string = f"""
359
313
  mutation ($trussUserEnv: String) {{
360
314
  deploy_chain_atomic(
361
- {params_str}
315
+ {f'chain_id: "{chain_id}"' if chain_id else ""}
316
+ {f'chain_name: "{chain_name}"' if chain_name else ""}
317
+ {f'environment: "{environment}"' if environment else ""}
318
+ is_draft: {str(is_draft).lower()}
362
319
  entrypoint: {entrypoint_str}
363
320
  dependencies: [{dependencies_str}]
364
321
  truss_user_env: $trussUserEnv
@@ -700,29 +657,8 @@ class BasetenApi:
700
657
  return resp_json["training_projects"]
701
658
 
702
659
  def get_blob_credentials(self, blob_type: b10_types.BlobType):
703
- if blob_type == b10_types.BlobType.CHAIN:
704
- return self.get_chain_s3_upload_credentials()
705
660
  return self._rest_api_client.get(f"v1/blobs/credentials/{blob_type.value}")
706
661
 
707
- def get_chain_s3_upload_credentials(self) -> ChainUploadCredentials:
708
- """Get chain artifact credentials using GraphQL query."""
709
- query = """
710
- query {
711
- chain_s3_upload_credentials {
712
- s3_bucket
713
- s3_key
714
- aws_access_key_id
715
- aws_secret_access_key
716
- aws_session_token
717
- }
718
- }
719
- """
720
- response = self._post_graphql_query(query)
721
-
722
- return ChainUploadCredentials.model_validate(
723
- response["data"]["chain_s3_upload_credentials"]
724
- )
725
-
726
662
  def get_training_job_metrics(
727
663
  self,
728
664
  project_id: str,
@@ -8,7 +8,6 @@ from typing import IO, TYPE_CHECKING, Any, Dict, List, NamedTuple, Optional, Tup
8
8
  import requests
9
9
 
10
10
  from truss.base.errors import ValidationError
11
- from truss.util.error_utils import handle_client_error
12
11
 
13
12
  if TYPE_CHECKING:
14
13
  from rich import progress
@@ -81,8 +80,6 @@ class ChainDeploymentHandleAtomic(NamedTuple):
81
80
  chain_id: str
82
81
  chain_deployment_id: str
83
82
  is_draft: bool
84
- original_source_artifact_s3_key: Optional[str] = None
85
- allow_truss_download: Optional[bool] = True
86
83
 
87
84
 
88
85
  class ModelVersionHandle(NamedTuple):
@@ -130,8 +127,6 @@ def create_chain_atomic(
130
127
  is_draft: bool,
131
128
  truss_user_env: b10_types.TrussUserEnv,
132
129
  environment: Optional[str],
133
- original_source_artifact_s3_key: Optional[str] = None,
134
- allow_truss_download: bool = True,
135
130
  ) -> ChainDeploymentHandleAtomic:
136
131
  if environment and is_draft:
137
132
  logging.info(
@@ -154,8 +149,6 @@ def create_chain_atomic(
154
149
  chain_name=chain_name,
155
150
  is_draft=True,
156
151
  truss_user_env=truss_user_env,
157
- original_source_artifact_s3_key=original_source_artifact_s3_key,
158
- allow_truss_download=allow_truss_download,
159
152
  )
160
153
  elif chain_id:
161
154
  # This is the only case where promote has relevance, since
@@ -169,8 +162,6 @@ def create_chain_atomic(
169
162
  chain_id=chain_id,
170
163
  environment=environment,
171
164
  truss_user_env=truss_user_env,
172
- original_source_artifact_s3_key=original_source_artifact_s3_key,
173
- allow_truss_download=allow_truss_download,
174
165
  )
175
166
  except ApiError as e:
176
167
  if (
@@ -191,8 +182,6 @@ def create_chain_atomic(
191
182
  dependencies=dependencies,
192
183
  chain_name=chain_name,
193
184
  truss_user_env=truss_user_env,
194
- original_source_artifact_s3_key=original_source_artifact_s3_key,
195
- allow_truss_download=allow_truss_download,
196
185
  )
197
186
 
198
187
  return ChainDeploymentHandleAtomic(
@@ -200,8 +189,6 @@ def create_chain_atomic(
200
189
  chain_id=res["chain_deployment"]["chain"]["id"],
201
190
  hostname=res["chain_deployment"]["chain"]["hostname"],
202
191
  is_draft=is_draft,
203
- original_source_artifact_s3_key=original_source_artifact_s3_key,
204
- allow_truss_download=allow_truss_download,
205
192
  )
206
193
 
207
194
 
@@ -355,33 +342,6 @@ def upload_truss(
355
342
  return s3_key
356
343
 
357
344
 
358
- def upload_chain_artifact(
359
- api: BasetenApi,
360
- serialize_file: IO,
361
- progress_bar: Optional[Type["progress.Progress"]],
362
- ) -> str:
363
- """
364
- Upload a chain artifact to the Baseten remote.
365
-
366
- Args:
367
- api: BasetenApi instance
368
- serialize_file: File-like object containing the serialized chain artifact
369
-
370
- Returns:
371
- The S3 key of the uploaded file
372
- """
373
- credentials = api.get_chain_s3_upload_credentials()
374
- with handle_client_error("Uploading chain source"):
375
- multipart_upload_boto3(
376
- serialize_file.name,
377
- credentials.s3_bucket,
378
- credentials.s3_key,
379
- credentials.aws_credentials.model_dump(),
380
- progress_bar,
381
- )
382
- return credentials.s3_key
383
-
384
-
385
345
  def create_truss_service(
386
346
  api: BasetenApi,
387
347
  model_name: str,
@@ -120,7 +120,6 @@ class TrussUserEnv(pydantic.BaseModel):
120
120
  class BlobType(Enum):
121
121
  MODEL = "model"
122
122
  TRAIN = "train"
123
- CHAIN = "chain"
124
123
 
125
124
 
126
125
  class FileSummary(pydantic.BaseModel):
@@ -31,7 +31,6 @@ from truss.remote.baseten.core import (
31
31
  get_model_and_versions,
32
32
  get_prod_version_from_versions,
33
33
  get_truss_watch_state,
34
- upload_chain_artifact,
35
34
  upload_truss,
36
35
  validate_truss_config_against_backend,
37
36
  )
@@ -264,11 +263,9 @@ class BasetenRemote(TrussRemote):
264
263
  entrypoint_artifact: custom_types.ChainletArtifact,
265
264
  dependency_artifacts: List[custom_types.ChainletArtifact],
266
265
  truss_user_env: b10_types.TrussUserEnv,
267
- chain_root: Optional[Path] = None,
268
266
  publish: bool = False,
269
267
  environment: Optional[str] = None,
270
268
  progress_bar: Optional[Type["progress.Progress"]] = None,
271
- disable_chain_download: bool = False,
272
269
  ) -> ChainDeploymentHandleAtomic:
273
270
  # If we are promoting a model to an environment after deploy, it must be published.
274
271
  # Draft models cannot be promoted.
@@ -288,7 +285,6 @@ class BasetenRemote(TrussRemote):
288
285
  publish=publish,
289
286
  origin=custom_types.ModelOrigin.CHAINS,
290
287
  progress_bar=progress_bar,
291
- disable_truss_download=disable_chain_download,
292
288
  )
293
289
  oracle_data = custom_types.OracleData(
294
290
  model_name=push_data.model_name,
@@ -304,18 +300,6 @@ class BasetenRemote(TrussRemote):
304
300
  )
305
301
  )
306
302
 
307
- # Upload raw chain artifact if chain_root is provided
308
- raw_chain_s3_key = None
309
- if chain_root is not None:
310
- logging.info("Uploading source artifact")
311
- # Create a tar file from the chain root directory
312
- original_source_tar = archive_dir(dir=chain_root, progress_bar=progress_bar)
313
- # Upload the chain artifact to S3
314
- raw_chain_s3_key = upload_chain_artifact(
315
- api=self._api,
316
- serialize_file=original_source_tar,
317
- progress_bar=progress_bar,
318
- )
319
303
  chain_deployment_handle = create_chain_atomic(
320
304
  api=self._api,
321
305
  chain_name=chain_name,
@@ -324,8 +308,6 @@ class BasetenRemote(TrussRemote):
324
308
  is_draft=not publish,
325
309
  truss_user_env=truss_user_env,
326
310
  environment=environment,
327
- original_source_artifact_s3_key=raw_chain_s3_key,
328
- allow_truss_download=not disable_chain_download,
329
311
  )
330
312
  logging.info("Successfully pushed to baseten. Chain is building and deploying.")
331
313
  return chain_deployment_handle
@@ -7,7 +7,7 @@ from typing import TYPE_CHECKING, Optional, Type
7
7
  import boto3
8
8
  from boto3.s3.transfer import TransferConfig
9
9
 
10
- from truss.util.env_vars import override_env_vars
10
+ from truss.util.env_vars import modify_env_vars
11
11
 
12
12
  if TYPE_CHECKING:
13
13
  from rich import progress
@@ -26,7 +26,10 @@ def multipart_upload_boto3(
26
26
  ) -> None:
27
27
  # In the CLI flow, ignore any local ~/.aws/config files,
28
28
  # which can interfere with uploading the Truss to S3.
29
- with override_env_vars({"AWS_CONFIG_FILE": ""}):
29
+ aws_env_vars = set(
30
+ env_var for env_var in os.environ.keys() if env_var.startswith("AWS_")
31
+ )
32
+ with modify_env_vars(deletions=aws_env_vars):
30
33
  s3_resource = boto3.resource("s3", **credentials)
31
34
  filesize = os.stat(file_path).st_size
32
35
 
@@ -7,7 +7,7 @@ logfile_maxbytes=0 ; No size limit on logfile (since logging is disabl
7
7
  [program:model-server]
8
8
  command={{start_command}} ; Command to start the model server (provided by Jinja variable)
9
9
  startsecs=30 ; Wait 30 seconds before assuming the server is running
10
- startretries=1 ; Do not retry if server fails to start
10
+ startretries=0 ; Do not retry if server fails to start
11
11
  autostart=true ; Automatically start the program when supervisord starts
12
12
  autorestart=false ; Don't restart the program
13
13
  stdout_logfile=/dev/fd/1 ; Send stdout to the first file descriptor (stdout)
@@ -0,0 +1,19 @@
1
+ import os
2
+
3
+ from truss.util.env_vars import modify_env_vars
4
+
5
+
6
+ def test_modify_env_vars():
7
+ os.environ["API_KEY"] = "original_key"
8
+ os.environ["AWS_CONFIG_FILE"] = "original_config_file"
9
+
10
+ with modify_env_vars(
11
+ overrides={"API_KEY": "new_key", "DEBUG": "true"}, deletions={"AWS_CONFIG_FILE"}
12
+ ):
13
+ assert os.environ["API_KEY"] == "new_key"
14
+ assert os.environ["DEBUG"] == "true"
15
+ assert "AWS_CONFIG_FILE" not in os.environ
16
+
17
+ assert os.environ["API_KEY"] == "original_key"
18
+ assert "DEBUG" not in os.environ
19
+ assert os.environ["AWS_CONFIG_FILE"] == "original_config_file"
@@ -1,32 +1,43 @@
1
1
  import os
2
- from typing import Dict, Optional
2
+ from typing import Dict, Optional, Set
3
3
 
4
4
 
5
- class override_env_vars:
5
+ class modify_env_vars:
6
6
  """A context manager for temporarily overwriting environment variables.
7
7
 
8
8
  Usage:
9
- with override_env_vars({'API_KEY': 'test_key', 'DEBUG': 'true'}):
9
+ with modify_env_vars(overrides={'API_KEY': 'test_key', 'DEBUG': 'true'}, deletions={'AWS_CONFIG_FILE'}):
10
10
  # Environment variables are modified here
11
11
  ...
12
12
  # Original environment is restored here
13
13
  """
14
14
 
15
- def __init__(self, env_vars: Dict[str, str]):
15
+ def __init__(
16
+ self,
17
+ overrides: Optional[Dict[str, str]] = None,
18
+ deletions: Optional[Set[str]] = None,
19
+ ):
16
20
  """
17
21
  Args:
18
- env_vars: Dictionary of environment variables to set
22
+ overrides: Dictionary of environment variables to set
23
+ deletions: Set of environment variables to delete
19
24
  """
20
- self.env_vars = env_vars
25
+ self.overrides: Dict[str, str] = overrides or dict()
26
+ self.deletions: Set[str] = deletions or set()
21
27
  self.original_vars: Dict[str, Optional[str]] = {}
22
28
 
23
29
  def __enter__(self):
24
- for key in self.env_vars:
30
+ all_keys = set(self.overrides.keys()) | self.deletions
31
+ for key in all_keys:
25
32
  self.original_vars[key] = os.environ.get(key)
26
33
 
27
- for key, value in self.env_vars.items():
34
+ for key, value in self.overrides.items():
28
35
  os.environ[key] = value
29
36
 
37
+ for key in self.deletions:
38
+ if key in os.environ:
39
+ del os.environ[key]
40
+
30
41
  return self
31
42
 
32
43
  def __exit__(self, exc_type, exc_val, exc_tb):
@@ -516,21 +516,14 @@ def _create_baseten_chain(
516
516
 
517
517
  _create_chains_secret_if_missing(remote_provider)
518
518
 
519
- # Get chain root for raw chain artifact upload
520
- chain_root = None
521
- if entrypoint_descriptor is not None:
522
- chain_root = _get_chain_root(entrypoint_descriptor.chainlet_cls)
523
-
524
519
  chain_deployment_handle = remote_provider.push_chain_atomic(
525
520
  baseten_options.chain_name,
526
521
  entrypoint_artifact,
527
522
  dependency_artifacts,
528
523
  truss_user_env,
529
- chain_root=chain_root,
530
524
  publish=baseten_options.publish,
531
525
  environment=baseten_options.environment,
532
526
  progress_bar=progress_bar,
533
- disable_chain_download=baseten_options.disable_chain_download,
534
527
  )
535
528
  return BasetenChainService(
536
529
  baseten_options.chain_name,
@@ -265,7 +265,6 @@ class PushOptionsBaseten(PushOptions):
265
265
  environment: Optional[str]
266
266
  include_git_info: bool
267
267
  working_dir: pathlib.Path
268
- disable_chain_download: bool = False
269
268
 
270
269
  @classmethod
271
270
  def create(
@@ -278,7 +277,6 @@ class PushOptionsBaseten(PushOptions):
278
277
  include_git_info: bool,
279
278
  working_dir: pathlib.Path,
280
279
  environment: Optional[str] = None,
281
- disable_chain_download: bool = False,
282
280
  ) -> "PushOptionsBaseten":
283
281
  if promote and not environment:
284
282
  environment = PRODUCTION_ENVIRONMENT_NAME
@@ -292,7 +290,6 @@ class PushOptionsBaseten(PushOptions):
292
290
  environment=environment,
293
291
  include_git_info=include_git_info,
294
292
  working_dir=working_dir,
295
- disable_chain_download=disable_chain_download,
296
293
  )
297
294
 
298
295
 
@@ -151,7 +151,6 @@ def push(
151
151
  environment: Optional[str] = None,
152
152
  progress_bar: Optional[Type["progress.Progress"]] = None,
153
153
  include_git_info: bool = False,
154
- disable_chain_download: bool = False,
155
154
  ) -> deployment_client.BasetenChainService:
156
155
  """
157
156
  Deploys a chain remotely (with all dependent chainlets).
@@ -173,7 +172,6 @@ def push(
173
172
  include_git_info: Whether to attach git versioning info (sha, branch, tag) to
174
173
  deployments made from within a git repo. If set to True in `.trussrc`, it
175
174
  will always be attached.
176
- disable_chain_download: Disable downloading of pushed chain source code from the UI.
177
175
 
178
176
  Returns:
179
177
  A chain service handle to the deployed chain.
@@ -188,7 +186,6 @@ def push(
188
186
  environment=environment,
189
187
  include_git_info=include_git_info,
190
188
  working_dir=pathlib.Path(inspect.getfile(entrypoint)).parent,
191
- disable_chain_download=disable_chain_download,
192
189
  )
193
190
  service = deployment_client.push(entrypoint, options, progress_bar=progress_bar)
194
191
  assert isinstance(
@@ -1,100 +0,0 @@
1
- """Tests for truss chains CLI commands."""
2
-
3
- from unittest.mock import Mock, patch
4
-
5
- from click.testing import CliRunner
6
-
7
- from truss.cli.cli import truss_cli
8
-
9
-
10
- def test_chains_push_with_disable_chain_download_flag():
11
- """Test that --disable-chain-download flag is properly parsed and passed through."""
12
- runner = CliRunner()
13
-
14
- mock_entrypoint_cls = Mock()
15
- mock_entrypoint_cls.meta_data.chain_name = "test_chain"
16
- mock_entrypoint_cls.display_name = "TestChain"
17
-
18
- mock_service = Mock()
19
- mock_service.run_remote_url = "http://test.com/run_remote"
20
- mock_service.is_websocket = False
21
-
22
- with patch(
23
- "truss_chains.framework.ChainletImporter.import_target"
24
- ) as mock_importer:
25
- with patch("truss_chains.deployment.deployment_client.push") as mock_push:
26
- mock_importer.return_value.__enter__.return_value = mock_entrypoint_cls
27
- mock_push.return_value = mock_service
28
-
29
- result = runner.invoke(
30
- truss_cli,
31
- [
32
- "chains",
33
- "push",
34
- "test_chain.py",
35
- "--disable-chain-download",
36
- "--remote",
37
- "test_remote",
38
- "--dryrun",
39
- ],
40
- )
41
-
42
- assert result.exit_code == 0
43
-
44
- mock_push.assert_called_once()
45
- call_args = mock_push.call_args
46
- options = call_args[0][1]
47
-
48
- assert hasattr(options, "disable_chain_download")
49
- assert options.disable_chain_download is True
50
-
51
-
52
- def test_chains_push_without_disable_chain_download_flag():
53
- """Test that disable_chain_download defaults to False when flag is not provided."""
54
- runner = CliRunner()
55
-
56
- mock_entrypoint_cls = Mock()
57
- mock_entrypoint_cls.meta_data.chain_name = "test_chain"
58
- mock_entrypoint_cls.display_name = "TestChain"
59
-
60
- mock_service = Mock()
61
- mock_service.run_remote_url = "http://test.com/run_remote"
62
- mock_service.is_websocket = False
63
-
64
- with patch(
65
- "truss_chains.framework.ChainletImporter.import_target"
66
- ) as mock_importer:
67
- with patch("truss_chains.deployment.deployment_client.push") as mock_push:
68
- mock_importer.return_value.__enter__.return_value = mock_entrypoint_cls
69
- mock_push.return_value = mock_service
70
-
71
- result = runner.invoke(
72
- truss_cli,
73
- [
74
- "chains",
75
- "push",
76
- "test_chain.py",
77
- "--remote",
78
- "test_remote",
79
- "--dryrun",
80
- ],
81
- )
82
-
83
- assert result.exit_code == 0
84
-
85
- mock_push.assert_called_once()
86
- call_args = mock_push.call_args
87
- options = call_args[0][1]
88
-
89
- assert hasattr(options, "disable_chain_download")
90
- assert options.disable_chain_download is False
91
-
92
-
93
- def test_chains_push_help_includes_disable_chain_download():
94
- """Test that --disable-chain-download appears in the help output."""
95
- runner = CliRunner()
96
-
97
- result = runner.invoke(truss_cli, ["chains", "push", "--help"])
98
-
99
- assert result.exit_code == 0
100
- assert "--disable-chain-download" in result.output