truss 0.10.0rc1__py3-none-any.whl → 0.60.0__py3-none-any.whl

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 (362) hide show
  1. truss/__init__.py +10 -3
  2. truss/api/__init__.py +123 -0
  3. truss/api/definitions.py +51 -0
  4. truss/base/constants.py +116 -0
  5. truss/base/custom_types.py +29 -0
  6. truss/{errors.py → base/errors.py} +4 -0
  7. truss/base/trt_llm_config.py +310 -0
  8. truss/{truss_config.py → base/truss_config.py} +344 -31
  9. truss/{truss_spec.py → base/truss_spec.py} +20 -6
  10. truss/{validation.py → base/validation.py} +60 -11
  11. truss/cli/cli.py +841 -88
  12. truss/{remote → cli}/remote_cli.py +2 -7
  13. truss/contexts/docker_build_setup.py +67 -0
  14. truss/contexts/image_builder/cache_warmer.py +2 -8
  15. truss/contexts/image_builder/image_builder.py +1 -1
  16. truss/contexts/image_builder/serving_image_builder.py +292 -46
  17. truss/contexts/image_builder/util.py +1 -3
  18. truss/contexts/local_loader/docker_build_emulator.py +58 -0
  19. truss/contexts/local_loader/load_model_local.py +2 -2
  20. truss/contexts/local_loader/truss_module_loader.py +1 -1
  21. truss/contexts/local_loader/utils.py +1 -1
  22. truss/local/local_config.py +2 -6
  23. truss/local/local_config_handler.py +20 -5
  24. truss/patch/__init__.py +1 -0
  25. truss/patch/hash.py +4 -70
  26. truss/patch/signature.py +4 -16
  27. truss/patch/truss_dir_patch_applier.py +3 -78
  28. truss/remote/baseten/api.py +308 -23
  29. truss/remote/baseten/auth.py +3 -3
  30. truss/remote/baseten/core.py +257 -50
  31. truss/remote/baseten/custom_types.py +44 -0
  32. truss/remote/baseten/error.py +4 -0
  33. truss/remote/baseten/remote.py +369 -118
  34. truss/remote/baseten/service.py +118 -11
  35. truss/remote/baseten/utils/status.py +29 -0
  36. truss/remote/baseten/utils/tar.py +34 -22
  37. truss/remote/baseten/utils/transfer.py +36 -23
  38. truss/remote/remote_factory.py +14 -5
  39. truss/remote/truss_remote.py +72 -45
  40. truss/templates/base.Dockerfile.jinja +18 -16
  41. truss/templates/cache.Dockerfile.jinja +3 -3
  42. truss/{server → templates/control}/control/application.py +14 -35
  43. truss/{server → templates/control}/control/endpoints.py +39 -9
  44. truss/{server/control/patch/types.py → templates/control/control/helpers/custom_types.py} +13 -52
  45. truss/{server → templates/control}/control/helpers/inference_server_controller.py +4 -8
  46. truss/{server → templates/control}/control/helpers/inference_server_process_controller.py +2 -4
  47. truss/{server → templates/control}/control/helpers/inference_server_starter.py +5 -10
  48. truss/{server/control → templates/control/control/helpers}/truss_patch/model_code_patch_applier.py +8 -6
  49. truss/{server/control/patch → templates/control/control/helpers/truss_patch}/model_container_patch_applier.py +18 -26
  50. truss/templates/control/control/helpers/truss_patch/requirement_name_identifier.py +66 -0
  51. truss/{server → templates/control}/control/server.py +11 -6
  52. truss/templates/control/requirements.txt +9 -0
  53. truss/templates/custom_python_dx/my_model.py +28 -0
  54. truss/templates/docker_server/proxy.conf.jinja +42 -0
  55. truss/templates/docker_server/supervisord.conf.jinja +27 -0
  56. truss/templates/docker_server_requirements.txt +1 -0
  57. truss/templates/server/common/errors.py +231 -0
  58. truss/{server → templates/server}/common/patches/whisper/patch.py +1 -0
  59. truss/{server/common/patches/__init__.py → templates/server/common/patches.py} +1 -3
  60. truss/{server → templates/server}/common/retry.py +1 -0
  61. truss/{server → templates/server}/common/schema.py +11 -9
  62. truss/templates/server/common/tracing.py +157 -0
  63. truss/templates/server/main.py +9 -0
  64. truss/templates/server/model_wrapper.py +961 -0
  65. truss/templates/server/requirements.txt +21 -0
  66. truss/templates/server/truss_server.py +447 -0
  67. truss/templates/server.Dockerfile.jinja +62 -14
  68. truss/templates/shared/dynamic_config_resolver.py +28 -0
  69. truss/templates/shared/lazy_data_resolver.py +164 -0
  70. truss/templates/shared/log_config.py +125 -0
  71. truss/{server → templates}/shared/secrets_resolver.py +1 -2
  72. truss/{server → templates}/shared/serialization.py +31 -9
  73. truss/{server → templates}/shared/util.py +3 -13
  74. truss/templates/trtllm-audio/model/model.py +49 -0
  75. truss/templates/trtllm-audio/packages/sigint_patch.py +14 -0
  76. truss/templates/trtllm-audio/packages/whisper_trt/__init__.py +215 -0
  77. truss/templates/trtllm-audio/packages/whisper_trt/assets.py +25 -0
  78. truss/templates/trtllm-audio/packages/whisper_trt/batching.py +52 -0
  79. truss/templates/trtllm-audio/packages/whisper_trt/custom_types.py +26 -0
  80. truss/templates/trtllm-audio/packages/whisper_trt/modeling.py +184 -0
  81. truss/templates/trtllm-audio/packages/whisper_trt/tokenizer.py +185 -0
  82. truss/templates/trtllm-audio/packages/whisper_trt/utils.py +245 -0
  83. truss/templates/trtllm-briton/src/extension.py +64 -0
  84. truss/tests/conftest.py +302 -94
  85. truss/tests/contexts/image_builder/test_serving_image_builder.py +74 -31
  86. truss/tests/contexts/local_loader/test_load_local.py +2 -2
  87. truss/tests/contexts/local_loader/test_truss_module_finder.py +1 -1
  88. truss/tests/patch/test_calc_patch.py +439 -127
  89. truss/tests/patch/test_dir_signature.py +3 -12
  90. truss/tests/patch/test_hash.py +1 -1
  91. truss/tests/patch/test_signature.py +1 -1
  92. truss/tests/patch/test_truss_dir_patch_applier.py +23 -11
  93. truss/tests/patch/test_types.py +2 -2
  94. truss/tests/remote/baseten/test_api.py +153 -58
  95. truss/tests/remote/baseten/test_auth.py +2 -1
  96. truss/tests/remote/baseten/test_core.py +160 -12
  97. truss/tests/remote/baseten/test_remote.py +489 -77
  98. truss/tests/remote/baseten/test_service.py +55 -0
  99. truss/tests/remote/test_remote_factory.py +16 -18
  100. truss/tests/remote/test_truss_remote.py +26 -17
  101. truss/tests/templates/control/control/helpers/test_context_managers.py +11 -0
  102. truss/tests/templates/control/control/helpers/test_model_container_patch_applier.py +184 -0
  103. truss/tests/templates/control/control/helpers/test_requirement_name_identifier.py +89 -0
  104. truss/tests/{server → templates/control}/control/test_server.py +79 -24
  105. truss/tests/{server → templates/control}/control/test_server_integration.py +24 -16
  106. truss/tests/templates/core/server/test_dynamic_config_resolver.py +108 -0
  107. truss/tests/templates/core/server/test_lazy_data_resolver.py +329 -0
  108. truss/tests/templates/core/server/test_lazy_data_resolver_v2.py +79 -0
  109. truss/tests/{server → templates}/core/server/test_secrets_resolver.py +1 -1
  110. truss/tests/{server → templates/server}/common/test_retry.py +3 -3
  111. truss/tests/templates/server/test_model_wrapper.py +248 -0
  112. truss/tests/{server → templates/server}/test_schema.py +3 -5
  113. truss/tests/{server/core/server/common → templates/server}/test_truss_server.py +8 -5
  114. truss/tests/test_build.py +9 -52
  115. truss/tests/test_config.py +336 -77
  116. truss/tests/test_context_builder_image.py +3 -11
  117. truss/tests/test_control_truss_patching.py +7 -12
  118. truss/tests/test_custom_server.py +38 -0
  119. truss/tests/test_data/context_builder_image_test/test.py +3 -0
  120. truss/tests/test_data/happy.ipynb +56 -0
  121. truss/tests/test_data/model_load_failure_test/config.yaml +2 -0
  122. truss/tests/test_data/model_load_failure_test/model/__init__.py +0 -0
  123. truss/tests/test_data/patch_ping_test_server/__init__.py +0 -0
  124. truss/{test_data → tests/test_data}/patch_ping_test_server/app.py +3 -9
  125. truss/{test_data → tests/test_data}/server.Dockerfile +20 -21
  126. truss/tests/test_data/server_conformance_test_truss/__init__.py +0 -0
  127. truss/tests/test_data/server_conformance_test_truss/model/__init__.py +0 -0
  128. truss/{test_data → tests/test_data}/server_conformance_test_truss/model/model.py +1 -3
  129. truss/tests/test_data/test_async_truss/__init__.py +0 -0
  130. truss/tests/test_data/test_async_truss/model/__init__.py +0 -0
  131. truss/tests/test_data/test_basic_truss/__init__.py +0 -0
  132. truss/tests/test_data/test_basic_truss/config.yaml +16 -0
  133. truss/tests/test_data/test_basic_truss/model/__init__.py +0 -0
  134. truss/tests/test_data/test_build_commands/__init__.py +0 -0
  135. truss/tests/test_data/test_build_commands/config.yaml +13 -0
  136. truss/tests/test_data/test_build_commands/model/__init__.py +0 -0
  137. truss/{test_data/test_streaming_async_generator_truss → tests/test_data/test_build_commands}/model/model.py +2 -3
  138. truss/tests/test_data/test_build_commands_failure/__init__.py +0 -0
  139. truss/tests/test_data/test_build_commands_failure/config.yaml +14 -0
  140. truss/tests/test_data/test_build_commands_failure/model/__init__.py +0 -0
  141. truss/tests/test_data/test_build_commands_failure/model/model.py +17 -0
  142. truss/tests/test_data/test_concurrency_truss/__init__.py +0 -0
  143. truss/tests/test_data/test_concurrency_truss/config.yaml +4 -0
  144. truss/tests/test_data/test_concurrency_truss/model/__init__.py +0 -0
  145. truss/tests/test_data/test_custom_server_truss/__init__.py +0 -0
  146. truss/tests/test_data/test_custom_server_truss/config.yaml +20 -0
  147. truss/tests/test_data/test_custom_server_truss/test_docker_image/Dockerfile +17 -0
  148. truss/tests/test_data/test_custom_server_truss/test_docker_image/README.md +10 -0
  149. truss/tests/test_data/test_custom_server_truss/test_docker_image/VERSION +1 -0
  150. truss/tests/test_data/test_custom_server_truss/test_docker_image/__init__.py +0 -0
  151. truss/tests/test_data/test_custom_server_truss/test_docker_image/app.py +19 -0
  152. truss/tests/test_data/test_custom_server_truss/test_docker_image/build_upload_new_image.sh +6 -0
  153. truss/tests/test_data/test_openai/__init__.py +0 -0
  154. truss/{test_data/test_basic_truss → tests/test_data/test_openai}/config.yaml +1 -2
  155. truss/tests/test_data/test_openai/model/__init__.py +0 -0
  156. truss/tests/test_data/test_openai/model/model.py +15 -0
  157. truss/tests/test_data/test_pyantic_v1/__init__.py +0 -0
  158. truss/tests/test_data/test_pyantic_v1/model/__init__.py +0 -0
  159. truss/tests/test_data/test_pyantic_v1/model/model.py +28 -0
  160. truss/tests/test_data/test_pyantic_v1/requirements.txt +1 -0
  161. truss/tests/test_data/test_pyantic_v2/__init__.py +0 -0
  162. truss/tests/test_data/test_pyantic_v2/config.yaml +13 -0
  163. truss/tests/test_data/test_pyantic_v2/model/__init__.py +0 -0
  164. truss/tests/test_data/test_pyantic_v2/model/model.py +30 -0
  165. truss/tests/test_data/test_pyantic_v2/requirements.txt +1 -0
  166. truss/tests/test_data/test_requirements_file_truss/__init__.py +0 -0
  167. truss/tests/test_data/test_requirements_file_truss/config.yaml +13 -0
  168. truss/tests/test_data/test_requirements_file_truss/model/__init__.py +0 -0
  169. truss/{test_data → tests/test_data}/test_requirements_file_truss/model/model.py +1 -0
  170. truss/tests/test_data/test_streaming_async_generator_truss/__init__.py +0 -0
  171. truss/tests/test_data/test_streaming_async_generator_truss/config.yaml +4 -0
  172. truss/tests/test_data/test_streaming_async_generator_truss/model/__init__.py +0 -0
  173. truss/tests/test_data/test_streaming_async_generator_truss/model/model.py +7 -0
  174. truss/tests/test_data/test_streaming_read_timeout/__init__.py +0 -0
  175. truss/tests/test_data/test_streaming_read_timeout/model/__init__.py +0 -0
  176. truss/tests/test_data/test_streaming_truss/__init__.py +0 -0
  177. truss/tests/test_data/test_streaming_truss/config.yaml +4 -0
  178. truss/tests/test_data/test_streaming_truss/model/__init__.py +0 -0
  179. truss/tests/test_data/test_streaming_truss_with_error/__init__.py +0 -0
  180. truss/tests/test_data/test_streaming_truss_with_error/model/__init__.py +0 -0
  181. truss/{test_data → tests/test_data}/test_streaming_truss_with_error/model/model.py +3 -11
  182. truss/tests/test_data/test_streaming_truss_with_error/packages/__init__.py +0 -0
  183. truss/tests/test_data/test_streaming_truss_with_error/packages/helpers_1.py +5 -0
  184. truss/tests/test_data/test_streaming_truss_with_error/packages/helpers_2.py +2 -0
  185. truss/tests/test_data/test_streaming_truss_with_tracing/__init__.py +0 -0
  186. truss/tests/test_data/test_streaming_truss_with_tracing/config.yaml +43 -0
  187. truss/tests/test_data/test_streaming_truss_with_tracing/model/__init__.py +0 -0
  188. truss/tests/test_data/test_streaming_truss_with_tracing/model/model.py +65 -0
  189. truss/tests/test_data/test_trt_llm_truss/__init__.py +0 -0
  190. truss/tests/test_data/test_trt_llm_truss/config.yaml +15 -0
  191. truss/tests/test_data/test_trt_llm_truss/model/__init__.py +0 -0
  192. truss/tests/test_data/test_trt_llm_truss/model/model.py +15 -0
  193. truss/tests/test_data/test_truss/__init__.py +0 -0
  194. truss/tests/test_data/test_truss/config.yaml +4 -0
  195. truss/tests/test_data/test_truss/model/__init__.py +0 -0
  196. truss/tests/test_data/test_truss/model/dummy +0 -0
  197. truss/tests/test_data/test_truss/packages/__init__.py +0 -0
  198. truss/tests/test_data/test_truss/packages/test_package/__init__.py +0 -0
  199. truss/tests/test_data/test_truss_server_caching_truss/__init__.py +0 -0
  200. truss/tests/test_data/test_truss_server_caching_truss/model/__init__.py +0 -0
  201. truss/tests/test_data/test_truss_with_error/__init__.py +0 -0
  202. truss/tests/test_data/test_truss_with_error/config.yaml +4 -0
  203. truss/tests/test_data/test_truss_with_error/model/__init__.py +0 -0
  204. truss/tests/test_data/test_truss_with_error/model/model.py +8 -0
  205. truss/tests/test_data/test_truss_with_error/packages/__init__.py +0 -0
  206. truss/tests/test_data/test_truss_with_error/packages/helpers_1.py +5 -0
  207. truss/tests/test_data/test_truss_with_error/packages/helpers_2.py +2 -0
  208. truss/tests/test_docker.py +2 -1
  209. truss/tests/test_model_inference.py +1340 -292
  210. truss/tests/test_model_schema.py +33 -26
  211. truss/tests/test_testing_utilities_for_other_tests.py +50 -5
  212. truss/tests/test_truss_gatherer.py +3 -5
  213. truss/tests/test_truss_handle.py +62 -59
  214. truss/tests/test_util.py +2 -1
  215. truss/tests/test_validation.py +15 -13
  216. truss/tests/trt_llm/test_trt_llm_config.py +41 -0
  217. truss/tests/trt_llm/test_validation.py +91 -0
  218. truss/tests/util/test_config_checks.py +40 -0
  219. truss/tests/util/test_env_vars.py +14 -0
  220. truss/tests/util/test_path.py +10 -23
  221. truss/trt_llm/config_checks.py +43 -0
  222. truss/trt_llm/validation.py +42 -0
  223. truss/truss_handle/__init__.py +0 -0
  224. truss/truss_handle/build.py +122 -0
  225. truss/{decorators.py → truss_handle/decorators.py} +1 -1
  226. truss/truss_handle/patch/__init__.py +0 -0
  227. truss/{patch → truss_handle/patch}/calc_patch.py +146 -92
  228. truss/{types.py → truss_handle/patch/custom_types.py} +35 -27
  229. truss/{patch → truss_handle/patch}/dir_signature.py +1 -1
  230. truss/truss_handle/patch/hash.py +71 -0
  231. truss/{patch → truss_handle/patch}/local_truss_patch_applier.py +6 -4
  232. truss/truss_handle/patch/signature.py +22 -0
  233. truss/truss_handle/patch/truss_dir_patch_applier.py +87 -0
  234. truss/{readme_generator.py → truss_handle/readme_generator.py} +3 -2
  235. truss/{truss_gatherer.py → truss_handle/truss_gatherer.py} +3 -2
  236. truss/{truss_handle.py → truss_handle/truss_handle.py} +174 -78
  237. truss/util/.truss_ignore +3 -0
  238. truss/{docker.py → util/docker.py} +6 -2
  239. truss/util/download.py +6 -15
  240. truss/util/env_vars.py +41 -0
  241. truss/util/log_utils.py +52 -0
  242. truss/util/path.py +20 -20
  243. truss/util/requirements.py +11 -0
  244. {truss-0.10.0rc1.dist-info → truss-0.60.0.dist-info}/METADATA +18 -16
  245. truss-0.60.0.dist-info/RECORD +324 -0
  246. {truss-0.10.0rc1.dist-info → truss-0.60.0.dist-info}/WHEEL +1 -1
  247. truss-0.60.0.dist-info/entry_points.txt +4 -0
  248. truss_chains/__init__.py +71 -0
  249. truss_chains/definitions.py +756 -0
  250. truss_chains/deployment/__init__.py +0 -0
  251. truss_chains/deployment/code_gen.py +816 -0
  252. truss_chains/deployment/deployment_client.py +871 -0
  253. truss_chains/framework.py +1480 -0
  254. truss_chains/public_api.py +231 -0
  255. truss_chains/py.typed +0 -0
  256. truss_chains/pydantic_numpy.py +131 -0
  257. truss_chains/reference_code/reference_chainlet.py +34 -0
  258. truss_chains/reference_code/reference_model.py +10 -0
  259. truss_chains/remote_chainlet/__init__.py +0 -0
  260. truss_chains/remote_chainlet/model_skeleton.py +60 -0
  261. truss_chains/remote_chainlet/stub.py +380 -0
  262. truss_chains/remote_chainlet/utils.py +332 -0
  263. truss_chains/streaming.py +378 -0
  264. truss_chains/utils.py +178 -0
  265. CODE_OF_CONDUCT.md +0 -131
  266. CONTRIBUTING.md +0 -48
  267. README.md +0 -137
  268. context_builder.Dockerfile +0 -24
  269. truss/blob/blob_backend.py +0 -10
  270. truss/blob/blob_backend_registry.py +0 -23
  271. truss/blob/http_public_blob_backend.py +0 -23
  272. truss/build/__init__.py +0 -2
  273. truss/build/build.py +0 -143
  274. truss/build/configure.py +0 -63
  275. truss/cli/__init__.py +0 -2
  276. truss/cli/console.py +0 -5
  277. truss/cli/create.py +0 -5
  278. truss/config/trt_llm.py +0 -81
  279. truss/constants.py +0 -61
  280. truss/model_inference.py +0 -123
  281. truss/patch/types.py +0 -30
  282. truss/pytest.ini +0 -7
  283. truss/server/common/errors.py +0 -100
  284. truss/server/common/termination_handler_middleware.py +0 -64
  285. truss/server/common/truss_server.py +0 -389
  286. truss/server/control/patch/model_code_patch_applier.py +0 -46
  287. truss/server/control/patch/requirement_name_identifier.py +0 -17
  288. truss/server/inference_server.py +0 -29
  289. truss/server/model_wrapper.py +0 -434
  290. truss/server/shared/logging.py +0 -81
  291. truss/templates/trtllm/model/model.py +0 -97
  292. truss/templates/trtllm/packages/build_engine_utils.py +0 -34
  293. truss/templates/trtllm/packages/constants.py +0 -11
  294. truss/templates/trtllm/packages/schema.py +0 -216
  295. truss/templates/trtllm/packages/tensorrt_llm_model_repository/ensemble/config.pbtxt +0 -246
  296. truss/templates/trtllm/packages/tensorrt_llm_model_repository/postprocessing/1/model.py +0 -181
  297. truss/templates/trtllm/packages/tensorrt_llm_model_repository/postprocessing/config.pbtxt +0 -64
  298. truss/templates/trtllm/packages/tensorrt_llm_model_repository/preprocessing/1/model.py +0 -260
  299. truss/templates/trtllm/packages/tensorrt_llm_model_repository/preprocessing/config.pbtxt +0 -99
  300. truss/templates/trtllm/packages/tensorrt_llm_model_repository/tensorrt_llm/config.pbtxt +0 -208
  301. truss/templates/trtllm/packages/triton_client.py +0 -150
  302. truss/templates/trtllm/packages/utils.py +0 -43
  303. truss/test_data/context_builder_image_test/test.py +0 -4
  304. truss/test_data/happy.ipynb +0 -54
  305. truss/test_data/model_load_failure_test/config.yaml +0 -2
  306. truss/test_data/test_concurrency_truss/config.yaml +0 -2
  307. truss/test_data/test_streaming_async_generator_truss/config.yaml +0 -2
  308. truss/test_data/test_streaming_truss/config.yaml +0 -3
  309. truss/test_data/test_truss/config.yaml +0 -2
  310. truss/tests/server/common/test_termination_handler_middleware.py +0 -93
  311. truss/tests/server/control/test_model_container_patch_applier.py +0 -203
  312. truss/tests/server/core/server/common/test_util.py +0 -19
  313. truss/tests/server/test_model_wrapper.py +0 -87
  314. truss/util/data_structures.py +0 -16
  315. truss-0.10.0rc1.dist-info/RECORD +0 -216
  316. truss-0.10.0rc1.dist-info/entry_points.txt +0 -3
  317. truss/{server/shared → base}/__init__.py +0 -0
  318. truss/{server → templates/control}/control/helpers/context_managers.py +0 -0
  319. truss/{server/control → templates/control/control/helpers}/errors.py +0 -0
  320. truss/{server/control/patch → templates/control/control/helpers/truss_patch}/__init__.py +0 -0
  321. truss/{server/control/patch → templates/control/control/helpers/truss_patch}/system_packages.py +0 -0
  322. truss/{test_data/annotated_types_truss/model → templates/server}/__init__.py +0 -0
  323. truss/{server → templates/server}/common/__init__.py +0 -0
  324. truss/{test_data/gcs_fix/model → templates/shared}/__init__.py +0 -0
  325. truss/templates/{trtllm → trtllm-briton}/README.md +0 -0
  326. truss/{test_data/server_conformance_test_truss/model → tests/test_data}/__init__.py +0 -0
  327. truss/{test_data/test_basic_truss/model → tests/test_data/annotated_types_truss}/__init__.py +0 -0
  328. truss/{test_data → tests/test_data}/annotated_types_truss/config.yaml +0 -0
  329. truss/{test_data/test_requirements_file_truss → tests/test_data/annotated_types_truss}/model/__init__.py +0 -0
  330. truss/{test_data → tests/test_data}/annotated_types_truss/model/model.py +0 -0
  331. truss/{test_data → tests/test_data}/auto-mpg.data +0 -0
  332. truss/{test_data → tests/test_data}/context_builder_image_test/Dockerfile +0 -0
  333. truss/{test_data/test_truss/model → tests/test_data/context_builder_image_test}/__init__.py +0 -0
  334. truss/{test_data/test_truss_server_caching_truss/model → tests/test_data/gcs_fix}/__init__.py +0 -0
  335. truss/{test_data → tests/test_data}/gcs_fix/config.yaml +0 -0
  336. truss/tests/{local → test_data/gcs_fix/model}/__init__.py +0 -0
  337. truss/{test_data → tests/test_data}/gcs_fix/model/model.py +0 -0
  338. truss/{test_data/test_truss/model/dummy → tests/test_data/model_load_failure_test/__init__.py} +0 -0
  339. truss/{test_data → tests/test_data}/model_load_failure_test/model/model.py +0 -0
  340. truss/{test_data → tests/test_data}/pima-indians-diabetes.csv +0 -0
  341. truss/{test_data → tests/test_data}/readme_int_example.md +0 -0
  342. truss/{test_data → tests/test_data}/readme_no_example.md +0 -0
  343. truss/{test_data → tests/test_data}/readme_str_example.md +0 -0
  344. truss/{test_data → tests/test_data}/server_conformance_test_truss/config.yaml +0 -0
  345. truss/{test_data → tests/test_data}/test_async_truss/config.yaml +0 -0
  346. truss/{test_data → tests/test_data}/test_async_truss/model/model.py +3 -3
  347. /truss/{test_data → tests/test_data}/test_basic_truss/model/model.py +0 -0
  348. /truss/{test_data → tests/test_data}/test_concurrency_truss/model/model.py +0 -0
  349. /truss/{test_data/test_requirements_file_truss → tests/test_data/test_pyantic_v1}/config.yaml +0 -0
  350. /truss/{test_data → tests/test_data}/test_requirements_file_truss/requirements.txt +0 -0
  351. /truss/{test_data → tests/test_data}/test_streaming_read_timeout/config.yaml +0 -0
  352. /truss/{test_data → tests/test_data}/test_streaming_read_timeout/model/model.py +0 -0
  353. /truss/{test_data → tests/test_data}/test_streaming_truss/model/model.py +0 -0
  354. /truss/{test_data → tests/test_data}/test_streaming_truss_with_error/config.yaml +0 -0
  355. /truss/{test_data → tests/test_data}/test_truss/examples.yaml +0 -0
  356. /truss/{test_data → tests/test_data}/test_truss/model/model.py +0 -0
  357. /truss/{test_data → tests/test_data}/test_truss/packages/test_package/test.py +0 -0
  358. /truss/{test_data → tests/test_data}/test_truss_server_caching_truss/config.yaml +0 -0
  359. /truss/{test_data → tests/test_data}/test_truss_server_caching_truss/model/model.py +0 -0
  360. /truss/{patch → truss_handle/patch}/constants.py +0 -0
  361. /truss/{notebook.py → util/notebook.py} +0 -0
  362. {truss-0.10.0rc1.dist-info → truss-0.60.0.dist-info}/LICENSE +0 -0
