truss 0.11.2rc505__tar.gz → 0.11.4__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 (411) hide show
  1. {truss-0.11.2rc505 → truss-0.11.4}/PKG-INFO +1 -1
  2. {truss-0.11.2rc505 → truss-0.11.4}/pyproject.toml +1 -1
  3. {truss-0.11.2rc505 → truss-0.11.4}/truss/api/__init__.py +5 -0
  4. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/api.py +8 -0
  5. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/custom_types.py +7 -0
  6. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/requirements.txt +2 -1
  7. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server/requirements.txt +2 -1
  8. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/patch/test_calc_patch.py +30 -51
  9. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_control_truss_patching.py +0 -2
  10. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/patch/calc_patch.py +9 -6
  11. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/deployment/code_gen.py +3 -3
  12. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/deployment/deployment_client.py +11 -4
  13. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/public_types.py +9 -4
  14. {truss-0.11.2rc505 → truss-0.11.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  15. {truss-0.11.2rc505 → truss-0.11.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  16. {truss-0.11.2rc505 → truss-0.11.4}/.github/pull_request_template.md +0 -0
  17. {truss-0.11.2rc505 → truss-0.11.4}/.gitignore +0 -0
  18. {truss-0.11.2rc505 → truss-0.11.4}/CODE_OF_CONDUCT.md +0 -0
  19. {truss-0.11.2rc505 → truss-0.11.4}/CONTRIBUTING.md +0 -0
  20. {truss-0.11.2rc505 → truss-0.11.4}/LICENSE +0 -0
  21. {truss-0.11.2rc505 → truss-0.11.4}/README.md +0 -0
  22. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/README.md +0 -0
  23. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/README.md +0 -0
  24. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/android-arm-eabi/README.md +0 -0
  25. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/android-arm64/README.md +0 -0
  26. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/darwin-arm64/README.md +0 -0
  27. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/darwin-universal/README.md +0 -0
  28. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/darwin-x64/README.md +0 -0
  29. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/freebsd-x64/README.md +0 -0
  30. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/linux-arm-gnueabihf/README.md +0 -0
  31. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/linux-arm-musleabihf/README.md +0 -0
  32. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/linux-arm64-gnu/README.md +0 -0
  33. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/linux-arm64-musl/README.md +0 -0
  34. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/linux-riscv64-gnu/README.md +0 -0
  35. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/linux-x64-gnu/README.md +0 -0
  36. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/linux-x64-musl/README.md +0 -0
  37. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/win32-arm64-msvc/README.md +0 -0
  38. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/win32-ia32-msvc/README.md +0 -0
  39. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/node_bindings/npm/win32-x64-msvc/README.md +0 -0
  40. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/python_bindings/README.md +0 -0
  41. {truss-0.11.2rc505 → truss-0.11.4}/baseten-performance-client/scripts/README_nodejs.md +0 -0
  42. {truss-0.11.2rc505 → truss-0.11.4}/context_builder.Dockerfile +0 -0
  43. {truss-0.11.2rc505 → truss-0.11.4}/docs/README.md +0 -0
  44. {truss-0.11.2rc505 → truss-0.11.4}/docs/chains/doc_gen/README.md +0 -0
  45. {truss-0.11.2rc505 → truss-0.11.4}/docs/contribute/base-images.md +0 -0
  46. {truss-0.11.2rc505 → truss-0.11.4}/docs/contribute/release.md +0 -0
  47. {truss-0.11.2rc505 → truss-0.11.4}/truss/__init__.py +0 -0
  48. {truss-0.11.2rc505 → truss-0.11.4}/truss/api/definitions.py +0 -0
  49. {truss-0.11.2rc505 → truss-0.11.4}/truss/base/__init__.py +0 -0
  50. {truss-0.11.2rc505 → truss-0.11.4}/truss/base/constants.py +0 -0
  51. {truss-0.11.2rc505 → truss-0.11.4}/truss/base/custom_types.py +0 -0
  52. {truss-0.11.2rc505 → truss-0.11.4}/truss/base/errors.py +0 -0
  53. {truss-0.11.2rc505 → truss-0.11.4}/truss/base/trt_llm_config.py +0 -0
  54. {truss-0.11.2rc505 → truss-0.11.4}/truss/base/truss_config.py +0 -0
  55. {truss-0.11.2rc505 → truss-0.11.4}/truss/base/truss_spec.py +0 -0
  56. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/chains_commands.py +0 -0
  57. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/cli.py +0 -0
  58. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/logs/base_watcher.py +0 -0
  59. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/logs/model_log_watcher.py +0 -0
  60. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/logs/training_log_watcher.py +0 -0
  61. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/logs/utils.py +0 -0
  62. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/remote_cli.py +0 -0
  63. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/common.py +0 -0
  64. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/core.py +0 -0
  65. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/deploy_checkpoints/__init__.py +0 -0
  66. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/deploy_checkpoints/deploy_checkpoints.py +0 -0
  67. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/deploy_checkpoints/deploy_checkpoints_helpers.py +0 -0
  68. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/deploy_checkpoints/deploy_full_checkpoints.py +0 -0
  69. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/deploy_checkpoints/deploy_lora_checkpoints.py +0 -0
  70. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/deploy_checkpoints/deploy_whisper_checkpoints.py +0 -0
  71. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/deploy_from_checkpoint_config.yml +0 -0
  72. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/deploy_from_checkpoint_config_whisper.yml +0 -0
  73. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/metrics_watcher.py +0 -0
  74. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/poller.py +0 -0
  75. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train/types.py +0 -0
  76. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/train_commands.py +0 -0
  77. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/utils/common.py +0 -0
  78. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/utils/output.py +0 -0
  79. {truss-0.11.2rc505 → truss-0.11.4}/truss/cli/utils/self_upgrade.py +0 -0
  80. {truss-0.11.2rc505 → truss-0.11.4}/truss/contexts/docker_build_setup.py +0 -0
  81. {truss-0.11.2rc505 → truss-0.11.4}/truss/contexts/image_builder/cache_warmer.py +0 -0
  82. {truss-0.11.2rc505 → truss-0.11.4}/truss/contexts/image_builder/image_builder.py +0 -0
  83. {truss-0.11.2rc505 → truss-0.11.4}/truss/contexts/image_builder/serving_image_builder.py +0 -0
  84. {truss-0.11.2rc505 → truss-0.11.4}/truss/contexts/image_builder/util.py +0 -0
  85. {truss-0.11.2rc505 → truss-0.11.4}/truss/contexts/local_loader/docker_build_emulator.py +0 -0
  86. {truss-0.11.2rc505 → truss-0.11.4}/truss/contexts/local_loader/dockerfile_parser.py +0 -0
  87. {truss-0.11.2rc505 → truss-0.11.4}/truss/contexts/local_loader/load_model_local.py +0 -0
  88. {truss-0.11.2rc505 → truss-0.11.4}/truss/contexts/local_loader/truss_module_loader.py +0 -0
  89. {truss-0.11.2rc505 → truss-0.11.4}/truss/contexts/local_loader/utils.py +0 -0
  90. {truss-0.11.2rc505 → truss-0.11.4}/truss/contexts/truss_context.py +0 -0
  91. {truss-0.11.2rc505 → truss-0.11.4}/truss/local/local_config.py +0 -0
  92. {truss-0.11.2rc505 → truss-0.11.4}/truss/local/local_config_handler.py +0 -0
  93. {truss-0.11.2rc505 → truss-0.11.4}/truss/patch/__init__.py +0 -0
  94. {truss-0.11.2rc505 → truss-0.11.4}/truss/patch/hash.py +0 -0
  95. {truss-0.11.2rc505 → truss-0.11.4}/truss/patch/signature.py +0 -0
  96. {truss-0.11.2rc505 → truss-0.11.4}/truss/patch/truss_dir_patch_applier.py +0 -0
  97. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/__init__.py +0 -0
  98. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/auth.py +0 -0
  99. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/core.py +0 -0
  100. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/error.py +0 -0
  101. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/remote.py +0 -0
  102. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/rest_client.py +0 -0
  103. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/service.py +0 -0
  104. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/utils/status.py +0 -0
  105. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/utils/tar.py +0 -0
  106. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/utils/time.py +0 -0
  107. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/baseten/utils/transfer.py +0 -0
  108. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/remote_factory.py +0 -0
  109. {truss-0.11.2rc505 → truss-0.11.4}/truss/remote/truss_remote.py +0 -0
  110. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/README.md.jinja +0 -0
  111. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/__init__.py +0 -0
  112. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/base.Dockerfile.jinja +0 -0
  113. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/cache.Dockerfile.jinja +0 -0
  114. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/cache_requirements.txt +0 -0
  115. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/application.py +0 -0
  116. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/endpoints.py +0 -0
  117. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/helpers/context_managers.py +0 -0
  118. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/helpers/custom_types.py +0 -0
  119. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/helpers/errors.py +0 -0
  120. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/helpers/inference_server_controller.py +0 -0
  121. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/helpers/inference_server_process_controller.py +0 -0
  122. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/helpers/inference_server_starter.py +0 -0
  123. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/helpers/truss_patch/__init__.py +0 -0
  124. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/helpers/truss_patch/model_code_patch_applier.py +0 -0
  125. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/helpers/truss_patch/model_container_patch_applier.py +0 -0
  126. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/helpers/truss_patch/requirement_name_identifier.py +0 -0
  127. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/helpers/truss_patch/system_packages.py +0 -0
  128. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/control/control/server.py +0 -0
  129. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/copy_cache_files.Dockerfile.jinja +0 -0
  130. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/custom/examples.yaml +0 -0
  131. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/custom/model/__init__.py +0 -0
  132. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/custom/model/model.py +0 -0
  133. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/custom_python_dx/my_model.py +0 -0
  134. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/docker_server/proxy.conf.jinja +0 -0
  135. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/docker_server/supervisord.conf.jinja +0 -0
  136. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/docker_server_requirements.txt +0 -0
  137. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server/__init__.py +0 -0
  138. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server/common/__init__.py +0 -0
  139. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server/common/errors.py +0 -0
  140. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server/common/patches/whisper/patch.py +0 -0
  141. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server/common/patches.py +0 -0
  142. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server/common/retry.py +0 -0
  143. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server/common/schema.py +0 -0
  144. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server/common/tracing.py +0 -0
  145. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server/main.py +0 -0
  146. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server/model_wrapper.py +0 -0
  147. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server/truss_server.py +0 -0
  148. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/server.Dockerfile.jinja +0 -0
  149. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/shared/__init__.py +0 -0
  150. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/shared/dynamic_config_resolver.py +0 -0
  151. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/shared/lazy_data_resolver.py +0 -0
  152. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/shared/log_config.py +0 -0
  153. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/shared/secrets_resolver.py +0 -0
  154. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/shared/serialization.py +0 -0
  155. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/shared/util.py +0 -0
  156. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/train/config.py +0 -0
  157. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/train/run.sh +0 -0
  158. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/trtllm-audio/model/model.py +0 -0
  159. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/trtllm-audio/packages/sigint_patch.py +0 -0
  160. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/trtllm-audio/packages/whisper_trt/__init__.py +0 -0
  161. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/trtllm-audio/packages/whisper_trt/assets.py +0 -0
  162. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/trtllm-audio/packages/whisper_trt/batching.py +0 -0
  163. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/trtllm-audio/packages/whisper_trt/custom_types.py +0 -0
  164. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/trtllm-audio/packages/whisper_trt/modeling.py +0 -0
  165. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/trtllm-audio/packages/whisper_trt/tokenizer.py +0 -0
  166. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/trtllm-audio/packages/whisper_trt/utils.py +0 -0
  167. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/trtllm-briton/README.md +0 -0
  168. {truss-0.11.2rc505 → truss-0.11.4}/truss/templates/trtllm-briton/src/extension.py +0 -0
  169. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/__init__.py +0 -0
  170. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/cli/test_cli.py +0 -0
  171. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/cli/train/resources/test_deploy_from_checkpoint_config.yml +0 -0
  172. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/cli/train/test_cache_view.py +0 -0
  173. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/cli/train/test_deploy_checkpoints.py +0 -0
  174. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/cli/train/test_train_cli_core.py +0 -0
  175. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/cli/train/test_train_init.py +0 -0
  176. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/conftest.py +0 -0
  177. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/contexts/image_builder/test_serving_image_builder.py +0 -0
  178. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/contexts/local_loader/test_load_local.py +0 -0
  179. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/contexts/local_loader/test_truss_module_finder.py +0 -0
  180. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/helpers.py +0 -0
  181. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/local/test_local_config_handler.py +0 -0
  182. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/patch/test_dir_signature.py +0 -0
  183. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/patch/test_hash.py +0 -0
  184. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/patch/test_signature.py +0 -0
  185. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/patch/test_truss_dir_patch_applier.py +0 -0
  186. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/patch/test_types.py +0 -0
  187. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/remote/baseten/conftest.py +0 -0
  188. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/remote/baseten/test_api.py +0 -0
  189. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/remote/baseten/test_auth.py +0 -0
  190. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/remote/baseten/test_core.py +0 -0
  191. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/remote/baseten/test_remote.py +0 -0
  192. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/remote/baseten/test_service.py +0 -0
  193. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/remote/test_remote_factory.py +0 -0
  194. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/remote/test_truss_remote.py +0 -0
  195. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/control/control/helpers/test_context_managers.py +0 -0
  196. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/control/control/helpers/test_model_container_patch_applier.py +0 -0
  197. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/control/control/helpers/test_requirement_name_identifier.py +0 -0
  198. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/control/control/test_endpoints.py +0 -0
  199. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/control/control/test_server.py +0 -0
  200. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/control/control/test_server_integration.py +0 -0
  201. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/core/server/test_dynamic_config_resolver.py +0 -0
  202. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/core/server/test_lazy_data_resolver_v2.py +0 -0
  203. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/core/server/test_secrets_resolver.py +0 -0
  204. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/server/common/test_retry.py +0 -0
  205. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/server/test_model_wrapper.py +0 -0
  206. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/server/test_schema.py +0 -0
  207. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/templates/server/test_truss_server.py +0 -0
  208. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_build.py +0 -0
  209. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_config.py +0 -0
  210. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_context_builder_image.py +0 -0
  211. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_custom_server.py +0 -0
  212. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/__init__.py +0 -0
  213. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/annotated_types_truss/__init__.py +0 -0
  214. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/annotated_types_truss/config.yaml +0 -0
  215. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/annotated_types_truss/model/__init__.py +0 -0
  216. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/annotated_types_truss/model/model.py +0 -0
  217. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/auto-mpg.data +0 -0
  218. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/context_builder_image_test/Dockerfile +0 -0
  219. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/context_builder_image_test/__init__.py +0 -0
  220. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/context_builder_image_test/test.py +0 -0
  221. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/gcs_fix/__init__.py +0 -0
  222. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/gcs_fix/config.yaml +0 -0
  223. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/gcs_fix/model/__init__.py +0 -0
  224. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/gcs_fix/model/model.py +0 -0
  225. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/happy.ipynb +0 -0
  226. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/model_load_failure_test/__init__.py +0 -0
  227. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/model_load_failure_test/config.yaml +0 -0
  228. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/model_load_failure_test/model/__init__.py +0 -0
  229. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/model_load_failure_test/model/model.py +0 -0
  230. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/patch_ping_test_server/__init__.py +0 -0
  231. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/patch_ping_test_server/app.py +0 -0
  232. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/pima-indians-diabetes.csv +0 -0
  233. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/readme_int_example.md +0 -0
  234. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/readme_no_example.md +0 -0
  235. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/readme_str_example.md +0 -0
  236. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/server.Dockerfile +0 -0
  237. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/server_conformance_test_truss/__init__.py +0 -0
  238. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/server_conformance_test_truss/config.yaml +0 -0
  239. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/server_conformance_test_truss/model/__init__.py +0 -0
  240. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/server_conformance_test_truss/model/model.py +0 -0
  241. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_async_truss/__init__.py +0 -0
  242. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_async_truss/config.yaml +0 -0
  243. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_async_truss/model/__init__.py +0 -0
  244. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_async_truss/model/model.py +0 -0
  245. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_basic_truss/__init__.py +0 -0
  246. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_basic_truss/config.yaml +0 -0
  247. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_basic_truss/model/__init__.py +0 -0
  248. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_basic_truss/model/model.py +0 -0
  249. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_build_commands/__init__.py +0 -0
  250. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_build_commands/config.yaml +0 -0
  251. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_build_commands/model/__init__.py +0 -0
  252. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_build_commands/model/model.py +0 -0
  253. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_build_commands_failure/__init__.py +0 -0
  254. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_build_commands_failure/config.yaml +0 -0
  255. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_build_commands_failure/model/__init__.py +0 -0
  256. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_build_commands_failure/model/model.py +0 -0
  257. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_concurrency_truss/__init__.py +0 -0
  258. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_concurrency_truss/config.yaml +0 -0
  259. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_concurrency_truss/model/__init__.py +0 -0
  260. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_concurrency_truss/model/model.py +0 -0
  261. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_custom_server_truss/__init__.py +0 -0
  262. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_custom_server_truss/config.yaml +0 -0
  263. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_custom_server_truss/test_docker_image/Dockerfile +0 -0
  264. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_custom_server_truss/test_docker_image/README.md +0 -0
  265. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_custom_server_truss/test_docker_image/VERSION +0 -0
  266. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_custom_server_truss/test_docker_image/__init__.py +0 -0
  267. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_custom_server_truss/test_docker_image/app.py +0 -0
  268. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_custom_server_truss/test_docker_image/build_upload_new_image.sh +0 -0
  269. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_env_vars/config.yaml +0 -0
  270. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_go_custom_server_truss/config.yaml +0 -0
  271. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_go_custom_server_truss/docker/Dockerfile +0 -0
  272. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_go_custom_server_truss/docker/README.md +0 -0
  273. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_go_custom_server_truss/docker/VERSION +0 -0
  274. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_go_custom_server_truss/docker/build_upload_new_image.sh +0 -0
  275. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_go_custom_server_truss/docker/main.go +0 -0
  276. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_openai/__init__.py +0 -0
  277. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_openai/config.yaml +0 -0
  278. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_openai/model/__init__.py +0 -0
  279. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_openai/model/model.py +0 -0
  280. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_pyantic_v1/__init__.py +0 -0
  281. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_pyantic_v1/config.yaml +0 -0
  282. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_pyantic_v1/model/__init__.py +0 -0
  283. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_pyantic_v1/model/model.py +0 -0
  284. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_pyantic_v1/requirements.txt +0 -0
  285. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_pyantic_v2/__init__.py +0 -0
  286. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_pyantic_v2/config.yaml +0 -0
  287. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_pyantic_v2/model/__init__.py +0 -0
  288. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_pyantic_v2/model/model.py +0 -0
  289. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_pyantic_v2/requirements.txt +0 -0
  290. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_requirements_file_truss/__init__.py +0 -0
  291. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_requirements_file_truss/config.yaml +0 -0
  292. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_requirements_file_truss/model/__init__.py +0 -0
  293. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_requirements_file_truss/model/model.py +0 -0
  294. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_requirements_file_truss/requirements.txt +0 -0
  295. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_async_generator_truss/__init__.py +0 -0
  296. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_async_generator_truss/config.yaml +0 -0
  297. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_async_generator_truss/model/__init__.py +0 -0
  298. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_async_generator_truss/model/model.py +0 -0
  299. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_read_timeout/__init__.py +0 -0
  300. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_read_timeout/config.yaml +0 -0
  301. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_read_timeout/model/__init__.py +0 -0
  302. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_read_timeout/model/model.py +0 -0
  303. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss/__init__.py +0 -0
  304. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss/config.yaml +0 -0
  305. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss/model/__init__.py +0 -0
  306. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss/model/model.py +0 -0
  307. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss_with_error/__init__.py +0 -0
  308. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss_with_error/config.yaml +0 -0
  309. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss_with_error/model/__init__.py +0 -0
  310. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss_with_error/model/model.py +0 -0
  311. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss_with_error/packages/__init__.py +0 -0
  312. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss_with_error/packages/helpers_1.py +0 -0
  313. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss_with_error/packages/helpers_2.py +0 -0
  314. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss_with_tracing/__init__.py +0 -0
  315. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss_with_tracing/config.yaml +0 -0
  316. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss_with_tracing/model/__init__.py +0 -0
  317. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_streaming_truss_with_tracing/model/model.py +0 -0
  318. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_trt_llm_truss/__init__.py +0 -0
  319. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_trt_llm_truss/config.yaml +0 -0
  320. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_trt_llm_truss/model/__init__.py +0 -0
  321. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_trt_llm_truss/model/model.py +0 -0
  322. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss/__init__.py +0 -0
  323. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss/config.yaml +0 -0
  324. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss/examples.yaml +0 -0
  325. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss/model/__init__.py +0 -0
  326. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss/model/dummy +0 -0
  327. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss/model/model.py +0 -0
  328. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss/packages/__init__.py +0 -0
  329. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss/packages/test_package/__init__.py +0 -0
  330. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss/packages/test_package/test.py +0 -0
  331. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_server_model_cache_v1/__init__.py +0 -0
  332. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_server_model_cache_v1/config.yaml +0 -0
  333. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_server_model_cache_v1/model/__init__.py +0 -0
  334. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_server_model_cache_v1/model/model.py +0 -0
  335. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_server_model_cache_v2/__init__.py +0 -0
  336. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_server_model_cache_v2/config.yaml +0 -0
  337. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_server_model_cache_v2/model/__init__.py +0 -0
  338. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_server_model_cache_v2/model/model.py +0 -0
  339. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_with_error/__init__.py +0 -0
  340. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_with_error/config.yaml +0 -0
  341. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_with_error/model/__init__.py +0 -0
  342. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_with_error/model/model.py +0 -0
  343. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_with_error/packages/__init__.py +0 -0
  344. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_with_error/packages/helpers_1.py +0 -0
  345. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_data/test_truss_with_error/packages/helpers_2.py +0 -0
  346. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_docker.py +0 -0
  347. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_model_inference.py +0 -0
  348. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_model_schema.py +0 -0
  349. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_testing_utilities_for_other_tests.py +0 -0
  350. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_truss_gatherer.py +0 -0
  351. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_truss_handle.py +0 -0
  352. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/test_util.py +0 -0
  353. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/trt_llm/test_trt_llm_config.py +0 -0
  354. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/trt_llm/test_validation.py +0 -0
  355. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/util/test_config_checks.py +0 -0
  356. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/util/test_env_vars.py +0 -0
  357. {truss-0.11.2rc505 → truss-0.11.4}/truss/tests/util/test_path.py +0 -0
  358. {truss-0.11.2rc505 → truss-0.11.4}/truss/trt_llm/config_checks.py +0 -0
  359. {truss-0.11.2rc505 → truss-0.11.4}/truss/trt_llm/validation.py +0 -0
  360. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/__init__.py +0 -0
  361. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/build.py +0 -0
  362. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/decorators.py +0 -0
  363. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/patch/__init__.py +0 -0
  364. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/patch/constants.py +0 -0
  365. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/patch/custom_types.py +0 -0
  366. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/patch/dir_signature.py +0 -0
  367. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/patch/hash.py +0 -0
  368. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/patch/local_truss_patch_applier.py +0 -0
  369. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/patch/signature.py +0 -0
  370. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/patch/truss_dir_patch_applier.py +0 -0
  371. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/readme_generator.py +0 -0
  372. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/truss_gatherer.py +0 -0
  373. {truss-0.11.2rc505 → truss-0.11.4}/truss/truss_handle/truss_handle.py +0 -0
  374. {truss-0.11.2rc505 → truss-0.11.4}/truss/util/.truss_ignore +0 -0
  375. {truss-0.11.2rc505 → truss-0.11.4}/truss/util/docker.py +0 -0
  376. {truss-0.11.2rc505 → truss-0.11.4}/truss/util/download.py +0 -0
  377. {truss-0.11.2rc505 → truss-0.11.4}/truss/util/env_vars.py +0 -0
  378. {truss-0.11.2rc505 → truss-0.11.4}/truss/util/gpu.py +0 -0
  379. {truss-0.11.2rc505 → truss-0.11.4}/truss/util/jinja.py +0 -0
  380. {truss-0.11.2rc505 → truss-0.11.4}/truss/util/log_utils.py +0 -0
  381. {truss-0.11.2rc505 → truss-0.11.4}/truss/util/notebook.py +0 -0
  382. {truss-0.11.2rc505 → truss-0.11.4}/truss/util/path.py +0 -0
  383. {truss-0.11.2rc505 → truss-0.11.4}/truss/util/requirements.py +0 -0
  384. {truss-0.11.2rc505 → truss-0.11.4}/truss/util/user_config.py +0 -0
  385. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/examples/README.md +0 -0
  386. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/examples/audio-transcription/README.md +0 -0
  387. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/examples/rag/README.md +0 -0
  388. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/tests/itest_chain/requirements.txt +0 -0
  389. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/__init__.py +0 -0
  390. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/deployment/__init__.py +0 -0
  391. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/framework.py +0 -0
  392. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/private_types.py +0 -0
  393. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/public_api.py +0 -0
  394. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/py.typed +0 -0
  395. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/pydantic_numpy.py +0 -0
  396. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/reference_code/reference_chainlet.py +0 -0
  397. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/reference_code/reference_model.py +0 -0
  398. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/remote_chainlet/__init__.py +0 -0
  399. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/remote_chainlet/model_skeleton.py +0 -0
  400. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/remote_chainlet/stub.py +0 -0
  401. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/remote_chainlet/utils.py +0 -0
  402. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/streaming.py +0 -0
  403. {truss-0.11.2rc505 → truss-0.11.4}/truss-chains/truss_chains/utils.py +0 -0
  404. {truss-0.11.2rc505 → truss-0.11.4}/truss-train/truss_train/__init__.py +0 -0
  405. {truss-0.11.2rc505 → truss-0.11.4}/truss-train/truss_train/definitions.py +0 -0
  406. {truss-0.11.2rc505 → truss-0.11.4}/truss-train/truss_train/deployment.py +0 -0
  407. {truss-0.11.2rc505 → truss-0.11.4}/truss-train/truss_train/loader.py +0 -0
  408. {truss-0.11.2rc505 → truss-0.11.4}/truss-train/truss_train/public_api.py +0 -0
  409. {truss-0.11.2rc505 → truss-0.11.4}/truss-train/truss_train/restore_from_checkpoint.py +0 -0
  410. {truss-0.11.2rc505 → truss-0.11.4}/truss-transfer/README.md +0 -0
  411. {truss-0.11.2rc505 → truss-0.11.4}/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.2rc505
3
+ Version: 0.11.4
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.2rc505"
3
+ version = "0.11.4"
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" },
@@ -64,6 +64,7 @@ def push(
64
64
  environment: Optional[str] = None,
65
65
  progress_bar: Optional[Type["progress.Progress"]] = None,
66
66
  include_git_info: bool = False,
67
+ preserve_env_instance_type: bool = True,
67
68
  ) -> definitions.ModelDeployment:
68
69
  """
69
70
  Pushes a Truss to Baseten.
@@ -88,6 +89,9 @@ def push(
88
89
  include_git_info: Whether to attach git versioning info (sha, branch, tag) to
89
90
  deployments made from within a git repo. If set to True in `.trussrc`, it
90
91
  will always be attached.
92
+ preserve_env_instance_type: When pushing a truss to an environment, whether to use the resources
93
+ specified in the truss config to resolve the instance type or preserve the instance type
94
+ configured in the specified environment.
91
95
 
92
96
  Returns:
93
97
  The newly created ModelDeployment.
@@ -130,6 +134,7 @@ def push(
130
134
  environment=environment,
131
135
  progress_bar=progress_bar,
132
136
  include_git_info=include_git_info,
137
+ preserve_env_instance_type=preserve_env_instance_type,
133
138
  ) # type: ignore
134
139
 
135
140
  return definitions.ModelDeployment(cast(BasetenService, service))
@@ -6,6 +6,7 @@ import requests
6
6
 
7
7
  from truss.remote.baseten import custom_types as b10_types
8
8
  from truss.remote.baseten.auth import ApiKey, AuthService
9
+ from truss.remote.baseten.custom_types import APIKeyCategory
9
10
  from truss.remote.baseten.error import ApiError
10
11
  from truss.remote.baseten.rest_client import RestAPIClient
11
12
  from truss.remote.baseten.utils.transfer import base64_encoded_json_str
@@ -560,6 +561,13 @@ class BasetenApi:
560
561
  def get_all_secrets(self) -> Any:
561
562
  return self._rest_api_client.get("v1/secrets")
562
563
 
564
+ # NOTE(Tyron): `name` is required because all official
565
+ # Baseten API keys should have a descriptive name.
566
+ def create_api_key(self, api_key_type: APIKeyCategory, name: str) -> Any:
567
+ return self._rest_api_client.post(
568
+ "v1/api_keys", body={"type": api_key_type.value, "name": name}
569
+ )
570
+
563
571
  def upsert_training_project(self, training_project):
564
572
  resp_json = self._rest_api_client.post(
565
573
  "v1/training_projects",
@@ -155,3 +155,10 @@ class GetCacheSummaryResponseV1(pydantic.BaseModel):
155
155
  file_summaries: list[FileSummary] = pydantic.Field(
156
156
  description="List of files in the cache"
157
157
  )
158
+
159
+
160
+ class APIKeyCategory(Enum):
161
+ PERSONAL = "PERSONAL"
162
+ WORKSPACE_MANAGE_ALL = "WORKSPACE_MANAGE_ALL"
163
+ WORKSPACE_EXPORT_METRICS = "WORKSPACE_EXPORT_METRICS"
164
+ WORKSPACE_INVOKE = "WORKSPACE_INVOKE"
@@ -7,6 +7,7 @@ python-json-logger>=2.0.2
7
7
  tenacity>=8.1.0
8
8
  # To avoid divergence, this should follow the latest release.
9
9
  truss==0.11.1
10
- uvicorn>=0.24.0
10
+ # NB(nikhil): Uvicorn 0.36.0 has breaking changes for the event loop, so we pin to a lower version.
11
+ uvicorn>=0.24.0,<0.36.0
11
12
  uvloop>=0.19.0
12
13
  websockets>=10.0
@@ -19,6 +19,7 @@ python-json-logger>=2.0.2
19
19
  pyyaml>=6.0.0
20
20
  requests>=2.31.0
21
21
  truss-transfer==0.0.30
22
- uvicorn>=0.24.0
22
+ # NB(nikhil): Uvicorn 0.36.0 has breaking changes for the event loop, so we pin to a lower version.
23
+ uvicorn>=0.24.0,<0.36.0
23
24
  uvloop>=0.19.0
24
25
  websockets>=10.0
@@ -16,7 +16,6 @@ from truss.templates.control.control.helpers.custom_types import (
16
16
  Patch,
17
17
  PatchType,
18
18
  PythonRequirementPatch,
19
- SystemPackagePatch,
20
19
  )
21
20
  from truss.truss_handle.patch.calc_patch import (
22
21
  _calc_python_requirements_patches,
@@ -736,45 +735,33 @@ def test_calc_config_patches_add_remove_env_var(custom_model_truss_dir: Path):
736
735
  ]
737
736
 
738
737
 
739
- def test_calc_config_patches_add_system_package(custom_model_truss_dir: Path):
740
- patches = _apply_config_change_and_calc_patches(
741
- custom_model_truss_dir, lambda config: config.system_packages.append("curl")
742
- )
743
- # System package changes no longer generate separate patches - only config patches
744
- # System packages will require full rebuild instead of patching
745
- assert len(patches) == 1
746
- assert patches == [
747
- Patch(
748
- type=PatchType.CONFIG,
749
- body=ConfigPatch(
750
- action=Action.UPDATE,
751
- config=yaml.safe_load((custom_model_truss_dir / "config.yaml").open()),
752
- ),
753
- ),
754
- ]
738
+ def test_system_package_changes_make_truss_unpatchable_add(
739
+ custom_model_truss_dir: Path,
740
+ ):
741
+ # System package changes should raise a ValueError indicating full rebuild required
742
+ with pytest.raises(
743
+ ValueError, match="System package changes detected - full rebuild required"
744
+ ):
745
+ _apply_config_change_and_calc_patches(
746
+ custom_model_truss_dir, lambda config: config.system_packages.append("curl")
747
+ )
755
748
 
756
749
 
757
- def test_calc_config_patches_remove_system_package(custom_model_truss_dir: Path):
758
- patches = _apply_config_change_and_calc_patches(
759
- custom_model_truss_dir,
760
- config_pre_op=lambda config: config.system_packages.append("curl"),
761
- config_op=lambda config: config.system_packages.clear(),
762
- )
763
- # System package changes no longer generate separate patches - only config patches
764
- # System packages will require full rebuild instead of patching
765
- assert len(patches) == 1
766
- assert patches == [
767
- Patch(
768
- type=PatchType.CONFIG,
769
- body=ConfigPatch(
770
- action=Action.UPDATE,
771
- config=yaml.safe_load((custom_model_truss_dir / "config.yaml").open()),
772
- ),
773
- ),
774
- ]
750
+ def test_system_package_changes_make_truss_unpatchable_remove(
751
+ custom_model_truss_dir: Path,
752
+ ):
753
+ # System package changes should raise a ValueError indicating full rebuild required
754
+ with pytest.raises(
755
+ ValueError, match="System package changes detected - full rebuild required"
756
+ ):
757
+ _apply_config_change_and_calc_patches(
758
+ custom_model_truss_dir,
759
+ config_pre_op=lambda config: config.system_packages.append("curl"),
760
+ config_op=lambda config: config.system_packages.clear(),
761
+ )
775
762
 
776
763
 
777
- def test_calc_config_patches_add_and_remove_system_package(
764
+ def test_system_package_changes_make_truss_unpatchable_modify(
778
765
  custom_model_truss_dir: Path,
779
766
  ):
780
767
  def config_pre_op(config: TrussConfig):
@@ -783,21 +770,13 @@ def test_calc_config_patches_add_and_remove_system_package(
783
770
  def config_op(config: TrussConfig):
784
771
  config.system_packages = ["curl", "libsnd"]
785
772
 
786
- patches = _apply_config_change_and_calc_patches(
787
- custom_model_truss_dir, config_pre_op=config_pre_op, config_op=config_op
788
- )
789
- # System package changes no longer generate separate patches - only config patches
790
- # System packages will require full rebuild instead of patching
791
- assert len(patches) == 1
792
- assert patches == [
793
- Patch(
794
- type=PatchType.CONFIG,
795
- body=ConfigPatch(
796
- action=Action.UPDATE,
797
- config=yaml.safe_load((custom_model_truss_dir / "config.yaml").open()),
798
- ),
799
- ),
800
- ]
773
+ # System package changes should raise a ValueError indicating full rebuild required
774
+ with pytest.raises(
775
+ ValueError, match="System package changes detected - full rebuild required"
776
+ ):
777
+ _apply_config_change_and_calc_patches(
778
+ custom_model_truss_dir, config_pre_op=config_pre_op, config_op=config_op
779
+ )
801
780
 
802
781
 
803
782
  def test_calc_config_patches_toggle_apply_library_patches(custom_model_truss_dir: Path):
@@ -145,7 +145,6 @@ def test_control_truss_python_sys_req_patch(
145
145
  th.remove_python_requirement(req)
146
146
  return th.docker_predict([1], tag=tag, binary=binary, local_port=None)
147
147
 
148
-
149
148
  with ensure_kill_all():
150
149
  th.docker_predict([1], tag=tag, binary=binary, local_port=None)
151
150
  orig_num_truss_images = len(th.get_all_docker_images())
@@ -162,7 +161,6 @@ def test_control_truss_python_sys_req_patch(
162
161
  verify_python_requirement_not_installed_on_container(container, python_req)
163
162
 
164
163
 
165
-
166
164
  @pytest.mark.integration
167
165
  @pytest.mark.parametrize(
168
166
  "binary, python_version",
@@ -18,7 +18,6 @@ from truss.templates.control.control.helpers.custom_types import (
18
18
  Patch,
19
19
  PatchType,
20
20
  PythonRequirementPatch,
21
- SystemPackagePatch,
22
21
  )
23
22
  from truss.templates.control.control.helpers.truss_patch.requirement_name_identifier import (
24
23
  RequirementMeta,
@@ -423,13 +422,17 @@ def _calc_python_requirements_patches(
423
422
  def _calc_system_packages_patches(
424
423
  prev_config: TrussConfig, new_config: TrussConfig
425
424
  ) -> List[Patch]:
426
- """Calculate patch based on changes to system packates.
425
+ """Calculate patch based on changes to system packages.
427
426
 
428
- System package patches are no longer supported, so this always returns an empty list.
429
- Changes to system packages will require a full rebuild instead of patching.
427
+ System package patches are no longer supported, so this function
428
+ raises an exception if any system package changes are detected.
430
429
  """
431
- # System package patches are no longer supported - return empty list
432
- # This will cause any system package changes to be handled by full rebuild
430
+ prev_pkgs = system_packages_set(prev_config.system_packages)
431
+ new_pkgs = system_packages_set(new_config.system_packages)
432
+
433
+ if prev_pkgs != new_pkgs:
434
+ raise ValueError("System package changes detected - full rebuild required")
435
+
433
436
  return []
434
437
 
435
438
 
@@ -764,13 +764,13 @@ def _gen_truss_config(
764
764
  config.external_package_dirs.append(ext_dir.abs_path)
765
765
  config.use_local_src = use_local_src
766
766
 
767
- if public_types._BASETEN_API_SECRET_NAME not in config.secrets:
768
- config.secrets[public_types._BASETEN_API_SECRET_NAME] = (
767
+ if public_types.CHAIN_API_KEY_SECRET_NAME not in config.secrets:
768
+ config.secrets[public_types.CHAIN_API_KEY_SECRET_NAME] = (
769
769
  public_types.SECRET_DUMMY
770
770
  )
771
771
  else:
772
772
  logging.info(
773
- f"Chains automatically add {public_types._BASETEN_API_SECRET_NAME} "
773
+ f"Chains automatically add {public_types.CHAIN_API_KEY_SECRET_NAME} "
774
774
  "to secrets - no need to manually add it."
775
775
  )
776
776
  config.model_cache = truss_config.ModelCache(assets.cached)
@@ -303,7 +303,7 @@ def _push_service_docker(
303
303
  options: private_types.PushOptionsLocalDocker,
304
304
  ) -> str:
305
305
  th = truss_handle.TrussHandle(truss_dir)
306
- th.add_secret(public_types._BASETEN_API_SECRET_NAME, options.baseten_chain_api_key)
306
+ th.add_secret(public_types.CHAIN_API_KEY_SECRET_NAME, options.baseten_chain_api_key)
307
307
  container = th.docker_run(
308
308
  local_port=None,
309
309
  detach=True,
@@ -536,14 +536,21 @@ def _create_baseten_chain(
536
536
  def _create_chains_secret_if_missing(remote_provider: b10_remote.BasetenRemote) -> None:
537
537
  secrets_info = remote_provider.api.get_all_secrets()
538
538
  secret_names = {sec["name"] for sec in secrets_info["secrets"]}
539
- if public_types._BASETEN_API_SECRET_NAME not in secret_names:
539
+
540
+ if public_types.CHAIN_API_KEY_SECRET_NAME not in secret_names:
540
541
  logging.info(
541
542
  "It seems you are using chains for the first time, since there "
542
- f"is no `{public_types._BASETEN_API_SECRET_NAME}` secret on baseten. "
543
+ f"is no `{public_types.CHAIN_API_KEY_SECRET_NAME}` secret on baseten. "
543
544
  "Creating secret automatically."
544
545
  )
546
+
547
+ workspace_api_key = remote_provider.api.create_api_key(
548
+ api_key_type=b10_types.APIKeyCategory.WORKSPACE_INVOKE,
549
+ name=public_types.CHAIN_API_KEY_NAME,
550
+ )["api_key"]
551
+
545
552
  remote_provider.api.upsert_secret(
546
- public_types._BASETEN_API_SECRET_NAME, remote_provider.api.auth_token.value
553
+ public_types.CHAIN_API_KEY_SECRET_NAME, workspace_api_key
547
554
  )
548
555
 
549
556
 
@@ -28,7 +28,12 @@ DEFAULT_CONCURRENCY_LIMIT = 300
28
28
  CpuCountT = Literal["cpu_count"]
29
29
  CPU_COUNT: CpuCountT = "cpu_count"
30
30
 
31
- _BASETEN_API_SECRET_NAME = "baseten_chain_api_key"
31
+
32
+ # NOTE(Tyron): This is a secret that points to an API key value.
33
+ CHAIN_API_KEY_SECRET_NAME = "baseten_chain_api_key"
34
+
35
+ # NOTE(Tyron): This is the actual API key pointed to by the above secret.
36
+ CHAIN_API_KEY_NAME = "baseten-chain-api-key"
32
37
 
33
38
  _K = TypeVar("_K", contravariant=True)
34
39
  _V = TypeVar("_V", covariant=True)
@@ -738,14 +743,14 @@ class DeploymentContext(custom_types.SafeModelNonSerializable):
738
743
  )
739
744
  error_msg = (
740
745
  "For using chains, it is required to setup a an API key with name "
741
- f"`{_BASETEN_API_SECRET_NAME}` on Baseten to allow chain Chainlet to "
746
+ f"`{CHAIN_API_KEY_SECRET_NAME}` on Baseten to allow chain Chainlet to "
742
747
  "call other Chainlets. For local execution, secrets can be provided "
743
748
  "to `run_local`."
744
749
  )
745
- if _BASETEN_API_SECRET_NAME not in self.secrets:
750
+ if CHAIN_API_KEY_SECRET_NAME not in self.secrets:
746
751
  raise MissingDependencyError(error_msg)
747
752
 
748
- api_key = self.secrets[_BASETEN_API_SECRET_NAME]
753
+ api_key = self.secrets[CHAIN_API_KEY_SECRET_NAME]
749
754
  if api_key == SECRET_DUMMY:
750
755
  raise MissingDependencyError(
751
756
  f"{error_msg}. Retrieved dummy value of `{api_key}`."
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes