truss 0.11.1rc14__tar.gz → 0.11.2__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.1rc14 → truss-0.11.2}/PKG-INFO +1 -1
  2. {truss-0.11.1rc14 → truss-0.11.2}/pyproject.toml +1 -1
  3. {truss-0.11.1rc14 → truss-0.11.2}/truss/base/constants.py +2 -0
  4. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/chains_commands.py +20 -7
  5. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/deploy_checkpoints/deploy_checkpoints.py +0 -12
  6. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/requirements.txt +1 -1
  7. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/deployment/code_gen.py +5 -1
  8. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/deployment/deployment_client.py +45 -7
  9. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/public_types.py +5 -3
  10. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/remote_chainlet/utils.py +34 -13
  11. {truss-0.11.1rc14 → truss-0.11.2}/truss-train/truss_train/__init__.py +4 -0
  12. {truss-0.11.1rc14 → truss-0.11.2}/truss-train/truss_train/definitions.py +47 -2
  13. truss-0.11.2/truss-train/truss_train/restore_from_checkpoint.py +42 -0
  14. {truss-0.11.1rc14 → truss-0.11.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  15. {truss-0.11.1rc14 → truss-0.11.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  16. {truss-0.11.1rc14 → truss-0.11.2}/.github/pull_request_template.md +0 -0
  17. {truss-0.11.1rc14 → truss-0.11.2}/.gitignore +0 -0
  18. {truss-0.11.1rc14 → truss-0.11.2}/CODE_OF_CONDUCT.md +0 -0
  19. {truss-0.11.1rc14 → truss-0.11.2}/CONTRIBUTING.md +0 -0
  20. {truss-0.11.1rc14 → truss-0.11.2}/LICENSE +0 -0
  21. {truss-0.11.1rc14 → truss-0.11.2}/README.md +0 -0
  22. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/README.md +0 -0
  23. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/README.md +0 -0
  24. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/android-arm-eabi/README.md +0 -0
  25. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/android-arm64/README.md +0 -0
  26. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/darwin-arm64/README.md +0 -0
  27. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/darwin-universal/README.md +0 -0
  28. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/darwin-x64/README.md +0 -0
  29. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/freebsd-x64/README.md +0 -0
  30. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/linux-arm-gnueabihf/README.md +0 -0
  31. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/linux-arm-musleabihf/README.md +0 -0
  32. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/linux-arm64-gnu/README.md +0 -0
  33. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/linux-arm64-musl/README.md +0 -0
  34. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/linux-riscv64-gnu/README.md +0 -0
  35. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/linux-x64-gnu/README.md +0 -0
  36. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/linux-x64-musl/README.md +0 -0
  37. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/win32-arm64-msvc/README.md +0 -0
  38. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/win32-ia32-msvc/README.md +0 -0
  39. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/node_bindings/npm/win32-x64-msvc/README.md +0 -0
  40. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/python_bindings/README.md +0 -0
  41. {truss-0.11.1rc14 → truss-0.11.2}/baseten-performance-client/scripts/README_nodejs.md +0 -0
  42. {truss-0.11.1rc14 → truss-0.11.2}/context_builder.Dockerfile +0 -0
  43. {truss-0.11.1rc14 → truss-0.11.2}/docs/README.md +0 -0
  44. {truss-0.11.1rc14 → truss-0.11.2}/docs/chains/doc_gen/README.md +0 -0
  45. {truss-0.11.1rc14 → truss-0.11.2}/docs/contribute/base-images.md +0 -0
  46. {truss-0.11.1rc14 → truss-0.11.2}/docs/contribute/release.md +0 -0
  47. {truss-0.11.1rc14 → truss-0.11.2}/truss/__init__.py +0 -0
  48. {truss-0.11.1rc14 → truss-0.11.2}/truss/api/__init__.py +0 -0
  49. {truss-0.11.1rc14 → truss-0.11.2}/truss/api/definitions.py +0 -0
  50. {truss-0.11.1rc14 → truss-0.11.2}/truss/base/__init__.py +0 -0
  51. {truss-0.11.1rc14 → truss-0.11.2}/truss/base/custom_types.py +0 -0
  52. {truss-0.11.1rc14 → truss-0.11.2}/truss/base/errors.py +0 -0
  53. {truss-0.11.1rc14 → truss-0.11.2}/truss/base/trt_llm_config.py +0 -0
  54. {truss-0.11.1rc14 → truss-0.11.2}/truss/base/truss_config.py +0 -0
  55. {truss-0.11.1rc14 → truss-0.11.2}/truss/base/truss_spec.py +0 -0
  56. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/cli.py +0 -0
  57. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/logs/base_watcher.py +0 -0
  58. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/logs/model_log_watcher.py +0 -0
  59. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/logs/training_log_watcher.py +0 -0
  60. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/logs/utils.py +0 -0
  61. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/remote_cli.py +0 -0
  62. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/common.py +0 -0
  63. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/core.py +0 -0
  64. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/deploy_checkpoints/__init__.py +0 -0
  65. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/deploy_checkpoints/deploy_checkpoints_helpers.py +0 -0
  66. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/deploy_checkpoints/deploy_full_checkpoints.py +0 -0
  67. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/deploy_checkpoints/deploy_lora_checkpoints.py +0 -0
  68. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/deploy_checkpoints/deploy_whisper_checkpoints.py +0 -0
  69. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/deploy_from_checkpoint_config.yml +0 -0
  70. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/deploy_from_checkpoint_config_whisper.yml +0 -0
  71. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/metrics_watcher.py +0 -0
  72. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/poller.py +0 -0
  73. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train/types.py +0 -0
  74. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/train_commands.py +0 -0
  75. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/utils/common.py +0 -0
  76. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/utils/output.py +0 -0
  77. {truss-0.11.1rc14 → truss-0.11.2}/truss/cli/utils/self_upgrade.py +0 -0
  78. {truss-0.11.1rc14 → truss-0.11.2}/truss/contexts/docker_build_setup.py +0 -0
  79. {truss-0.11.1rc14 → truss-0.11.2}/truss/contexts/image_builder/cache_warmer.py +0 -0
  80. {truss-0.11.1rc14 → truss-0.11.2}/truss/contexts/image_builder/image_builder.py +0 -0
  81. {truss-0.11.1rc14 → truss-0.11.2}/truss/contexts/image_builder/serving_image_builder.py +0 -0
  82. {truss-0.11.1rc14 → truss-0.11.2}/truss/contexts/image_builder/util.py +0 -0
  83. {truss-0.11.1rc14 → truss-0.11.2}/truss/contexts/local_loader/docker_build_emulator.py +0 -0
  84. {truss-0.11.1rc14 → truss-0.11.2}/truss/contexts/local_loader/dockerfile_parser.py +0 -0
  85. {truss-0.11.1rc14 → truss-0.11.2}/truss/contexts/local_loader/load_model_local.py +0 -0
  86. {truss-0.11.1rc14 → truss-0.11.2}/truss/contexts/local_loader/truss_module_loader.py +0 -0
  87. {truss-0.11.1rc14 → truss-0.11.2}/truss/contexts/local_loader/utils.py +0 -0
  88. {truss-0.11.1rc14 → truss-0.11.2}/truss/contexts/truss_context.py +0 -0
  89. {truss-0.11.1rc14 → truss-0.11.2}/truss/local/local_config.py +0 -0
  90. {truss-0.11.1rc14 → truss-0.11.2}/truss/local/local_config_handler.py +0 -0
  91. {truss-0.11.1rc14 → truss-0.11.2}/truss/patch/__init__.py +0 -0
  92. {truss-0.11.1rc14 → truss-0.11.2}/truss/patch/hash.py +0 -0
  93. {truss-0.11.1rc14 → truss-0.11.2}/truss/patch/signature.py +0 -0
  94. {truss-0.11.1rc14 → truss-0.11.2}/truss/patch/truss_dir_patch_applier.py +0 -0
  95. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/__init__.py +0 -0
  96. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/api.py +0 -0
  97. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/auth.py +0 -0
  98. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/core.py +0 -0
  99. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/custom_types.py +0 -0
  100. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/error.py +0 -0
  101. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/remote.py +0 -0
  102. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/rest_client.py +0 -0
  103. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/service.py +0 -0
  104. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/utils/status.py +0 -0
  105. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/utils/tar.py +0 -0
  106. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/utils/time.py +0 -0
  107. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/baseten/utils/transfer.py +0 -0
  108. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/remote_factory.py +0 -0
  109. {truss-0.11.1rc14 → truss-0.11.2}/truss/remote/truss_remote.py +0 -0
  110. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/README.md.jinja +0 -0
  111. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/__init__.py +0 -0
  112. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/base.Dockerfile.jinja +0 -0
  113. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/cache.Dockerfile.jinja +0 -0
  114. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/cache_requirements.txt +0 -0
  115. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/application.py +0 -0
  116. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/endpoints.py +0 -0
  117. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/helpers/context_managers.py +0 -0
  118. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/helpers/custom_types.py +0 -0
  119. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/helpers/errors.py +0 -0
  120. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/helpers/inference_server_controller.py +0 -0
  121. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/helpers/inference_server_process_controller.py +0 -0
  122. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/helpers/inference_server_starter.py +0 -0
  123. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/helpers/truss_patch/__init__.py +0 -0
  124. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/helpers/truss_patch/model_code_patch_applier.py +0 -0
  125. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/helpers/truss_patch/model_container_patch_applier.py +0 -0
  126. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/helpers/truss_patch/requirement_name_identifier.py +0 -0
  127. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/helpers/truss_patch/system_packages.py +0 -0
  128. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/control/control/server.py +0 -0
  129. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/copy_cache_files.Dockerfile.jinja +0 -0
  130. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/custom/examples.yaml +0 -0
  131. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/custom/model/__init__.py +0 -0
  132. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/custom/model/model.py +0 -0
  133. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/custom_python_dx/my_model.py +0 -0
  134. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/docker_server/proxy.conf.jinja +0 -0
  135. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/docker_server/supervisord.conf.jinja +0 -0
  136. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/docker_server_requirements.txt +0 -0
  137. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server/__init__.py +0 -0
  138. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server/common/__init__.py +0 -0
  139. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server/common/errors.py +0 -0
  140. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server/common/patches/whisper/patch.py +0 -0
  141. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server/common/patches.py +0 -0
  142. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server/common/retry.py +0 -0
  143. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server/common/schema.py +0 -0
  144. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server/common/tracing.py +0 -0
  145. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server/main.py +0 -0
  146. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server/model_wrapper.py +0 -0
  147. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server/requirements.txt +0 -0
  148. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server/truss_server.py +0 -0
  149. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/server.Dockerfile.jinja +0 -0
  150. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/shared/__init__.py +0 -0
  151. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/shared/dynamic_config_resolver.py +0 -0
  152. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/shared/lazy_data_resolver.py +0 -0
  153. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/shared/log_config.py +0 -0
  154. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/shared/secrets_resolver.py +0 -0
  155. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/shared/serialization.py +0 -0
  156. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/shared/util.py +0 -0
  157. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/train/config.py +0 -0
  158. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/train/run.sh +0 -0
  159. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/trtllm-audio/model/model.py +0 -0
  160. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/trtllm-audio/packages/sigint_patch.py +0 -0
  161. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/trtllm-audio/packages/whisper_trt/__init__.py +0 -0
  162. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/trtllm-audio/packages/whisper_trt/assets.py +0 -0
  163. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/trtllm-audio/packages/whisper_trt/batching.py +0 -0
  164. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/trtllm-audio/packages/whisper_trt/custom_types.py +0 -0
  165. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/trtllm-audio/packages/whisper_trt/modeling.py +0 -0
  166. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/trtllm-audio/packages/whisper_trt/tokenizer.py +0 -0
  167. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/trtllm-audio/packages/whisper_trt/utils.py +0 -0
  168. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/trtllm-briton/README.md +0 -0
  169. {truss-0.11.1rc14 → truss-0.11.2}/truss/templates/trtllm-briton/src/extension.py +0 -0
  170. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/__init__.py +0 -0
  171. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/cli/test_cli.py +0 -0
  172. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/cli/train/resources/test_deploy_from_checkpoint_config.yml +0 -0
  173. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/cli/train/test_cache_view.py +0 -0
  174. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/cli/train/test_deploy_checkpoints.py +0 -0
  175. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/cli/train/test_train_cli_core.py +0 -0
  176. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/cli/train/test_train_init.py +0 -0
  177. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/conftest.py +0 -0
  178. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/contexts/image_builder/test_serving_image_builder.py +0 -0
  179. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/contexts/local_loader/test_load_local.py +0 -0
  180. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/contexts/local_loader/test_truss_module_finder.py +0 -0
  181. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/helpers.py +0 -0
  182. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/local/test_local_config_handler.py +0 -0
  183. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/patch/test_calc_patch.py +0 -0
  184. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/patch/test_dir_signature.py +0 -0
  185. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/patch/test_hash.py +0 -0
  186. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/patch/test_signature.py +0 -0
  187. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/patch/test_truss_dir_patch_applier.py +0 -0
  188. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/patch/test_types.py +0 -0
  189. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/remote/baseten/conftest.py +0 -0
  190. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/remote/baseten/test_api.py +0 -0
  191. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/remote/baseten/test_auth.py +0 -0
  192. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/remote/baseten/test_core.py +0 -0
  193. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/remote/baseten/test_remote.py +0 -0
  194. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/remote/baseten/test_service.py +0 -0
  195. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/remote/test_remote_factory.py +0 -0
  196. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/remote/test_truss_remote.py +0 -0
  197. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/control/control/helpers/test_context_managers.py +0 -0
  198. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/control/control/helpers/test_model_container_patch_applier.py +0 -0
  199. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/control/control/helpers/test_requirement_name_identifier.py +0 -0
  200. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/control/control/test_endpoints.py +0 -0
  201. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/control/control/test_server.py +0 -0
  202. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/control/control/test_server_integration.py +0 -0
  203. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/core/server/test_dynamic_config_resolver.py +0 -0
  204. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/core/server/test_lazy_data_resolver_v2.py +0 -0
  205. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/core/server/test_secrets_resolver.py +0 -0
  206. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/server/common/test_retry.py +0 -0
  207. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/server/test_model_wrapper.py +0 -0
  208. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/server/test_schema.py +0 -0
  209. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/templates/server/test_truss_server.py +0 -0
  210. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_build.py +0 -0
  211. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_config.py +0 -0
  212. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_context_builder_image.py +0 -0
  213. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_control_truss_patching.py +0 -0
  214. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_custom_server.py +0 -0
  215. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/__init__.py +0 -0
  216. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/annotated_types_truss/__init__.py +0 -0
  217. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/annotated_types_truss/config.yaml +0 -0
  218. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/annotated_types_truss/model/__init__.py +0 -0
  219. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/annotated_types_truss/model/model.py +0 -0
  220. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/auto-mpg.data +0 -0
  221. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/context_builder_image_test/Dockerfile +0 -0
  222. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/context_builder_image_test/__init__.py +0 -0
  223. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/context_builder_image_test/test.py +0 -0
  224. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/gcs_fix/__init__.py +0 -0
  225. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/gcs_fix/config.yaml +0 -0
  226. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/gcs_fix/model/__init__.py +0 -0
  227. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/gcs_fix/model/model.py +0 -0
  228. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/happy.ipynb +0 -0
  229. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/model_load_failure_test/__init__.py +0 -0
  230. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/model_load_failure_test/config.yaml +0 -0
  231. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/model_load_failure_test/model/__init__.py +0 -0
  232. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/model_load_failure_test/model/model.py +0 -0
  233. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/patch_ping_test_server/__init__.py +0 -0
  234. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/patch_ping_test_server/app.py +0 -0
  235. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/pima-indians-diabetes.csv +0 -0
  236. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/readme_int_example.md +0 -0
  237. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/readme_no_example.md +0 -0
  238. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/readme_str_example.md +0 -0
  239. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/server.Dockerfile +0 -0
  240. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/server_conformance_test_truss/__init__.py +0 -0
  241. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/server_conformance_test_truss/config.yaml +0 -0
  242. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/server_conformance_test_truss/model/__init__.py +0 -0
  243. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/server_conformance_test_truss/model/model.py +0 -0
  244. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_async_truss/__init__.py +0 -0
  245. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_async_truss/config.yaml +0 -0
  246. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_async_truss/model/__init__.py +0 -0
  247. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_async_truss/model/model.py +0 -0
  248. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_basic_truss/__init__.py +0 -0
  249. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_basic_truss/config.yaml +0 -0
  250. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_basic_truss/model/__init__.py +0 -0
  251. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_basic_truss/model/model.py +0 -0
  252. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_build_commands/__init__.py +0 -0
  253. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_build_commands/config.yaml +0 -0
  254. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_build_commands/model/__init__.py +0 -0
  255. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_build_commands/model/model.py +0 -0
  256. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_build_commands_failure/__init__.py +0 -0
  257. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_build_commands_failure/config.yaml +0 -0
  258. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_build_commands_failure/model/__init__.py +0 -0
  259. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_build_commands_failure/model/model.py +0 -0
  260. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_concurrency_truss/__init__.py +0 -0
  261. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_concurrency_truss/config.yaml +0 -0
  262. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_concurrency_truss/model/__init__.py +0 -0
  263. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_concurrency_truss/model/model.py +0 -0
  264. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_custom_server_truss/__init__.py +0 -0
  265. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_custom_server_truss/config.yaml +0 -0
  266. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_custom_server_truss/test_docker_image/Dockerfile +0 -0
  267. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_custom_server_truss/test_docker_image/README.md +0 -0
  268. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_custom_server_truss/test_docker_image/VERSION +0 -0
  269. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_custom_server_truss/test_docker_image/__init__.py +0 -0
  270. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_custom_server_truss/test_docker_image/app.py +0 -0
  271. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_custom_server_truss/test_docker_image/build_upload_new_image.sh +0 -0
  272. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_env_vars/config.yaml +0 -0
  273. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_go_custom_server_truss/config.yaml +0 -0
  274. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_go_custom_server_truss/docker/Dockerfile +0 -0
  275. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_go_custom_server_truss/docker/README.md +0 -0
  276. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_go_custom_server_truss/docker/VERSION +0 -0
  277. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_go_custom_server_truss/docker/build_upload_new_image.sh +0 -0
  278. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_go_custom_server_truss/docker/main.go +0 -0
  279. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_openai/__init__.py +0 -0
  280. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_openai/config.yaml +0 -0
  281. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_openai/model/__init__.py +0 -0
  282. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_openai/model/model.py +0 -0
  283. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_pyantic_v1/__init__.py +0 -0
  284. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_pyantic_v1/config.yaml +0 -0
  285. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_pyantic_v1/model/__init__.py +0 -0
  286. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_pyantic_v1/model/model.py +0 -0
  287. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_pyantic_v1/requirements.txt +0 -0
  288. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_pyantic_v2/__init__.py +0 -0
  289. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_pyantic_v2/config.yaml +0 -0
  290. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_pyantic_v2/model/__init__.py +0 -0
  291. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_pyantic_v2/model/model.py +0 -0
  292. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_pyantic_v2/requirements.txt +0 -0
  293. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_requirements_file_truss/__init__.py +0 -0
  294. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_requirements_file_truss/config.yaml +0 -0
  295. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_requirements_file_truss/model/__init__.py +0 -0
  296. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_requirements_file_truss/model/model.py +0 -0
  297. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_requirements_file_truss/requirements.txt +0 -0
  298. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_async_generator_truss/__init__.py +0 -0
  299. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_async_generator_truss/config.yaml +0 -0
  300. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_async_generator_truss/model/__init__.py +0 -0
  301. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_async_generator_truss/model/model.py +0 -0
  302. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_read_timeout/__init__.py +0 -0
  303. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_read_timeout/config.yaml +0 -0
  304. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_read_timeout/model/__init__.py +0 -0
  305. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_read_timeout/model/model.py +0 -0
  306. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss/__init__.py +0 -0
  307. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss/config.yaml +0 -0
  308. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss/model/__init__.py +0 -0
  309. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss/model/model.py +0 -0
  310. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss_with_error/__init__.py +0 -0
  311. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss_with_error/config.yaml +0 -0
  312. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss_with_error/model/__init__.py +0 -0
  313. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss_with_error/model/model.py +0 -0
  314. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss_with_error/packages/__init__.py +0 -0
  315. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss_with_error/packages/helpers_1.py +0 -0
  316. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss_with_error/packages/helpers_2.py +0 -0
  317. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss_with_tracing/__init__.py +0 -0
  318. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss_with_tracing/config.yaml +0 -0
  319. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss_with_tracing/model/__init__.py +0 -0
  320. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_streaming_truss_with_tracing/model/model.py +0 -0
  321. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_trt_llm_truss/__init__.py +0 -0
  322. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_trt_llm_truss/config.yaml +0 -0
  323. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_trt_llm_truss/model/__init__.py +0 -0
  324. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_trt_llm_truss/model/model.py +0 -0
  325. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss/__init__.py +0 -0
  326. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss/config.yaml +0 -0
  327. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss/examples.yaml +0 -0
  328. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss/model/__init__.py +0 -0
  329. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss/model/dummy +0 -0
  330. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss/model/model.py +0 -0
  331. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss/packages/__init__.py +0 -0
  332. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss/packages/test_package/__init__.py +0 -0
  333. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss/packages/test_package/test.py +0 -0
  334. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_server_model_cache_v1/__init__.py +0 -0
  335. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_server_model_cache_v1/config.yaml +0 -0
  336. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_server_model_cache_v1/model/__init__.py +0 -0
  337. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_server_model_cache_v1/model/model.py +0 -0
  338. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_server_model_cache_v2/__init__.py +0 -0
  339. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_server_model_cache_v2/config.yaml +0 -0
  340. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_server_model_cache_v2/model/__init__.py +0 -0
  341. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_server_model_cache_v2/model/model.py +0 -0
  342. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_with_error/__init__.py +0 -0
  343. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_with_error/config.yaml +0 -0
  344. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_with_error/model/__init__.py +0 -0
  345. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_with_error/model/model.py +0 -0
  346. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_with_error/packages/__init__.py +0 -0
  347. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_with_error/packages/helpers_1.py +0 -0
  348. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_data/test_truss_with_error/packages/helpers_2.py +0 -0
  349. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_docker.py +0 -0
  350. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_model_inference.py +0 -0
  351. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_model_schema.py +0 -0
  352. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_testing_utilities_for_other_tests.py +0 -0
  353. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_truss_gatherer.py +0 -0
  354. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_truss_handle.py +0 -0
  355. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/test_util.py +0 -0
  356. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/trt_llm/test_trt_llm_config.py +0 -0
  357. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/trt_llm/test_validation.py +0 -0
  358. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/util/test_config_checks.py +0 -0
  359. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/util/test_env_vars.py +0 -0
  360. {truss-0.11.1rc14 → truss-0.11.2}/truss/tests/util/test_path.py +0 -0
  361. {truss-0.11.1rc14 → truss-0.11.2}/truss/trt_llm/config_checks.py +0 -0
  362. {truss-0.11.1rc14 → truss-0.11.2}/truss/trt_llm/validation.py +0 -0
  363. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/__init__.py +0 -0
  364. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/build.py +0 -0
  365. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/decorators.py +0 -0
  366. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/patch/__init__.py +0 -0
  367. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/patch/calc_patch.py +0 -0
  368. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/patch/constants.py +0 -0
  369. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/patch/custom_types.py +0 -0
  370. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/patch/dir_signature.py +0 -0
  371. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/patch/hash.py +0 -0
  372. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/patch/local_truss_patch_applier.py +0 -0
  373. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/patch/signature.py +0 -0
  374. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/patch/truss_dir_patch_applier.py +0 -0
  375. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/readme_generator.py +0 -0
  376. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/truss_gatherer.py +0 -0
  377. {truss-0.11.1rc14 → truss-0.11.2}/truss/truss_handle/truss_handle.py +0 -0
  378. {truss-0.11.1rc14 → truss-0.11.2}/truss/util/.truss_ignore +0 -0
  379. {truss-0.11.1rc14 → truss-0.11.2}/truss/util/docker.py +0 -0
  380. {truss-0.11.1rc14 → truss-0.11.2}/truss/util/download.py +0 -0
  381. {truss-0.11.1rc14 → truss-0.11.2}/truss/util/env_vars.py +0 -0
  382. {truss-0.11.1rc14 → truss-0.11.2}/truss/util/gpu.py +0 -0
  383. {truss-0.11.1rc14 → truss-0.11.2}/truss/util/jinja.py +0 -0
  384. {truss-0.11.1rc14 → truss-0.11.2}/truss/util/log_utils.py +0 -0
  385. {truss-0.11.1rc14 → truss-0.11.2}/truss/util/notebook.py +0 -0
  386. {truss-0.11.1rc14 → truss-0.11.2}/truss/util/path.py +0 -0
  387. {truss-0.11.1rc14 → truss-0.11.2}/truss/util/requirements.py +0 -0
  388. {truss-0.11.1rc14 → truss-0.11.2}/truss/util/user_config.py +0 -0
  389. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/examples/README.md +0 -0
  390. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/examples/audio-transcription/README.md +0 -0
  391. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/examples/rag/README.md +0 -0
  392. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/tests/itest_chain/requirements.txt +0 -0
  393. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/__init__.py +0 -0
  394. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/deployment/__init__.py +0 -0
  395. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/framework.py +0 -0
  396. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/private_types.py +0 -0
  397. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/public_api.py +0 -0
  398. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/py.typed +0 -0
  399. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/pydantic_numpy.py +0 -0
  400. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/reference_code/reference_chainlet.py +0 -0
  401. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/reference_code/reference_model.py +0 -0
  402. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/remote_chainlet/__init__.py +0 -0
  403. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/remote_chainlet/model_skeleton.py +0 -0
  404. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/remote_chainlet/stub.py +0 -0
  405. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/streaming.py +0 -0
  406. {truss-0.11.1rc14 → truss-0.11.2}/truss-chains/truss_chains/utils.py +0 -0
  407. {truss-0.11.1rc14 → truss-0.11.2}/truss-train/truss_train/deployment.py +0 -0
  408. {truss-0.11.1rc14 → truss-0.11.2}/truss-train/truss_train/loader.py +0 -0
  409. {truss-0.11.1rc14 → truss-0.11.2}/truss-train/truss_train/public_api.py +0 -0
  410. {truss-0.11.1rc14 → truss-0.11.2}/truss-transfer/README.md +0 -0
  411. {truss-0.11.1rc14 → truss-0.11.2}/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.1rc14
3
+ Version: 0.11.2
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.1rc14"
3
+ version = "0.11.2"
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" },
@@ -85,3 +85,5 @@ OPENAI_NON_COMPATIBLE_TAG = "force-legacy-api-non-openai-compatible" # deprecat
85
85
  PRODUCTION_ENVIRONMENT_NAME = "production"
86
86
 
87
87
  TRUSS_BASE_IMAGE_NAME = "baseten/truss-server-base"
88
+
89
+ DEFAULT_TRAINING_CHECKPOINT_FOLDER = "/tmp/loaded_checkpoints"
@@ -43,18 +43,31 @@ def _load_example_chainlet_code() -> str:
43
43
  return source
44
44
 
45
45
 
46
- def _make_chains_curl_snippet(run_remote_url: str, environment: Optional[str]) -> str:
46
+ def _make_chains_curl_snippet(
47
+ run_remote_url: str, environment: Optional[str], is_websocket: bool = False
48
+ ) -> str:
47
49
  if environment:
48
50
  idx = run_remote_url.find("deployment")
49
51
  if idx != -1:
50
52
  run_remote_url = (
51
53
  run_remote_url[:idx] + f"environments/{environment}/run_remote"
52
54
  )
53
- return (
54
- f"curl -X POST '{run_remote_url}' \\\n"
55
- ' -H "Authorization: Api-Key $BASETEN_API_KEY" \\\n'
56
- " -d '<JSON_INPUT>'"
57
- )
55
+
56
+ if is_websocket:
57
+ # Replace 'run_remote' with 'websocket' for websocket endpoints
58
+ websocket_url = run_remote_url.replace("run_remote", "websocket").replace(
59
+ "https", "wss"
60
+ )
61
+ return (
62
+ f'websocat -H="Authorization: Api-Key $BASETEN_API_KEY" \\\n'
63
+ f" {websocket_url}"
64
+ )
65
+ else:
66
+ return (
67
+ f"curl -X POST '{run_remote_url}' \\\n"
68
+ ' -H "Authorization: Api-Key $BASETEN_API_KEY" \\\n'
69
+ " -d '<JSON_INPUT>'"
70
+ )
58
71
 
59
72
 
60
73
  def _create_chains_table(service) -> Tuple[rich.table.Table, List[str]]:
@@ -281,7 +294,7 @@ def push_chain(
281
294
 
282
295
  assert isinstance(service, deployment_client.BasetenChainService)
283
296
  curl_snippet = _make_chains_curl_snippet(
284
- service.run_remote_url, options.environment
297
+ service.run_remote_url, options.environment, service.is_websocket
285
298
  )
286
299
 
287
300
  table, statuses = _create_chains_table(service)
@@ -296,18 +296,6 @@ def _get_checkpoint_ids_to_deploy(
296
296
  return checkpoint_ids
297
297
 
298
298
 
299
- def _select_single_checkpoint(checkpoint_id_options: List[str]) -> List[str]:
300
- """Select a single checkpoint using interactive prompt."""
301
- checkpoint_id = inquirer.select(
302
- message="Select the checkpoints to deploy:", choices=checkpoint_id_options
303
- ).execute()
304
-
305
- if not checkpoint_id:
306
- raise click.UsageError("A checkpoint must be selected.")
307
-
308
- return [checkpoint_id]
309
-
310
-
311
299
  def _select_multiple_checkpoints(checkpoint_id_options: List[str]) -> List[str]:
312
300
  """Select multiple checkpoints using interactive checkbox."""
313
301
  checkpoint_ids = inquirer.checkbox(
@@ -6,7 +6,7 @@ loguru>=0.7.2
6
6
  python-json-logger>=2.0.2
7
7
  tenacity>=8.1.0
8
8
  # To avoid divergence, this should follow the latest release.
9
- truss==0.11.1rc14
9
+ truss==0.11.1
10
10
  uvicorn>=0.24.0
11
11
  uvloop>=0.19.0
12
12
  websockets>=10.0
@@ -544,7 +544,11 @@ async def websocket(self, websocket: fastapi.WebSocket) -> None:
544
544
  )"""
545
545
  return _Source(
546
546
  src=src,
547
- imports={"import fastapi", "from truss_chains.remote_chainlet import utils"},
547
+ imports={
548
+ "import fastapi",
549
+ "from starlette.websockets import WebSocketState",
550
+ "from truss_chains.remote_chainlet import utils",
551
+ },
548
552
  )
549
553
 
550
554
 
@@ -138,7 +138,12 @@ class ChainService(abc.ABC):
138
138
 
139
139
  def _generate_chainlet_artifacts(
140
140
  options: private_types.PushOptions, entrypoint: Type[private_types.ABCChainlet]
141
- ) -> tuple[b10_types.ChainletArtifact, list[b10_types.ChainletArtifact], bool]:
141
+ ) -> tuple[
142
+ b10_types.ChainletArtifact,
143
+ list[b10_types.ChainletArtifact],
144
+ bool,
145
+ Optional[private_types.ChainletAPIDescriptor],
146
+ ]:
142
147
  chain_root = _get_chain_root(entrypoint)
143
148
  entrypoint_artifact: Optional[b10_types.ChainletArtifact] = None
144
149
  dependency_artifacts: list[b10_types.ChainletArtifact] = []
@@ -192,7 +197,19 @@ def _generate_chainlet_artifacts(
192
197
 
193
198
  assert entrypoint_artifact is not None
194
199
 
195
- return entrypoint_artifact, dependency_artifacts, has_engine_builder_chainlets
200
+ # Find the entrypoint descriptor
201
+ entrypoint_descriptor = None
202
+ for chainlet_descriptor in _get_ordered_dependencies([entrypoint]):
203
+ if chainlet_descriptor.chainlet_cls == entrypoint:
204
+ entrypoint_descriptor = chainlet_descriptor
205
+ break
206
+
207
+ return (
208
+ entrypoint_artifact,
209
+ dependency_artifacts,
210
+ has_engine_builder_chainlets,
211
+ entrypoint_descriptor,
212
+ )
196
213
 
197
214
 
198
215
  @framework.raise_validation_errors_before
@@ -201,9 +218,12 @@ def push(
201
218
  options: private_types.PushOptions,
202
219
  progress_bar: Optional[Type["progress.Progress"]] = None,
203
220
  ) -> Optional[ChainService]:
204
- entrypoint_artifact, dependency_artifacts, has_engine_builder_chainlets = (
205
- _generate_chainlet_artifacts(options, entrypoint)
206
- )
221
+ (
222
+ entrypoint_artifact,
223
+ dependency_artifacts,
224
+ has_engine_builder_chainlets,
225
+ entrypoint_descriptor,
226
+ ) = _generate_chainlet_artifacts(options, entrypoint)
207
227
  if options.only_generate_trusses:
208
228
  return None
209
229
  if isinstance(options, private_types.PushOptionsBaseten):
@@ -213,7 +233,11 @@ def push(
213
233
  "not supportd, push with `--publish`."
214
234
  )
215
235
  return _create_baseten_chain(
216
- options, entrypoint_artifact, dependency_artifacts, progress_bar
236
+ options,
237
+ entrypoint_artifact,
238
+ dependency_artifacts,
239
+ progress_bar,
240
+ entrypoint_descriptor,
217
241
  )
218
242
  elif isinstance(options, private_types.PushOptionsLocalDocker):
219
243
  if has_engine_builder_chainlets:
@@ -369,16 +393,19 @@ def _create_docker_chain(
369
393
  class BasetenChainService(ChainService):
370
394
  _chain_deployment_handle: b10_core.ChainDeploymentHandleAtomic
371
395
  _remote: b10_remote.BasetenRemote
396
+ _entrypoint_descriptor: Optional[private_types.ChainletAPIDescriptor]
372
397
 
373
398
  def __init__(
374
399
  self,
375
400
  name: str,
376
401
  chain_deployment_handle: b10_core.ChainDeploymentHandleAtomic,
377
402
  remote: b10_remote.BasetenRemote,
403
+ entrypoint_descriptor: Optional[private_types.ChainletAPIDescriptor] = None,
378
404
  ) -> None:
379
405
  super().__init__(name)
380
406
  self._chain_deployment_handle = chain_deployment_handle
381
407
  self._remote = remote
408
+ self._entrypoint_descriptor = entrypoint_descriptor
382
409
 
383
410
  @property
384
411
  def run_remote_url(self) -> str:
@@ -393,6 +420,13 @@ class BasetenChainService(ChainService):
393
420
  is_draft=handle.is_draft,
394
421
  )
395
422
 
423
+ @property
424
+ def is_websocket(self) -> bool:
425
+ """Check if the entrypoint uses websockets."""
426
+ if self._entrypoint_descriptor is None:
427
+ return False
428
+ return self._entrypoint_descriptor.endpoint.is_websocket
429
+
396
430
  def run_remote(self, json_data: Dict) -> Any:
397
431
  """Invokes the entrypoint with JSON data.
398
432
 
@@ -462,6 +496,7 @@ def _create_baseten_chain(
462
496
  entrypoint_artifact: b10_types.ChainletArtifact,
463
497
  dependency_artifacts: list[b10_types.ChainletArtifact],
464
498
  progress_bar: Optional[Type["progress.Progress"]],
499
+ entrypoint_descriptor: Optional[private_types.ChainletAPIDescriptor] = None,
465
500
  ):
466
501
  logging.info(
467
502
  f"Pushing Chain '{baseten_options.chain_name}' to Baseten "
@@ -491,7 +526,10 @@ def _create_baseten_chain(
491
526
  progress_bar=progress_bar,
492
527
  )
493
528
  return BasetenChainService(
494
- baseten_options.chain_name, chain_deployment_handle, remote_provider
529
+ baseten_options.chain_name,
530
+ chain_deployment_handle,
531
+ remote_provider,
532
+ entrypoint_descriptor,
495
533
  )
496
534
 
497
535
 
@@ -482,9 +482,11 @@ class WebSocketProtocol(Protocol):
482
482
  async def send_bytes(self, data: bytes) -> None: ...
483
483
  async def send_json(self, data: Any) -> None: ...
484
484
 
485
- def iter_text(self) -> AsyncIterator[str]: ...
486
- def iter_bytes(self) -> AsyncIterator[bytes]: ...
487
- def iter_json(self) -> AsyncIterator[Any]: ...
485
+ async def iter_text(self) -> AsyncIterator[str]: ...
486
+ async def iter_bytes(self) -> AsyncIterator[bytes]: ...
487
+ async def iter_json(self) -> AsyncIterator[Any]: ...
488
+
489
+ def is_connected(self) -> bool: ...
488
490
 
489
491
 
490
492
  class EngineBuilderLLMInput(pydantic.BaseModel):
@@ -39,7 +39,7 @@ if TYPE_CHECKING:
39
39
  try:
40
40
  import prometheus_client
41
41
  except ImportError:
42
- logging.warning("Optional `prometheus_client` is not installed. ")
42
+ logging.warning("Optional `prometheus_client` is not installed.")
43
43
 
44
44
  class _NoOpMetric:
45
45
  def labels(self, *args: object, **kwargs: object) -> "_NoOpMetric":
@@ -65,6 +65,26 @@ except ImportError:
65
65
  return _NoOpMetric()
66
66
 
67
67
 
68
+ try:
69
+ from fastapi import WebSocketDisconnect
70
+ except ImportError:
71
+ # NB(nikhil): Stub implementation of WebSocketDisconnect, in case local environment doesn't have
72
+ # fastapi.
73
+ class WebSocketDisconnect(Exception): # type: ignore[no-redef]
74
+ def __init__(self, code: int, reason: Optional[str] = None):
75
+ super().__init__()
76
+ self.code = code
77
+ self.reason = reason
78
+
79
+
80
+ try:
81
+ from starlette.websockets import WebSocketState
82
+ except ImportError:
83
+ # NB(nikhil): Stub implementation of WebSocketState, in case local environment doesn't have starlette.
84
+ class WebSocketState: # type: ignore[no-redef]
85
+ CONNECTED = "connected"
86
+
87
+
68
88
  T = TypeVar("T")
69
89
 
70
90
  _LockT = TypeVar("_LockT", bound=Union[threading.Lock, asyncio.Lock])
@@ -588,17 +608,12 @@ class WebsocketWrapperFastAPI:
588
608
  await self._websocket.close(code=code, reason=reason)
589
609
 
590
610
  async def receive(self) -> Union[str, bytes]:
591
- try:
592
- import fastapi
593
- except ImportError:
594
- raise utils.make_optional_import_error("fastapi")
595
-
596
611
  message = await self._websocket.receive()
597
612
 
598
613
  if message.get("type") == "websocket.disconnect":
599
614
  # NB(nikhil): Mimics FastAPI `_raise_on_disconnect`, since otherwise the user has no
600
615
  # way of detecting that the client disconnected.
601
- raise fastapi.WebSocketDisconnect(message["code"], message.get("reason"))
616
+ raise WebSocketDisconnect(message["code"], message.get("reason"))
602
617
  elif message.get("text"):
603
618
  return typing.cast(str, message["text"])
604
619
  else:
@@ -623,13 +638,19 @@ class WebsocketWrapperFastAPI:
623
638
  await self._websocket.send_json(data)
624
639
 
625
640
  async def iter_text(self) -> AsyncIterator[str]:
626
- while True:
627
- yield await self.receive_text()
641
+ return self._websocket.iter_text()
628
642
 
629
643
  async def iter_bytes(self) -> AsyncIterator[bytes]:
630
- while True:
631
- yield await self.receive_bytes()
644
+ return self._websocket.iter_bytes()
632
645
 
633
646
  async def iter_json(self) -> AsyncIterator[Any]:
634
- while True:
635
- yield await self.receive_json()
647
+ return self._websocket.iter_json()
648
+
649
+ async def is_connected(self) -> bool:
650
+ # NB(nikhil): This isn't a foolproof mechanism for detecting whether a websocket
651
+ # connection is actually alive, ping/pong messages are best suited for that. However,
652
+ # as a heuristic to determine if a message is safe to send, this can do a pretty good job.
653
+ return (
654
+ self._websocket.application_state == WebSocketState.CONNECTED
655
+ and self._websocket.client_state == WebSocketState.CONNECTED
656
+ )
@@ -1,5 +1,6 @@
1
1
  from truss_train.definitions import (
2
2
  AWSIAMDockerAuth,
3
+ BasetenCheckpoint,
3
4
  CacheConfig,
4
5
  CheckpointingConfig,
5
6
  CheckpointList,
@@ -10,6 +11,7 @@ from truss_train.definitions import (
10
11
  FullCheckpoint,
11
12
  GCPServiceAccountJSONDockerAuth,
12
13
  Image,
14
+ LoadCheckpointConfig,
13
15
  LoRACheckpoint,
14
16
  LoRADetails,
15
17
  ModelWeightsFormat,
@@ -36,6 +38,8 @@ __all__ = [
36
38
  "CacheConfig",
37
39
  "AWSIAMDockerAuth",
38
40
  "GCPServiceAccountJSONDockerAuth",
41
+ "LoadCheckpointConfig",
42
+ "BasetenCheckpoint",
39
43
  "DockerAuth",
40
44
  "Image",
41
45
  ]
@@ -1,11 +1,11 @@
1
1
  import enum
2
2
  from abc import ABC
3
- from typing import Dict, List, Optional, Union
3
+ from typing import Dict, List, Literal, Optional, Union
4
4
 
5
5
  import pydantic
6
6
  from pydantic import field_validator, model_validator
7
7
 
8
- from truss.base import custom_types, truss_config
8
+ from truss.base import constants, custom_types, truss_config
9
9
 
10
10
  DEFAULT_LORA_RANK = 16
11
11
 
@@ -56,6 +56,50 @@ class Compute(custom_types.SafeModelNoExtra):
56
56
  )
57
57
 
58
58
 
59
+ class _CheckpointBase(custom_types.SafeModelNoExtra):
60
+ typ: str
61
+
62
+
63
+ class _BasetenLatestCheckpoint(_CheckpointBase):
64
+ job_id: Optional[str] = None
65
+ project_name: Optional[str] = None
66
+ typ: Literal["baseten_latest_checkpoint"] = "baseten_latest_checkpoint"
67
+
68
+
69
+ class _BasetenNamedCheckpoint(_CheckpointBase):
70
+ checkpoint_name: str
71
+ job_id: Optional[str]
72
+ project_name: Optional[str]
73
+ typ: Literal["baseten_named_checkpoint"] = "baseten_named_checkpoint"
74
+
75
+
76
+ class BasetenCheckpoint:
77
+ @staticmethod
78
+ def from_latest_checkpoint(
79
+ project_name: Optional[str] = None, job_id: Optional[str] = None
80
+ ) -> _BasetenLatestCheckpoint:
81
+ return _BasetenLatestCheckpoint(project_name=project_name, job_id=job_id)
82
+
83
+ @classmethod
84
+ def from_named_checkpoint(
85
+ cls,
86
+ checkpoint_name: str,
87
+ project_name: Optional[str] = None,
88
+ job_id: Optional[str] = None,
89
+ ) -> _BasetenNamedCheckpoint:
90
+ return _BasetenNamedCheckpoint(
91
+ checkpoint_name=checkpoint_name, project_name=project_name, job_id=job_id
92
+ )
93
+
94
+
95
+ class LoadCheckpointConfig(custom_types.SafeModelNoExtra):
96
+ enabled: bool = False
97
+ checkpoints: List[Union[_BasetenLatestCheckpoint, _BasetenNamedCheckpoint]] = [
98
+ _BasetenLatestCheckpoint()
99
+ ]
100
+ download_folder: str = constants.DEFAULT_TRAINING_CHECKPOINT_FOLDER
101
+
102
+
59
103
  class CheckpointingConfig(custom_types.SafeModelNoExtra):
60
104
  enabled: bool = False
61
105
  checkpoint_path: Optional[str] = None
@@ -72,6 +116,7 @@ class Runtime(custom_types.SafeModelNoExtra):
72
116
  environment_variables: Dict[str, Union[str, SecretReference]] = {}
73
117
  enable_cache: Optional[bool] = None
74
118
  checkpointing_config: CheckpointingConfig = CheckpointingConfig()
119
+ load_checkpoint_config: Optional[LoadCheckpointConfig] = None
75
120
  cache_config: Optional[CacheConfig] = None
76
121
 
77
122
  @model_validator(mode="before")
@@ -0,0 +1,42 @@
1
+ from truss_train import (
2
+ BasetenCheckpoint,
3
+ CheckpointingConfig,
4
+ Image,
5
+ LoadCheckpointConfig,
6
+ Runtime,
7
+ TrainingJob,
8
+ TrainingProject,
9
+ )
10
+
11
+ load_checkpoint_config = LoadCheckpointConfig(enabled=True)
12
+
13
+ load_from_most_recent_checkpoint = BasetenCheckpoint.from_latest_checkpoint()
14
+
15
+ load_most_recent_checkpoint = BasetenCheckpoint.from_latest_checkpoint(
16
+ job_id="lqz4pw4", # Optional
17
+ project_name="first-project", # Optional
18
+ )
19
+
20
+ load_from_named_checkpoint = BasetenCheckpoint.from_named_checkpoint(
21
+ checkpoint_name="checkpoint-24",
22
+ project_name="first-project", # Optional
23
+ job_id="lqz4pw4", # Optional
24
+ )
25
+
26
+ load_checkpoint_config = LoadCheckpointConfig(
27
+ enabled=True,
28
+ download_folder="/tmp/custom_location", # default is None -> default path set by server-side
29
+ checkpoints=[load_from_most_recent_checkpoint, load_from_named_checkpoint],
30
+ )
31
+
32
+ checkpointing_config = CheckpointingConfig(enabled=True)
33
+
34
+ job = TrainingJob(
35
+ image=Image(base_image="ghcr.io/baseten-ai/truss-train-base:latest"),
36
+ runtime=Runtime(
37
+ checkpointing_config=checkpointing_config,
38
+ load_checkpoint_config=load_checkpoint_config,
39
+ ),
40
+ )
41
+
42
+ project = TrainingProject(name="new-project", job=job)
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