truss/util/env_vars.py ADDED
@@ -0,0 +1,41 @@
1
+ import os
2
+ from typing import Dict, Optional
3
+
4
+
5
+ class override_env_vars:
6
+ """A context manager for temporarily overwriting environment variables.
7
+
8
+ Usage:
9
+ with override_env_vars({'API_KEY': 'test_key', 'DEBUG': 'true'}):
10
+ # Environment variables are modified here
11
+ ...
12
+ # Original environment is restored here
13
+ """
14
+
15
+ def __init__(self, env_vars: Dict[str, str]):
16
+ """
17
+ Args:
18
+ env_vars: Dictionary of environment variables to set
19
+ """
20
+ self.env_vars = env_vars
21
+ self.original_vars: Dict[str, Optional[str]] = {}
22
+
23
+ def __enter__(self):
24
+ for key in self.env_vars:
25
+ self.original_vars[key] = os.environ.get(key)
26
+
27
+ for key, value in self.env_vars.items():
28
+ os.environ[key] = value
29
+
30
+ return self
31
+
32
+ def __exit__(self, exc_type, exc_val, exc_tb):
33
+ # Restore original environment
34
+ for key, value in self.original_vars.items():
35
+ if value is None:
36
+ # Variable didn't exist originally
37
+ if key in os.environ:
38
+ del os.environ[key]
39
+ else:
40
+ # Restore original value
41
+ os.environ[key] = value
@@ -0,0 +1,52 @@
1
+ import logging
2
+ import threading
3
+ from typing import List, Optional
4
+
5
+
6
+ # TODO: add test.
7
+ class LogInterceptor(logging.Handler):
8
+ """This context manager intercepts logs at root level and allows to retrieve them
9
+ later. It uses the formatter of the first root handler (if present).
10
+
11
+ Specifically it allows different threads to each have an instance of this context
12
+ manager and keeping the logs separated between the threads.
13
+ Note that this is different from a single instance being used by multiple threads.
14
+ """
15
+
16
+ _formatter: Optional[logging.Formatter]
17
+ _original_handlers: List[logging.Handler]
18
+ _log_messages: List[str]
19
+ _thread_local = threading.local()
20
+
21
+ def __init__(self) -> None:
22
+ super().__init__()
23
+ self._formatter = None
24
+ self._log_messages = []
25
+ self._original_handlers = []
26
+
27
+ def __enter__(self) -> "LogInterceptor":
28
+ if not hasattr(LogInterceptor._thread_local, "handlers"):
29
+ LogInterceptor._thread_local.handlers = []
30
+ LogInterceptor._thread_local.handlers.append(self)
31
+ self._original_handlers = logging.root.handlers[:]
32
+ logging.root.handlers = [self]
33
+ self._formatter = (
34
+ logging.root.handlers[0].formatter if logging.root.handlers else None
35
+ )
36
+ return self
37
+
38
+ def __exit__(self, exc_type, exc_value, traceback) -> None:
39
+ logging.root.handlers = self._original_handlers
40
+ LogInterceptor._thread_local.handlers.pop()
41
+
42
+ def emit(self, record: logging.LogRecord) -> None:
43
+ if hasattr(LogInterceptor._thread_local, "handlers"):
44
+ current_handler = LogInterceptor._thread_local.handlers[-1]
45
+ if self._formatter:
46
+ formatted_record = self._formatter.format(record)
47
+ else:
48
+ formatted_record = self.format(record)
49
+ current_handler._log_messages.append(formatted_record)
50
+
51
+ def get_logs(self) -> List[str]:
52
+ return self._log_messages
truss/util/path.py CHANGED
@@ -1,10 +1,9 @@
1
1
  import os
2
2
  import random
3
+ import shutil
3
4
  import string
4
5
  import tempfile
5
6
  from contextlib import contextmanager
6
- from distutils.dir_util import remove_tree
7
- from distutils.file_util import copy_file
8
7
  from pathlib import Path
9
8
  from typing import Iterable, Iterator, List, Optional, Set, Tuple, Union
10
9
 
@@ -12,18 +11,14 @@ import pathspec
12
11
 
13
12
  # .truss_ignore is a fixed file in the Truss library that is used to specify files
14
13
  # that should be ignored when copying a directory tree such as .git directory.
15
- FIXED_TRUSS_IGNORE_PATH = Path(__file__).parent / ".truss_ignore"
14
+ TRUSS_IGNORE_FILENAME = ".truss_ignore"
15
+ FIXED_TRUSS_IGNORE_PATH = Path(__file__).parent / TRUSS_IGNORE_FILENAME
16
16
 
17
17
 
18
- def copy_tree_path(
19
- src: Path, dest: Path, ignore_patterns: List[str] = [], ignore_files: bool = True
20
- ) -> None:
18
+ def copy_tree_path(src: Path, dest: Path, ignore_patterns: List[str] = []) -> None:
21
19
  """Copy a directory tree, ignoring files specified in .truss_ignore."""
22
- if ignore_files:
23
- patterns = load_trussignore_patterns()
24
- patterns.extend(ignore_patterns)
25
- else:
26
- patterns = []
20
+ patterns = load_trussignore_patterns()
21
+ patterns.extend(ignore_patterns)
27
22
 
28
23
  if not dest.exists():
29
24
  dest.mkdir(parents=True)
@@ -38,24 +33,22 @@ def copy_tree_path(
38
33
  dest_fp.mkdir(exist_ok=True)
39
34
  else:
40
35
  dest_fp.parent.mkdir(exist_ok=True, parents=True)
41
- copy_file(str(sub_path), str(dest_fp), verbose=False)
36
+ shutil.copy2(str(sub_path), str(dest_fp))
42
37
 
43
38
 
44
39
  def copy_file_path(src: Path, dest: Path) -> Tuple[str, str]:
45
- return copy_file(str(src), str(dest), verbose=False)
40
+ return shutil.copy2(str(src), str(dest))
46
41
 
47
42
 
48
- def copy_tree_or_file(
49
- src: Path, dest: Path, ignore_files: bool = True
50
- ) -> Union[List[str], Tuple[str, str]]:
43
+ def copy_tree_or_file(src: Path, dest: Path) -> Union[List[str], Tuple[str, str]]:
51
44
  if src.is_file():
52
45
  return copy_file_path(src, dest)
53
46
 
54
- return copy_tree_path(src, dest, ignore_files=ignore_files) # type: ignore
47
+ return copy_tree_path(src, dest) # type: ignore
55
48
 
56
49
 
57
50
  def remove_tree_path(target: Path) -> None:
58
- return remove_tree(str(target), verbose=0)
51
+ return shutil.rmtree(str(target))
59
52
 
60
53
 
61
54
  def get_max_modified_time_of_dir(path: Path) -> float:
@@ -92,6 +85,14 @@ def build_truss_target_directory(stub: str) -> Path:
92
85
  return target_directory_path
93
86
 
94
87
 
88
+ def load_trussignore_patterns_from_truss_dir(truss_dir: Path) -> List[str]:
89
+ truss_ignore_file = truss_dir / TRUSS_IGNORE_FILENAME
90
+ if truss_ignore_file.exists():
91
+ return load_trussignore_patterns(truss_ignore_file)
92
+ # default to the truss-defined ignore patterns
93
+ return load_trussignore_patterns()
94
+
95
+
95
96
  def load_trussignore_patterns(
96
97
  truss_ignore_file: Path = FIXED_TRUSS_IGNORE_PATH,
97
98
  ) -> List[str]:
@@ -161,8 +162,7 @@ def get_ignored_relative_paths(
161
162
 
162
163
 
163
164
  def get_unignored_relative_paths_from_root(
164
- root: Path,
165
- ignore_patterns: Optional[List[str]] = None,
165
+ root: Path, ignore_patterns: Optional[List[str]] = None
166
166
  ) -> Set[Path]:
167
167
  """Given a root directory, returns an iterator of the relative paths that do not match ignore_patterns."""
168
168
  root_relative_paths = set(path.relative_to(root) for path in root.glob("**/*"))
@@ -0,0 +1,11 @@
1
+ from typing import Optional
2
+
3
+
4
+ def parse_requirement_string(req_str: str) -> Optional[str]:
5
+ """
6
+ Collects requirements from a list of requirement lines.
7
+ """
8
+ stripped_line = req_str.strip()
9
+ if stripped_line and not stripped_line.startswith("#"):
10
+ return stripped_line
11
+ return None
@@ -1,44 +1,46 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: truss
3
- Version: 0.10.0rc1
3
+ Version: 0.60.0
4
4
  Summary: A seamless bridge from model development to model delivery
5
- Home-page: https://github.com/basetenlabs/truss
6
5
  License: MIT
7
6
  Keywords: MLOps,AI,Model Serving,Model Deployment,Machine Learning
8
7
  Author: Pankaj Gupta
9
8
  Author-email: pankaj@baseten.co
10
- Requires-Python: >=3.8,<3.12
9
+ Requires-Python: >=3.8,<3.13
11
10
  Classifier: License :: OSI Approved :: MIT License
12
11
  Classifier: Programming Language :: Python :: 3
13
12
  Classifier: Programming Language :: Python :: 3.8
14
13
  Classifier: Programming Language :: Python :: 3.9
15
14
  Classifier: Programming Language :: Python :: 3.10
16
15
  Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Provides-Extra: all
17
18
  Requires-Dist: Jinja2 (>=3.1.2,<4.0.0)
18
- Requires-Dist: PyYAML (>=6.0,<7.0)
19
+ Requires-Dist: PyYAML (>=6.0)
20
+ Requires-Dist: aiofiles (>=24.1.0,<25.0.0)
21
+ Requires-Dist: aiohttp (>=3.10.10,<4.0.0)
19
22
  Requires-Dist: blake3 (>=0.3.3,<0.4.0)
20
- Requires-Dist: boto3 (>=1.26.157,<2.0.0)
21
- Requires-Dist: fastapi (>=0.109.1,<0.110.0)
23
+ Requires-Dist: boto3 (>=1.34.85,<2.0.0)
24
+ Requires-Dist: click (>=8.0.3,<9.0.0)
25
+ Requires-Dist: fastapi (>=0.109.1)
22
26
  Requires-Dist: google-cloud-storage (==2.10.0)
23
- Requires-Dist: httpx (>=0.24.1,<0.25.0)
24
- Requires-Dist: huggingface_hub (>=0.19.4)
27
+ Requires-Dist: httpx (>=0.24.1)
28
+ Requires-Dist: huggingface_hub (>=0.25.0)
25
29
  Requires-Dist: inquirerpy (>=0.3.4,<0.4.0)
30
+ Requires-Dist: libcst (<1.2.0)
26
31
  Requires-Dist: loguru (>=0.7.2)
27
- Requires-Dist: msgpack (>=1.0.2)
28
- Requires-Dist: msgpack-numpy (>=0.4.7.1)
29
- Requires-Dist: numpy (>=1.23.5)
30
32
  Requires-Dist: packaging (>=20.9)
31
33
  Requires-Dist: pathspec (>=0.9.0)
32
- Requires-Dist: psutil (>=5.9.4,<6.0.0)
33
- Requires-Dist: pydantic (>=2.6.1,<3.0.0)
34
+ Requires-Dist: psutil (>=5.9.4)
35
+ Requires-Dist: pydantic (>=1.10.0)
34
36
  Requires-Dist: python-json-logger (>=2.0.2)
35
37
  Requires-Dist: python-on-whales (>=0.68.0,<0.69.0)
38
+ Requires-Dist: requests (>=2.31)
36
39
  Requires-Dist: rich (>=13.4.2,<14.0.0)
37
40
  Requires-Dist: rich-click (>=1.6.1,<2.0.0)
41
+ Requires-Dist: ruff (>=0.4.8)
38
42
  Requires-Dist: single-source (>=0.3.0,<0.4.0)
39
43
  Requires-Dist: tenacity (>=8.0.1,<9.0.0)
40
- Requires-Dist: uvicorn (>=0.24.0,<0.25.0)
41
- Requires-Dist: uvloop (>=0.19.0,<0.20.0)
42
44
  Requires-Dist: watchfiles (>=0.19.0,<0.20.0)
43
45
  Project-URL: Bug Reports, https://github.com/basetenlabs/truss/issues
44
46
  Project-URL: Baseten, https://baseten.co
@@ -0,0 +1,324 @@
1
+ truss/__init__.py,sha256=17o0V7NxXe58hR3hmQgk5J54U8YJJAc9EPmq6ryrcnE,612
2
+ truss/api/__init__.py,sha256=9Xo7VY9yEs2tAnxwzShUEMs8RbpLz9QgIdiQ3VdrGa0,4565
3
+ truss/api/definitions.py,sha256=ah_kHJM0y2X74aTnYz7QF9_qCR-S_lkXV9ig-GLSeX4,1605
4
+ truss/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ truss/base/constants.py,sha256=8zI10A4MkFAHmisxHfTeim_280XzTSBWpl194G6Anxw,4180
6
+ truss/base/custom_types.py,sha256=zSOeYTUJaa6vJMXRDyD-R2qhs9q62ifycf1Au9PPnDA,668
7
+ truss/base/errors.py,sha256=zDVLEvseTChdPP0oNhBBQCtQUtZJUaof5zeWMIjqz6o,691
8
+ truss/base/trt_llm_config.py,sha256=P1zwLVX13cDm5KP0B2eiOjCmWGDxopde3c5mnxS2Gic,11891
9
+ truss/base/truss_config.py,sha256=J6T7n3zf2uyLXp_azo_TWXJ2uqx9h06x6Jz3gsTF9Ak,32660
10
+ truss/base/truss_spec.py,sha256=gYu-EBS1MUfDPGBuW9Rdf0ceP74K5816xJG79Uxr_sE,5949
11
+ truss/base/validation.py,sha256=VNpSkf_5rcs7eCbcOOhnhPh1RwjpBRIDMt4ElYy7d2Q,4604
12
+ truss/cli/cli.py,sha256=E47cpNQ1GymNpPIvJwzTId0DlY8bW-l5mnyHjxtrqhQ,45336
13
+ truss/cli/remote_cli.py,sha256=fIs8PzA4CK9bX5TBgqkHb8oddEqnrzSEEV4vmodPcYI,1814
14
+ truss/contexts/docker_build_setup.py,sha256=7c7-KvGpyJfHkPOB_6sBp11mbSQqJhR0lh9vyGwxQt0,2299
15
+ truss/contexts/image_builder/cache_warmer.py,sha256=TGMV1Mh87n2e_dSowH0sf0rZhZraDOR-LVapZL3a5r8,7377
16
+ truss/contexts/image_builder/image_builder.py,sha256=IuRgDeeoHVLzIkJvKtX3807eeqEyaroCs_KWDcIHZUg,1461
17
+ truss/contexts/image_builder/serving_image_builder.py,sha256=w9jvPsv4GxDjquVeQioZLC_ugOrDOwy3HvsELD4qQXQ,27384
18
+ truss/contexts/image_builder/util.py,sha256=mHLS4Cgvug2nlurXqoue557cQl8Ht4MZTyIqa4Jie0k,1552
19
+ truss/contexts/local_loader/docker_build_emulator.py,sha256=lBxQIa0KzgDP4BtzjyDN8Cmb_6OI2NBQspNH5mZVGG0,2089
20
+ truss/contexts/local_loader/load_model_local.py,sha256=10KyWu5SzY7pSjdH_fMT5t96zxDOv_kEJMg4BxcCZsY,1828
21
+ truss/contexts/local_loader/truss_module_loader.py,sha256=OtewX72XljkA0MPqqf9iPIqvUhG6HwP6q-IpQfm143o,5710
22
+ truss/contexts/local_loader/utils.py,sha256=mYiJ1asjViLtoejOHCl4EPlGxTohcrkZirzDpgF4mdk,858
23
+ truss/contexts/truss_context.py,sha256=uS6L-ACHxNk0BsJwESOHh1lA0OGGw0pb33aFKGsASj4,436
24
+ truss/local/local_config.py,sha256=WCHgNvyP3bCBi8D4_uggvc3JIExExCRsLXcNMrG6EeI,776
25
+ truss/local/local_config_handler.py,sha256=FJ0pTpikvfDZ081hsjoU52Xwc0_j1FbXljFROEapmM0,4529
26
+ truss/patch/__init__.py,sha256=vEFP4Y1icHOSkqyXFzzZvsBpnNkjvZ6NFztk9AUupcI,105
27
+ truss/patch/hash.py,sha256=mHy2F5L2Q9d8CY3eEW-j7pN-CMA_lT7IehWO6U60yRk,171
28
+ truss/patch/signature.py,sha256=lQZh3pw0Rs6U7YBmeaS0S3VfyyRFD4jKUvoJkcUdHnk,172
29
+ truss/patch/truss_dir_patch_applier.py,sha256=ALnaVnu96g0kF2UmGuBFTua3lrXpwAy4sGkedu-pubw,186
30
+ truss/remote/baseten/__init__.py,sha256=XNqJW1zyp143XQc6-7XVwsUA_Q_ZJv_ausn1_Ohtw9Y,176
31
+ truss/remote/baseten/api.py,sha256=F9s8PX_f0VNKybD6PplyyZy4xlC1gcCGHm2wSKnPQcI,16408
32
+ truss/remote/baseten/auth.py,sha256=tI7s6cI2EZgzpMIzrdbILHyGwiHDnmoKf_JBhJXT55E,776
33
+ truss/remote/baseten/core.py,sha256=jwbShmJdqY3smRL6pWemT9hU5Ine4HM3hC9jllsunX8,13796
34
+ truss/remote/baseten/custom_types.py,sha256=QpadCVggQoD-uuQ_NKiTY8Ed6THydeDREXAy7GHUFF0,862
35
+ truss/remote/baseten/error.py,sha256=3TNTwwPqZnr4NRd9Sl6SfLUQR2fz9l6akDPpOntTpzA,578
36
+ truss/remote/baseten/remote.py,sha256=1sDsDcpiQihdWcNtstRuquvBbNNiVOxt8oX17n8R2TE,21796
37
+ truss/remote/baseten/service.py,sha256=Y-1-0d3he59JlqqTJRqAcyGypkXsV1PA7w2pN5-lRDw,6362
38
+ truss/remote/baseten/utils/status.py,sha256=s8pz0kprvxhQNYSmqdlOaEmo0AIZ9GlV1k1ZP9dwYiU,1047
39
+ truss/remote/baseten/utils/tar.py,sha256=pMUv--YkwXDngUx1WUOK-KmAIKMcOg2E-CD5x4heh3s,2514
40
+ truss/remote/baseten/utils/transfer.py,sha256=hGxQBsZBu3-272xyDHxry9gaKdiKrRD2UIkJCr17owo,1540
41
+ truss/remote/remote_factory.py,sha256=n2116vzvGJ1OBFKkKbKwIMvcL0sVfbK-IDyAPrVpVww,4442
42
+ truss/remote/truss_remote.py,sha256=7_rQUImJM0isFto16t3PgHT9aKEJFZDn6RfDQOIGg68,7934
43
+ truss/templates/README.md.jinja,sha256=OVURgSPiQGgyFWEI2c7QPgJI7SrOw0K2uvDsmpzR9qg,2482
44
+ truss/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
+ truss/templates/base.Dockerfile.jinja,sha256=0CKXn1szHtc-zyg8AbT1n9-LjPL9HKRAv5eW-36yRng,2684
46
+ truss/templates/cache.Dockerfile.jinja,sha256=LhsVP9F3BATKQGkgya_YT4v6ABTUkpy-Jb3N36zsw10,1030
47
+ truss/templates/cache_requirements.txt,sha256=xoPoJ-OVnf1z6oq_RVM3vCr3ionByyqMLj7wGs61nUs,87
48
+ truss/templates/control/control/application.py,sha256=rsylaW5Ljddczlu0sYADgsbLZRKY3l3R9cD7iZGqyqU,3691
49
+ truss/templates/control/control/endpoints.py,sha256=6ODPi0DCs8-pblVP_sfb1PlbcylHHTRSidSZMqQ_VMk,6638
50
+ truss/templates/control/control/helpers/context_managers.py,sha256=W6dyFgLBhPa5meqrOb3w_phMtKfaJI-GhwUfpiycDc8,413
51
+ truss/templates/control/control/helpers/custom_types.py,sha256=n_lTudtLTpy4oPV3aDdJ4X2rh3KCV5btYO9UnTeUouQ,5471
52
+ truss/templates/control/control/helpers/errors.py,sha256=QVE54p_yanBKpm9o-XPGB0ybp5l9E0KBfTqoqS28nyc,955
53
+ truss/templates/control/control/helpers/inference_server_controller.py,sha256=anFm7FwkGaUnYRQo2dxXohA9__c-XAVAqfA1EL2bIIY,6324
54
+ truss/templates/control/control/helpers/inference_server_process_controller.py,sha256=2So-3FhBr7OE61ShS-dYrDiEqQ-h4JU6EbWdIxL4Yks,4227
55
+ truss/templates/control/control/helpers/inference_server_starter.py,sha256=Fz2Puijro6Cc5cvTsAqOveNJbBQR_ARYJXl4lvETJ8Y,2633
56
+ truss/templates/control/control/helpers/truss_patch/__init__.py,sha256=CXZdUV_ylqLTJrKuFpvSnUT6PUFrZrMF2y6jiHbdaKU,998
57
+ truss/templates/control/control/helpers/truss_patch/model_code_patch_applier.py,sha256=dyS5KN1PKAGFgCRrgWwHP52Hbopm2ZjULB6_kar1Aog,1890
58
+ truss/templates/control/control/helpers/truss_patch/model_container_patch_applier.py,sha256=MFOEElcRkFSiFD_Hy9sRS5677hPDwEbzYHYEB63_F5c,7311
59
+ truss/templates/control/control/helpers/truss_patch/requirement_name_identifier.py,sha256=CL3KEAj4B3ApMQShd7TI5umXVbazLZY5StrNlwHwWtc,1995
60
+ truss/templates/control/control/helpers/truss_patch/system_packages.py,sha256=IYh1CVU_kooAvtSGXKQDDWnNdOhlv7ENWagsL1wvhgw,208
61
+ truss/templates/control/control/server.py,sha256=EY_wiTIJ2b5j-4FqJfQwCBjOViAeQl7VlJoWDirUOCY,2342
62
+ truss/templates/control/requirements.txt,sha256=EDJzD6WYHQMpvflKyX7QJ8khhPkpshJrCODs-WvEVv0,195
63
+ truss/templates/copy_cache_files.Dockerfile.jinja,sha256=arHldnuclt7vUFHyRz6vus5NGMDkIofm-1RU37A0xZM,98
64
+ truss/templates/custom/examples.yaml,sha256=2UcCtEdavImWmiCtj31ckBlAKVOwNMC5AwMIIznKDag,48
65
+ truss/templates/custom/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ truss/templates/custom/model/model.py,sha256=J04rLxK09Pwt2F4GoKOLKL-H-CqZUdYIM-PL2CE9PoE,1079
67
+ truss/templates/custom_python_dx/my_model.py,sha256=NG75mQ6wxzB1BYUemDFZvRLBET-UrzuUK4FuHjqI29U,910
68
+ truss/templates/docker_server/proxy.conf.jinja,sha256=hklBCDCOEoo7zO9yCVJcuPiZhK0PABxCvVwlmbt00l8,1200
69
+ truss/templates/docker_server/supervisord.conf.jinja,sha256=CoaSLv0Lr8t1tS_q102IFufNX2lWrlbCHJLjMhYjOwM,1711
70
+ truss/templates/docker_server_requirements.txt,sha256=PyhOPKAmKW1N2vLvTfLMwsEtuGpoRrbWuNo7tT6v2Mc,18
71
+ truss/templates/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
+ truss/templates/server/common/__init__.py,sha256=qHIqr68L5Tn4mV6S-PbORpcuJ4jmtBR8aCuRTIWDvNo,85
73
+ truss/templates/server/common/errors.py,sha256=-hf-IXFXj1f3Z-MNGw15vWPz6dJkA8M1WHvsWpphHiM,7958
74
+ truss/templates/server/common/patches/whisper/patch.py,sha256=kDECQ-wmEpeAZFhUTQP457ofueeMsm7DgNy9tqinhJQ,2383
75
+ truss/templates/server/common/patches.py,sha256=uEOzvDnXsHOkTSa8zygGYuR4GHhrFNVHNQc5peJcwvo,1393
76
+ truss/templates/server/common/retry.py,sha256=dtz6yvwLoY0i55FnxECz57zEOKjAhGMYvvM-k9jiR9c,624
77
+ truss/templates/server/common/schema.py,sha256=DkJgCHeev9dMAzUMs_mBsDKpW8koa_VTPrWuK1yOPbs,5847
78
+ truss/templates/server/common/tracing.py,sha256=pRciBGohjA29R9N7sI_IOuZEd--mCe2czPuy_WyZsLM,5987
79
+ truss/templates/server/main.py,sha256=kWXrdD8z8IpamyWxc8qcvd5ck9gM1Kz2QH5qHJCnmOQ,222
80
+ truss/templates/server/model_wrapper.py,sha256=WxQ5GJoHwvWDVGTBU8FEHu0A9snaQAj6DgCCkRLYHX4,39132
81
+ truss/templates/server/requirements.txt,sha256=9FQzYinZdSNm1Npla0acJsOtxa7MjDa89AbvCLgWxUs,464
82
+ truss/templates/server/truss_server.py,sha256=Bu93IvwaK8zLQCZDM0rHNsTSbN70A5Y-ckM7woruCqI,17266
83
+ truss/templates/server.Dockerfile.jinja,sha256=iWEN-2Vz0Ld_lzdAp5SzxWvD6dMOLZqnzy1HNaAXENY,4701
84
+ truss/templates/shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
+ truss/templates/shared/dynamic_config_resolver.py,sha256=75s42NFhQI5jL7BqlJH_UkuQS7ptbtFh13f2nh6X5Wo,920
86
+ truss/templates/shared/lazy_data_resolver.py,sha256=OTjPa8n4SL3vahWtRAICeeLiP4CdXZDLGBkm-AHG8oE,5664
87
+ truss/templates/shared/log_config.py,sha256=mSa6G8MRFbL8BTZeLWip_s9tUnhc0e9haqskBwIOTeU,4526
88
+ truss/templates/shared/secrets_resolver.py,sha256=3prDe3Q06NTmUEe7KCW-W4TD1CzGck9lpDG789209z4,2110
89
+ truss/templates/shared/serialization.py,sha256=_WC_2PPkRi-MdTwxwjG8LKQptnHi4sANfpOlKWevqWc,3736
90
+ truss/templates/shared/util.py,sha256=dPgFF4iL_YkeC6Kf8tZUHJH60rbpskHwVPh0ONLGaQM,2222
91
+ truss/templates/trtllm-audio/model/model.py,sha256=o38QqW57b1lf8O_td1lW_AojZZ8R_qAZCgzOWtoIse8,1619
92
+ truss/templates/trtllm-audio/packages/sigint_patch.py,sha256=t6pYpVwgQsLCgcxQq7-V3scr9ZOiIxtYSpy9LCfdNTk,414
93
+ truss/templates/trtllm-audio/packages/whisper_trt/__init__.py,sha256=5ZQfVlwtkWrnjYiuBIVSviYDhV-kksygDkHEWBS_ijM,7065
94
+ truss/templates/trtllm-audio/packages/whisper_trt/assets.py,sha256=sic8spUc3NJIbkR-w0OVkntXe-oXESO7u2b63NNqaiU,732
95
+ truss/templates/trtllm-audio/packages/whisper_trt/batching.py,sha256=woP1he_5ipX7UHzGaA8vudXpqswIj2RGoQKjrwAG25Y,2025
96
+ truss/templates/trtllm-audio/packages/whisper_trt/custom_types.py,sha256=cIUxhFICty0xAcYWNT_n3SGJ1w1cOMk18cRIGUfCyUA,500
97
+ truss/templates/trtllm-audio/packages/whisper_trt/modeling.py,sha256=HhYb4nW8kDcu0dLlshEYNJ0BEizVrTW62CV4cb15Hok,6765
98
+ truss/templates/trtllm-audio/packages/whisper_trt/tokenizer.py,sha256=HBMlI9qi4of8zS1QgsOMZ0x2WmdPwkZYj8Ah5JlmTwE,4962
99
+ truss/templates/trtllm-audio/packages/whisper_trt/utils.py,sha256=pi-c486yPe85TepD9iAsQmDUtadPgoaIdHTE82qM7Nk,8178
100
+ truss/templates/trtllm-briton/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
+ truss/templates/trtllm-briton/src/extension.py,sha256=iEUTb3xIXFgeILOQwGeiEThqSjJ8_wxEDoQaJlN5S84,2149
102
+ truss/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
+ truss/tests/conftest.py,sha256=0Ayv33mSg2ovRyX7gwQfmK9FVgSTZXkBXArTn-ygrrQ,24709
104
+ truss/tests/contexts/image_builder/test_serving_image_builder.py,sha256=gO-UxY4SPZGKo2hQrLUFMJ_Lcwiro-kOccJgGTQv_Ns,12152
105
+ truss/tests/contexts/local_loader/test_load_local.py,sha256=D1qMH2IpYA2j5009v50QMgUnKdeOsX15ndkwXe10a4E,801
106
+ truss/tests/contexts/local_loader/test_truss_module_finder.py,sha256=oN1K2lg3ATHY5yOVUTfQIaSqusTF9I2wFaYaTSo5-O4,5342
107
+ truss/tests/helpers.py,sha256=DKnUGzmt-k4IN_wSnlAXbVYCiEt58xFzFmmuCDSQ0dg,555
108
+ truss/tests/local/test_local_config_handler.py,sha256=aLvcOyfppskA2MziVLy_kMcagjxMpO4mjar9zxUN6g0,2245
109
+ truss/tests/patch/test_calc_patch.py,sha256=edJ-NN4NsS8znBlQOdlcAeeMyEM_GqvFYIeSNsfE4IE,31907
110
+ truss/tests/patch/test_dir_signature.py,sha256=HnG9Cyqt86YagYkY-jurSf36yYP2oM7PQvfb_d5T2mY,1033
111
+ truss/tests/patch/test_hash.py,sha256=El-s56g2FhoBWEgIdkTliPlTXsN92lh5B87IuUEAVBw,5996
112
+ truss/tests/patch/test_signature.py,sha256=vdAy5dbIqTEWLZVpO6szTGdNTRZgE8PtABGuhPP0Y6s,728
113
+ truss/tests/patch/test_truss_dir_patch_applier.py,sha256=LGZ18X2uszOvV8xFDsyuCIoD8EuUvzitJzvBfRJ1cVQ,3022
114
+ truss/tests/patch/test_types.py,sha256=OUVDiLckbjjjEN49I4hm62emOTAr8lv_QooJrmXxs5o,306
115
+ truss/tests/remote/baseten/test_api.py,sha256=2zYHNwnbydsdMTuMFoRsjxnPLejqrJf3XKh4G1fVGag,10710
116
+ truss/tests/remote/baseten/test_auth.py,sha256=C8rPJitTlADN_07gkObiDuzGtupOzbpAjtM8rCc4L8g,668
117
+ truss/tests/remote/baseten/test_core.py,sha256=qWOi-hztn8Zy-GzAKeNSYJqVk_LKui_fMGO-haEgBGE,7783
118
+ truss/tests/remote/baseten/test_remote.py,sha256=_EN3dBIhwf7wcXEj648F-IdS2iUJT0pmeYpOI8FGmOs,22629
119
+ truss/tests/remote/baseten/test_service.py,sha256=pZ7u1mMP11tuviwM8Jf4Bvd-wjizzwd62efhgppOG6A,1865
120
+ truss/tests/remote/test_remote_factory.py,sha256=gRDUEA_jveva1CIlM-vHvFHyqdodQ2rDew5_-M7s9oA,4623
121
+ truss/tests/remote/test_truss_remote.py,sha256=x4-IZSRp4O7L3bkVTasmp8L2T2vXQn9uiW4H2LQB7sQ,2725
122
+ truss/tests/templates/control/control/helpers/test_context_managers.py,sha256=3LoonRaKu_UvhaWs1eNmEQCZq-iJ3aIjI0Mn4amC8Bw,283
123
+ truss/tests/templates/control/control/helpers/test_model_container_patch_applier.py,sha256=uZyswvtLrkEUfvjQXwUYmY8NtYFYTdYf_9ICaJDBWF8,5729
124
+ truss/tests/templates/control/control/helpers/test_requirement_name_identifier.py,sha256=F9aWLh23knXIJMK3erX7T8U1_KwgtAlbK1S2Pe3lqSU,2979
125
+ truss/tests/templates/control/control/test_server.py,sha256=8MA4u8gdRC6LHKs4ezL7M6glEUJqTt_Kwd_qkT8sK0g,8869
126
+ truss/tests/templates/control/control/test_server_integration.py,sha256=sHAWfOoYs9qUhGVTPy7IlYCN0zeyXe2-5wqX17we1bM,8575
127
+ truss/tests/templates/core/server/test_dynamic_config_resolver.py,sha256=R0KuyFMHBsAweK5oRlZsISIzjmgSdDk0q43kot25YuM,3233
128
+ truss/tests/templates/core/server/test_lazy_data_resolver.py,sha256=LrZKUbXyFd95qI6p9ORgi5SP3lcot1EUVIFDKczSEbk,11117
129
+ truss/tests/templates/core/server/test_lazy_data_resolver_v2.py,sha256=TpEi0fh_yxUGYUlblien_rYruSv0-UoLn995pHnu9I0,2846
130
+ truss/tests/templates/core/server/test_secrets_resolver.py,sha256=Titn8yqv7EhIV4Zz0wMeclDe4GXXk4qfS-tqTLE-8bY,1539
131
+ truss/tests/templates/server/common/test_retry.py,sha256=O-bdNdYPedazQ0vtKjfu2zRIH_IiQL05T6Y58r9ehMI,2038
132
+ truss/tests/templates/server/test_model_wrapper.py,sha256=GIiAC1I7425HfZ9_ygTfWue_NZK2AWyFGS1S0MtYfho,9572
133
+ truss/tests/templates/server/test_schema.py,sha256=kWAe1Pb2obkXS7bxQF3qrbG3yOXj1YoXo2DI5TefiV8,7915
134
+ truss/tests/templates/server/test_truss_server.py,sha256=AYDF6NjJNarT7h5Ok7M3URV8jVxoDl1LNJZYkeBTgrk,1522
135
+ truss/tests/test_build.py,sha256=Wq4sM9tmZFVTCN3YljvOcn04Kkj-L-41Tlw0DKQ8Z7c,709
136
+ truss/tests/test_config.py,sha256=iZPPT6aJGaRWzD8BtnSTVRY2szDYVwh9NmeEsW9QEyI,18926
137
+ truss/tests/test_context_builder_image.py,sha256=fVZNJSzZNiWa7Dr1X_VhhMJtyJ5HzsLaPglOr6NV2CA,1105
138
+ truss/tests/test_control_truss_patching.py,sha256=Cj3XgnHV2lHx4M0-w7VDG0NxHZMeLApWrIcprfOzfQU,15019
139
+ truss/tests/test_custom_server.py,sha256=Pv27z_Uzfqu_2na06OtLQc_WkObEr6tSJP16pF8GAhs,1404
140
+ truss/tests/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
+ truss/tests/test_data/annotated_types_truss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
+ truss/tests/test_data/annotated_types_truss/config.yaml,sha256=B-ZyyjLLqtxGfXj2tkH68Hy7NOMB_coYvoWyWom61g0,147
143
+ truss/tests/test_data/annotated_types_truss/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
+ truss/tests/test_data/annotated_types_truss/model/model.py,sha256=uYaHgz2eRRm1bvGmDbKE-b0jwbn1KMOl8DL87XspvI0,274
145
+ truss/tests/test_data/auto-mpg.data,sha256=SLgw4R_u5VclJfjxaR3bnTjT17cGPtzY_KZywqXhfY0,30286
146
+ truss/tests/test_data/context_builder_image_test/Dockerfile,sha256=nEnjj3nNrOmwVivtRP_nxip5TZAVGlObJ9j0II5bX3o,93
147
+ truss/tests/test_data/context_builder_image_test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
+ truss/tests/test_data/context_builder_image_test/test.py,sha256=oHdd9RlV_w8J-ngPLc2heB49rZFQi4sQxVQSByTNKc4,57
149
+ truss/tests/test_data/gcs_fix/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
150
+ truss/tests/test_data/gcs_fix/config.yaml,sha256=DrIQnzkUKuG7baialNoaYl1Ed7RMBJeAuuR5SM8YQtE,234
151
+ truss/tests/test_data/gcs_fix/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
+ truss/tests/test_data/gcs_fix/model/model.py,sha256=J04rLxK09Pwt2F4GoKOLKL-H-CqZUdYIM-PL2CE9PoE,1079
153
+ truss/tests/test_data/happy.ipynb,sha256=op-_aomwfsg3Yj1aQr2Yfll5qo1plcZ1SGVtneWHOgo,1334
154
+ truss/tests/test_data/model_load_failure_test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
155
+ truss/tests/test_data/model_load_failure_test/config.yaml,sha256=8wY_TycL5L7szvKtwvboQtDdNwH7QwaEVkWtYrBkfZw,51
156
+ truss/tests/test_data/model_load_failure_test/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
+ truss/tests/test_data/model_load_failure_test/model/model.py,sha256=P9zI0n7ensYvUy0F_7LR5BpAlNM-P2UCtDT73uOJfNg,552
158
+ truss/tests/test_data/patch_ping_test_server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
+ truss/tests/test_data/patch_ping_test_server/app.py,sha256=9oHDR294ke_waepeJpqsMfmJgD-zsb6o525SFg3KkH8,1214
160
+ truss/tests/test_data/pima-indians-diabetes.csv,sha256=BvW3ws17ymhv2k-S6rX2Hn_2QmqazvouPdoE_FQpPPU,23279
161
+ truss/tests/test_data/readme_int_example.md,sha256=fuHvpLtdkJy1f4NAR_djotVBdzusHYNXc-Fwh588XAE,1586
162
+ truss/tests/test_data/readme_no_example.md,sha256=T2CzFMRvICXeX3_5XbFoqhHchcHGot-xM7izx34B3aQ,1607
163
+ truss/tests/test_data/readme_str_example.md,sha256=fP4pvMqgLdIapaOf_BgRiV0H7pw4so0RNxrlq5lbROE,1726
164
+ truss/tests/test_data/server.Dockerfile,sha256=y2ID4FGWd967kdOKwsj6AyZ1warOYM8cj2Z_Y44UvUg,1697
165
+ truss/tests/test_data/server_conformance_test_truss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
166
+ truss/tests/test_data/server_conformance_test_truss/config.yaml,sha256=QM9fG4QPKy_8ICSPhtMXM22ls82q9yrZX9_0E52E7O0,57
167
+ truss/tests/test_data/server_conformance_test_truss/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
+ truss/tests/test_data/server_conformance_test_truss/model/model.py,sha256=lz76QJtUF30K7IA6MirGyc57OjIWkaNBL7sQvEUJ_lU,482
169
+ truss/tests/test_data/test_async_truss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
+ truss/tests/test_data/test_async_truss/config.yaml,sha256=SQ0Sbm7yokcSSXd6_e3qn01PVnSxNTbVJJplgIN8ooc,44
171
+ truss/tests/test_data/test_async_truss/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
+ truss/tests/test_data/test_async_truss/model/model.py,sha256=xt8QfdHx0l8UTZAUmtPFYFqcnamGRAAoaFOkVOYqB-M,646
173
+ truss/tests/test_data/test_basic_truss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
+ truss/tests/test_data/test_basic_truss/config.yaml,sha256=nxClR4NETsEITKuNT0hX_5ni7DcKCFg43MvIPjqtt80,312
175
+ truss/tests/test_data/test_basic_truss/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
+ truss/tests/test_data/test_basic_truss/model/model.py,sha256=J04rLxK09Pwt2F4GoKOLKL-H-CqZUdYIM-PL2CE9PoE,1079
177
+ truss/tests/test_data/test_build_commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
+ truss/tests/test_data/test_build_commands/config.yaml,sha256=LzLlGnFzO-OmlfOVdBTelNQmy8p7oukf71qN_5l0pfo,246
179
+ truss/tests/test_data/test_build_commands/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
180
+ truss/tests/test_data/test_build_commands/model/model.py,sha256=ELYdtI0UT0T45c1yfnSsc4LvQHQn66e50UMj9RYEm1g,502
181
+ truss/tests/test_data/test_build_commands_failure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
+ truss/tests/test_data/test_build_commands_failure/config.yaml,sha256=xosGlR8QZNo-eE1kOj6_4wVrkBD1Y928NGcFeK8Lo2g,259
183
+ truss/tests/test_data/test_build_commands_failure/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
+ truss/tests/test_data/test_build_commands_failure/model/model.py,sha256=ELYdtI0UT0T45c1yfnSsc4LvQHQn66e50UMj9RYEm1g,502
185
+ truss/tests/test_data/test_concurrency_truss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
+ truss/tests/test_data/test_concurrency_truss/config.yaml,sha256=8a1tsXlHn8IVbu_X3anP93YfkkaFxJ6wwWVI2t-q3UA,111
187
+ truss/tests/test_data/test_concurrency_truss/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
188
+ truss/tests/test_data/test_concurrency_truss/model/model.py,sha256=RZZnOykhezeZeIRVAvn9T7tVlDWdBgKsXR461ExswQg,547
189
+ truss/tests/test_data/test_custom_server_truss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
+ truss/tests/test_data/test_custom_server_truss/config.yaml,sha256=Ilm6H8pNxTUTLR_373DUeBIyzknhjz103nsE4srpSvM,410
191
+ truss/tests/test_data/test_custom_server_truss/test_docker_image/Dockerfile,sha256=82RwyAS7wtGa98IfFOdE8heRxRLt1abmihadBE35Cjc,371
192
+ truss/tests/test_data/test_custom_server_truss/test_docker_image/README.md,sha256=K-WBnGEhPvJqIs9kVmu4Ugq4ALvUFi8JuX88vagif8c,500
193
+ truss/tests/test_data/test_custom_server_truss/test_docker_image/VERSION,sha256=gERzFlKfxiAU-6oEf7Z8Uaww4ygwzaNwQFNJ2NZtGWw,6
194
+ truss/tests/test_data/test_custom_server_truss/test_docker_image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
195
+ truss/tests/test_data/test_custom_server_truss/test_docker_image/app.py,sha256=9KXdwDHzVvTnsEkKKOJnM41cWpN4Iozv4nbNqKIL5mo,364
196
+ truss/tests/test_data/test_custom_server_truss/test_docker_image/build_upload_new_image.sh,sha256=3rmSfusTL_g346ha7WgDig8iaQIVdIR1rjrlHh_7l2o,435
197
+ truss/tests/test_data/test_openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
198
+ truss/tests/test_data/test_openai/config.yaml,sha256=ByY_Smgx0lw24Yj0hqgofEmL3nrGNj7gZE5iBKlvwxk,235
199
+ truss/tests/test_data/test_openai/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
+ truss/tests/test_data/test_openai/model/model.py,sha256=GEtIJnWlU1snBid2sS-bZHrjQpP8UzL8tanzyH_tdgE,319
201
+ truss/tests/test_data/test_pyantic_v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
202
+ truss/tests/test_data/test_pyantic_v1/config.yaml,sha256=fqWpH3E4UPEnjvAw6Q9_F5oZZLy69RAfycbgtmCFsXo,270
203
+ truss/tests/test_data/test_pyantic_v1/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
204
+ truss/tests/test_data/test_pyantic_v1/model/model.py,sha256=XbLvUEaKifLGsyG_R5jncRLlnNKi_52Qp1Qk51F4SWo,850
205
+ truss/tests/test_data/test_pyantic_v1/requirements.txt,sha256=OpG4JAdJME9VWjoNftdHYg-y94k2gbhqdM1_NwOgcT8,13
206
+ truss/tests/test_data/test_pyantic_v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
207
+ truss/tests/test_data/test_pyantic_v2/config.yaml,sha256=fqWpH3E4UPEnjvAw6Q9_F5oZZLy69RAfycbgtmCFsXo,270
208
+ truss/tests/test_data/test_pyantic_v2/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
209
+ truss/tests/test_data/test_pyantic_v2/model/model.py,sha256=HmdgxMPvb8FJxPMmNr8flpcte5DFwatZALNUDGHs1UY,903
210
+ truss/tests/test_data/test_pyantic_v2/requirements.txt,sha256=4tprL4GeI3poyLyDZ7-jYemjJwtYb2O2JGJQHlaVrkU,14
211
+ truss/tests/test_data/test_requirements_file_truss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
+ truss/tests/test_data/test_requirements_file_truss/config.yaml,sha256=fqWpH3E4UPEnjvAw6Q9_F5oZZLy69RAfycbgtmCFsXo,270
213
+ truss/tests/test_data/test_requirements_file_truss/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
214
+ truss/tests/test_data/test_requirements_file_truss/model/model.py,sha256=NHHFCnbGppO_EelKCAuEAEuUQ_yYD6MRZwRmvyCKDD4,1107
215
+ truss/tests/test_data/test_requirements_file_truss/requirements.txt,sha256=DsI3R7RysM8hloBUC9ynRCH8YZu15WEiDN-9W5UU9JU,13
216
+ truss/tests/test_data/test_streaming_async_generator_truss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
+ truss/tests/test_data/test_streaming_async_generator_truss/config.yaml,sha256=i2iQIexbvr0S8BV-OasurkSNRjMv2aEJAU43IpxPozs,141
218
+ truss/tests/test_data/test_streaming_async_generator_truss/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
219
+ truss/tests/test_data/test_streaming_async_generator_truss/model/model.py,sha256=wLl0mzD5PKjuriojBMvTz2FjeWqjJGoYQ5Dmvi4z9Z8,168
220
+ truss/tests/test_data/test_streaming_read_timeout/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
221
+ truss/tests/test_data/test_streaming_read_timeout/config.yaml,sha256=JPjgYm7W-pT71xze9eREYtiAZ27bRR82RF-nYV02VIc,206
222
+ truss/tests/test_data/test_streaming_read_timeout/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
223
+ truss/tests/test_data/test_streaming_read_timeout/model/model.py,sha256=-0TTVhs-E6c-XQOMOQO2rNDEYec9SLUoMCTKhhitxhM,636
224
+ truss/tests/test_data/test_streaming_truss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
225
+ truss/tests/test_data/test_streaming_truss/config.yaml,sha256=5S2x1Nfk1TsKEyx5edX3jTZjQL-PIinjiu4Dv2dDU7Y,125
226
+ truss/tests/test_data/test_streaming_truss/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
+ truss/tests/test_data/test_streaming_truss/model/model.py,sha256=YfSzzJvTiCHK3bpDvJpC6wIALDHyIY-DhnoUIKyE4x4,606
228
+ truss/tests/test_data/test_streaming_truss_with_error/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
229
+ truss/tests/test_data/test_streaming_truss_with_error/config.yaml,sha256=_WYxhe_ugCJlIQU3uH9G6dmurSn8lJTACrVFKjj8UmU,59
230
+ truss/tests/test_data/test_streaming_truss_with_error/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
231
+ truss/tests/test_data/test_streaming_truss_with_error/model/model.py,sha256=2fNEDIhlSumPWiU2sc0E9KqDpx6BHW7Mt_6Kl0YGcIY,402
232
+ truss/tests/test_data/test_streaming_truss_with_error/packages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
233
+ truss/tests/test_data/test_streaming_truss_with_error/packages/helpers_1.py,sha256=qIm-hQYVBlLZvP0acoUJ5YB15Tib0A_0JdmcK2NL-rc,59
234
+ truss/tests/test_data/test_streaming_truss_with_error/packages/helpers_2.py,sha256=q_UpVfXq_K2tuHv6YwsIzVHC3sy5k5hKDw6lMCdS0oc,53
235
+ truss/tests/test_data/test_streaming_truss_with_tracing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
236
+ truss/tests/test_data/test_streaming_truss_with_tracing/config.yaml,sha256=F8-Myb1mzyg2vaVA4Nt-RqmuS7Qlo_YALC52z63G5Bg,910
237
+ truss/tests/test_data/test_streaming_truss_with_tracing/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
238
+ truss/tests/test_data/test_streaming_truss_with_tracing/model/model.py,sha256=Ob8vX5S0OA351624c8Rc3xlyuBef3yz2ssg1UWF6i54,2082
239
+ truss/tests/test_data/test_trt_llm_truss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
240
+ truss/tests/test_data/test_trt_llm_truss/config.yaml,sha256=gdc2jib41ZDHnMFS5m7JGFlVPoHwgDiD-r9oM9uDhao,338
241
+ truss/tests/test_data/test_trt_llm_truss/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
242
+ truss/tests/test_data/test_trt_llm_truss/model/model.py,sha256=PUnwd2CnK49WzSrUouuv99kUNRHQM0joLFqzvDxcXOo,444
243
+ truss/tests/test_data/test_truss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
244
+ truss/tests/test_data/test_truss/config.yaml,sha256=7nEKRsEwadl3JTN1SB6oxYWTWA1yTaM1CC1LEA06PgA,115
245
+ truss/tests/test_data/test_truss/examples.yaml,sha256=2UcCtEdavImWmiCtj31ckBlAKVOwNMC5AwMIIznKDag,48
246
+ truss/tests/test_data/test_truss/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
247
+ truss/tests/test_data/test_truss/model/dummy,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
248
+ truss/tests/test_data/test_truss/model/model.py,sha256=ey1i66JmGGWTIEVMtiIxPrB4xSqjntBGiaHvbeqDt3w,534
249
+ truss/tests/test_data/test_truss/packages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
250
+ truss/tests/test_data/test_truss/packages/test_package/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
251
+ truss/tests/test_data/test_truss/packages/test_package/test.py,sha256=Crrh4K5yghbuRJk8Wjp1X4scOH2Uf8TE9yyrDkqEIUs,6
252
+ truss/tests/test_data/test_truss_server_caching_truss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
253
+ truss/tests/test_data/test_truss_server_caching_truss/config.yaml,sha256=_XNyYiZenx5jjXRBx170Pu93PVXqIhSF7Rn-Lv5Rqp0,352
254
+ truss/tests/test_data/test_truss_server_caching_truss/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
255
+ truss/tests/test_data/test_truss_server_caching_truss/model/model.py,sha256=PzIUuHohTxl7rqFpKNF6Gx2t9cfYhc_T6_a8FEPygyo,448
256
+ truss/tests/test_data/test_truss_with_error/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
257
+ truss/tests/test_data/test_truss_with_error/config.yaml,sha256=7nEKRsEwadl3JTN1SB6oxYWTWA1yTaM1CC1LEA06PgA,115
258
+ truss/tests/test_data/test_truss_with_error/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
259
+ truss/tests/test_data/test_truss_with_error/model/model.py,sha256=NwCt0Zue9bEVp_OUqcA7VBAhnSjU56wVYCSiJJAt94E,138
260
+ truss/tests/test_data/test_truss_with_error/packages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
261
+ truss/tests/test_data/test_truss_with_error/packages/helpers_1.py,sha256=qIm-hQYVBlLZvP0acoUJ5YB15Tib0A_0JdmcK2NL-rc,59
262
+ truss/tests/test_data/test_truss_with_error/packages/helpers_2.py,sha256=q_UpVfXq_K2tuHv6YwsIzVHC3sy5k5hKDw6lMCdS0oc,53
263
+ truss/tests/test_docker.py,sha256=3RI6jEC9CVQsKj83s_gOBl3EkdOaov-KEX4IihfMJW4,523
264
+ truss/tests/test_model_inference.py,sha256=KC3cxiYFkofJneKJVET53vivnKunB3uXrmxztr_2Z9U,67762
265
+ truss/tests/test_model_schema.py,sha256=KJB0Lubyv47h_bBp53ebmL9fo_wyXAjb2ryo9wj614s,14603
266
+ truss/tests/test_testing_utilities_for_other_tests.py,sha256=YqIKflnd_BUMYaDBSkX76RWiWGWM_UlC2IoT4NngMqE,3048
267
+ truss/tests/test_truss_gatherer.py,sha256=bn288OEkC49YY0mhly4cAl410ktZPfElNdWwZy82WfA,1261
268
+ truss/tests/test_truss_handle.py,sha256=h5F77k3Lm_wxepPP6hILec8fl_AFDaZB7QaZdfTBEVk,29229
269
+ truss/tests/test_util.py,sha256=BkgFJM2l09k1pBb-JosgQDF8rz1bAC9G02gqXVlXEuY,1364
270
+ truss/tests/test_validation.py,sha256=VPePK1uzpRy6aPMFJv3qIzL8pIooqwwIbam-2O9fy_Q,2038
271
+ truss/tests/trt_llm/test_trt_llm_config.py,sha256=MhCxdW3rDg-H94FirrsmviTiWpZAUAfADFym9YMWcSg,1579
272
+ truss/tests/trt_llm/test_validation.py,sha256=s0QTOcCfqwF1XcgSRUClIOG9VMAwwXswvB00vKT0W4I,2119
273
+ truss/tests/util/test_config_checks.py,sha256=KVnzjXJhojkKJmCsS_Ba9d8WUvY0rxyxCjGQlSDpxwg,1299
274
+ truss/tests/util/test_env_vars.py,sha256=hthgB1mU0bJb1H4Jugc-0khArlLZ3x6tLE82cDaa-J0,390
275
+ truss/tests/util/test_path.py,sha256=YfW3-IM_7iRsdR1Cb26KB1BkDsG_53_BUGBzoxY2Nog,7408
276
+ truss/trt_llm/config_checks.py,sha256=_4g7b5teTCe7QGR3Pmp9r4vC4YOXfP565Uq6EeB7MuM,1538
277
+ truss/trt_llm/validation.py,sha256=cse-EnmuHmRpwBuSc3IvmSnl-StSQCIFM1nssgnaRUQ,1848
278
+ truss/truss_handle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
279
+ truss/truss_handle/build.py,sha256=BKFV-S57tnWcfRffvQ7SPp78BrjmRy3GhgF6ThaIrDM,3804
280
+ truss/truss_handle/decorators.py,sha256=PUR5w2rl_cvcsVtAUpcYLzNXuOml9R0-wtpXy-9hDPk,407
281
+ truss/truss_handle/patch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
282
+ truss/truss_handle/patch/calc_patch.py,sha256=jniiao7fTacpuwxUYOYacn8xaHIiNkdotg861MNuFR0,18266
283
+ truss/truss_handle/patch/constants.py,sha256=pCEi5Pwi8Rnqthrr3VEsWL9EP1P1VV1T8DEYuitHLmc,139
284
+ truss/truss_handle/patch/custom_types.py,sha256=QklzhgLD_PpvNvNYQCvujAd16eYEaDGfLA1scxk6zsA,3481
285
+ truss/truss_handle/patch/dir_signature.py,sha256=UCdZCzXkI-l-ae0I0pdmB2bavB9qzhhOKYXyLnDFQZY,921
286
+ truss/truss_handle/patch/hash.py,sha256=0LCV091DJKzkuulQQqgzqPPa2zyeHoa5faXddSKLuqM,2106
287
+ truss/truss_handle/patch/local_truss_patch_applier.py,sha256=fOHWKt3teYnbqeRsF63FjDRu0iCxMfN5RHWtiDxXHIc,2942
288
+ truss/truss_handle/patch/signature.py,sha256=8eas8gy6Japd1hrgdmtHmKTTxQmWsbmgKRQQGL2PVuA,858
289
+ truss/truss_handle/patch/truss_dir_patch_applier.py,sha256=uhhHvKYHn_dpfz0xp4jwO9_qAej5sO3f8of_h-21PP4,3666
290
+ truss/truss_handle/readme_generator.py,sha256=B4XbGwUjzMNOr71DWNAL8kCu5_ZHq7YOM8yVGaOZMSE,716
291
+ truss/truss_handle/truss_gatherer.py,sha256=Xysl_UnCVhehPfZeHa8p7WFp94ENqh-VVpbuqnCui3A,2870
292
+ truss/truss_handle/truss_handle.py,sha256=rc5DkOr3cJEkQwWc8BQxSLG4JLfQ5rcYk2Zvyz-Z728,41262
293
+ truss/util/.truss_ignore,sha256=jpQA9ou-r_JEIcEHsUqGLHhir_m3d4IPGNyzKXtS-2g,3131
294
+ truss/util/docker.py,sha256=3rnABbNzNfKbo416NgTjWj5m7SajH_PTy0Few9OJ8Qc,3715
295
+ truss/util/download.py,sha256=xb9f3o36-0vbjkhfIk-hU6XLZLR5eytLsIeOKbIQFcw,2520
296
+ truss/util/env_vars.py,sha256=7Bv686eER71Barrs6fNamk_TrTJGmu9yV2TxaVmupn0,1232
297
+ truss/util/gpu.py,sha256=YiEF_JZyzur0MDMJOebMuJBQxrHD9ApGI0aPpWdb5BU,553
298
+ truss/util/jinja.py,sha256=7KbuYNq55I3DGtImAiCvBwR0K9-z1Jo6gMhmsy4lNZE,333
299
+ truss/util/log_utils.py,sha256=LwSgRh2K7KFjKKqBxr-IirFxGIzHi1mUM7YEvujvHsE,1985
300
+ truss/util/notebook.py,sha256=2O936QwA1mnSNoPQt24Y-tIavPg_mQLyaD8cQgetgmI,510
301
+ truss/util/path.py,sha256=ctZbOaJAXmrIA6LcolB1RhpcZEaifXS49eAcCRxNAjc,6441
302
+ truss/util/requirements.py,sha256=EADnnabX0Ir2ufeRG3U8c_aIjqmWvKAvRTfRvnSAwwc,308
303
+ truss_chains/__init__.py,sha256=wJsbxa6THHRqvaJOu0iN89UEtQikbotlUWhKHQL7wJQ,1746
304
+ truss_chains/definitions.py,sha256=SrkgAJs0qx8N3AR_CMDim202LIpodkkaCFcR5Jd6fFk,25852
305
+ truss_chains/deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
306
+ truss_chains/deployment/code_gen.py,sha256=yQe2VlYoYfvtEV2Yj28EaigmSCZXVDfCzXAoPaL3P_c,30254
307
+ truss_chains/deployment/deployment_client.py,sha256=r8Ac7nFuJeZFiI3Hot0EIRpAq6rYbapwd6OOXuW0sMk,31689
308
+ truss_chains/framework.py,sha256=eSRcMKqIP4UKtlPjcqWKW3yy8uqP1Ug2zCchfU84-d8,59383
309
+ truss_chains/public_api.py,sha256=mbYAJwBn7Zsw-95X2cLhpMAGOtvg-eo2KppWd9Cj6m8,8665
310
+ truss_chains/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
311
+ truss_chains/pydantic_numpy.py,sha256=MG8Ji_Inwo_JSfM2n7TPj8B-nbrBlDYsY3SOeBwD8fE,4289
312
+ truss_chains/reference_code/reference_chainlet.py,sha256=5feSeqGtrHDbldkfZCfX2R5YbbW0Uhc35mhaP2pXrHw,1340
313
+ truss_chains/reference_code/reference_model.py,sha256=emH3hb23E_nbP98I37PGp1Xk1hz3g3lQ00tiLo55cSM,322
314
+ truss_chains/remote_chainlet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
315
+ truss_chains/remote_chainlet/model_skeleton.py,sha256=cvku-j8QTeDJteu5ZkMZI7KG8v6KF8rWS69BplO7vy4,2171
316
+ truss_chains/remote_chainlet/stub.py,sha256=Mormy7qyn_ssMeN8YAM6V_frSKdsIiG4KjlBb04lPkk,14801
317
+ truss_chains/remote_chainlet/utils.py,sha256=HdXEM-vY3nLVs2qdCs1TuLtao7v1cPpPGwHcZKzKC0Y,12328
318
+ truss_chains/streaming.py,sha256=DGl2LEAN67YwP7Nn9MK488KmYc4KopWmcHuE6WjyO1Q,12521
319
+ truss_chains/utils.py,sha256=mnX2bIU2i1w26FCrsuksUPmZa53E0Qu8HI_rRl9KZIY,5693
320
+ truss-0.60.0.dist-info/LICENSE,sha256=FTqGzu85i-uw1Gi8E_o0oD60bH9yQ_XIGtZbA1QUYiw,1064
321
+ truss-0.60.0.dist-info/METADATA,sha256=tY9kGK4--RI52RCW25kR8TpWfcxqS1L8BVmJKcd78LI,7115
322
+ truss-0.60.0.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
323
+ truss-0.60.0.dist-info/entry_points.txt,sha256=BZ4H8I7mocVPCDQbmUX8ZUOw6mXWr8JzPNi8q3Ph5Qo,127
324
+ truss-0.60.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 2.0.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+ truss=truss.cli.cli:truss_cli
3
+ truss-docker-build-setup=truss.contexts.docker_build_setup:docker_build_setup
4
+