truss 0.9.45__tar.gz → 0.9.45.dev101__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.
- {truss-0.9.45 → truss-0.9.45.dev101}/PKG-INFO +2 -2
- {truss-0.9.45 → truss-0.9.45.dev101}/pyproject.toml +2 -3
- truss-0.9.45.dev101/truss/.pytest_cache/.gitignore +2 -0
- truss-0.9.45.dev101/truss/.pytest_cache/CACHEDIR.TAG +4 -0
- truss-0.9.45.dev101/truss/.pytest_cache/README.md +8 -0
- truss-0.9.45.dev101/truss/.pytest_cache/v/cache/lastfailed +1 -0
- truss-0.9.45.dev101/truss/.pytest_cache/v/cache/nodeids +3 -0
- truss-0.9.45.dev101/truss/.pytest_cache/v/cache/stepwise +1 -0
- truss-0.9.45.dev101/truss/api/__pycache__/__init__.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/api/__pycache__/definitions.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/cli/__pycache__/__init__.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/cli/__pycache__/cli.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/cli/__pycache__/console.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/cli/__pycache__/create.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/config/__pycache__/trt_llm.cpython-39.pyc +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/config/trt_llm.py +6 -5
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/constants.py +10 -2
- truss-0.9.45.dev101/truss/contexts/__pycache__/truss_context.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/contexts/image_builder/__pycache__/cache_warmer.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/contexts/image_builder/__pycache__/image_builder.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/contexts/image_builder/__pycache__/serving_image_builder.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/contexts/image_builder/__pycache__/serving_image_builder.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/contexts/image_builder/__pycache__/util.cpython-39.pyc +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/contexts/image_builder/serving_image_builder.py +11 -0
- truss-0.9.45.dev101/truss/contexts/local_loader/__pycache__/docker_build_emulator.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/contexts/local_loader/__pycache__/load_model_local.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/contexts/local_loader/__pycache__/truss_module_loader.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/contexts/local_loader/__pycache__/utils.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/local/__pycache__/local_config.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/local/__pycache__/local_config_handler.cpython-39.pyc +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/local/local_config_handler.py +0 -12
- truss-0.9.45.dev101/truss/patch/__pycache__/calc_patch.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/patch/__pycache__/custom_types.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/patch/__pycache__/dir_signature.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/patch/__pycache__/hash.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/patch/__pycache__/signature.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/patch/__pycache__/truss_dir_patch_applier.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/patch/__pycache__/types.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/__pycache__/remote_cli.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/__pycache__/remote_factory.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/__pycache__/truss_remote.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/baseten/__pycache__/__init__.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/baseten/__pycache__/api.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/baseten/__pycache__/auth.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/baseten/__pycache__/core.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/baseten/__pycache__/custom_types.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/baseten/__pycache__/error.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/baseten/__pycache__/remote.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/baseten/__pycache__/service.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/baseten/__pycache__/types.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/baseten/utils/__pycache__/status.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/baseten/utils/__pycache__/tar.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/remote/baseten/utils/__pycache__/transfer.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/__pycache__/__init__.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/__pycache__/application.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/__pycache__/endpoints.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/helpers/__pycache__/context_managers.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/helpers/__pycache__/custom_types.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/helpers/__pycache__/errors.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/helpers/__pycache__/inference_server_controller.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/helpers/__pycache__/inference_server_process_controller.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/helpers/__pycache__/inference_server_starter.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/helpers/__pycache__/types.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/helpers/truss_patch/__pycache__/__init__.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/helpers/truss_patch/__pycache__/model_code_patch_applier.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/helpers/truss_patch/__pycache__/model_container_patch_applier.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/helpers/truss_patch/__pycache__/requirement_name_identifier.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/control/control/helpers/truss_patch/__pycache__/system_packages.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/server/__pycache__/__init__.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/server/common/__pycache__/__init__.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/server/common/__pycache__/errors.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/server/common/__pycache__/patches.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/server/common/__pycache__/retry.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/server/common/__pycache__/schema.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/server/common/__pycache__/termination_handler_middleware.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/server/common/__pycache__/truss_server.cpython-39.pyc +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/common/errors.py +0 -43
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/model_wrapper.py +1 -89
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/requirements.txt +0 -1
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/truss_server.py +2 -3
- truss-0.9.45.dev101/truss/templates/shared/__pycache__/__init__.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/shared/__pycache__/dynamic_config_resolver.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/shared/__pycache__/lazy_data_resolver.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/shared/__pycache__/logging.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/shared/__pycache__/secrets_resolver.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/shared/__pycache__/serialization.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/shared/__pycache__/util.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/templates/shared/dynamic_config_resolver.py +13 -0
- truss-0.9.45.dev101/truss/templates/trtllm-briton/packages/briton_pb2.py +57 -0
- truss-0.9.45.dev101/truss/templates/trtllm-briton/packages/briton_pb2_grpc.py +82 -0
- truss-0.9.45.dev101/truss/templates/trtllm-briton/src/engine.py +574 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/trtllm-briton/src/extension.py +5 -5
- truss-0.9.45.dev101/truss/test_data/model_load_failure_test/config.yaml +2 -0
- truss-0.9.45.dev101/truss/test_data/test_basic_truss/packages2/package1/foo.py +2 -0
- truss-0.9.45.dev101/truss/test_data/test_basic_truss/sidscript.py +8 -0
- truss-0.9.45.dev101/truss/test_data/test_streaming_async_generator_truss/model/__pycache__/model.cpython-39.pyc +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_trt_llm_truss/config.yaml +2 -1
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_trt_llm_truss/model/model.py +2 -4
- truss-0.9.45.dev101/truss/tests/__pycache__/__init__.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/conftest.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/helpers.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_build.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_config.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_context_builder_image.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_control_truss_patching.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_docker.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_model_inference.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_model_schema.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_testing_utilities_for_other_tests.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_truss_gatherer.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_truss_handle.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_trussless_docker_server.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_util.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/__pycache__/test_validation.cpython-39-pytest-7.2.0.pyc +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/conftest.py +2 -1
- truss-0.9.45.dev101/truss/tests/contexts/image_builder/__pycache__/test_serving_image_builder.cpython-39-pytest-7.2.0.pyc +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/contexts/image_builder/test_serving_image_builder.py +1 -1
- truss-0.9.45.dev101/truss/tests/contexts/local_loader/__pycache__/test_load_local.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/contexts/local_loader/__pycache__/test_truss_module_finder.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/local/__pycache__/__init__.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/local/__pycache__/test_local_config_handler.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/patch/__pycache__/test_calc_patch.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/patch/__pycache__/test_dir_signature.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/patch/__pycache__/test_hash.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/patch/__pycache__/test_signature.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/patch/__pycache__/test_truss_dir_patch_applier.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/patch/__pycache__/test_types.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/remote/__pycache__/test_remote_factory.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/remote/__pycache__/test_truss_remote.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/remote/baseten/__pycache__/test_api.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/remote/baseten/__pycache__/test_auth.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/remote/baseten/__pycache__/test_core.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/remote/baseten/__pycache__/test_remote.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/remote/baseten/__pycache__/test_service.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/control/control/__pycache__/test_server.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/control/control/__pycache__/test_server_integration.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/control/control/helpers/__pycache__/test_context_managers.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/control/control/helpers/__pycache__/test_model_container_patch_applier.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/control/control/helpers/__pycache__/test_requirement_name_identifier.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/core/server/__pycache__/test_dynamic_config_resolver.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/core/server/__pycache__/test_lazy_data_resolver.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/core/server/__pycache__/test_secrets_resolver.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/core/server/common/__pycache__/test_truss_server.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/core/server/common/__pycache__/test_util.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/core/server/test_dynamic_config_resolver.py +34 -0
- truss-0.9.45.dev101/truss/tests/templates/server/__pycache__/test_model_wrapper.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/server/__pycache__/test_schema.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/server/__pycache__/test_truss_server.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/server/common/__pycache__/test_retry.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/templates/server/common/__pycache__/test_termination_handler_middleware.cpython-39-pytest-7.2.0.pyc +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/templates/server/test_model_wrapper.py +2 -2
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_config.py +2 -7
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_model_inference.py +0 -113
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_model_schema.py +2 -1
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_trussless_docker_server.py +1 -0
- truss-0.9.45.dev101/truss/tests/trt_llm/__pycache__/test_validation.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/util/__pycache__/test_config_checks.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/tests/util/__pycache__/test_path.cpython-39-pytest-7.2.0.pyc +0 -0
- truss-0.9.45.dev101/truss/trt_llm/__pycache__/validation.cpython-39.pyc +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/trt_llm/validation.py +1 -2
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/truss_config.py +3 -10
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/truss_handle.py +0 -6
- truss-0.9.45.dev101/truss/util/__pycache__/config_checks.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/util/__pycache__/data_structures.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/util/__pycache__/download.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/util/__pycache__/errors.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/util/__pycache__/jinja.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/util/__pycache__/log_utils.cpython-39.pyc +0 -0
- truss-0.9.45.dev101/truss/util/__pycache__/path.cpython-39.pyc +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss-chains/truss_chains/framework.py +0 -20
- {truss-0.9.45 → truss-0.9.45.dev101}/truss-chains/truss_chains/stub.py +9 -5
- {truss-0.9.45 → truss-0.9.45.dev101}/truss-chains/truss_chains/utils.py +40 -1
- truss-0.9.45/truss/templates/shared/dynamic_config_resolver.py +0 -28
- truss-0.9.45/truss/test_data/model_load_failure_test/config.yaml +0 -2
- truss-0.9.45/truss/tests/templates/core/server/test_dynamic_config_resolver.py +0 -126
- {truss-0.9.45 → truss-0.9.45.dev101}/CODE_OF_CONDUCT.md +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/CONTRIBUTING.md +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/LICENSE +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/README.md +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/context_builder.Dockerfile +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/api/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/api/definitions.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/blob/blob_backend.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/blob/blob_backend_registry.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/blob/http_public_blob_backend.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/build.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/cli/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/cli/cli.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/contexts/image_builder/cache_warmer.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/contexts/image_builder/image_builder.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/contexts/image_builder/util.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/contexts/local_loader/docker_build_emulator.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/contexts/local_loader/load_model_local.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/contexts/local_loader/truss_module_loader.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/contexts/local_loader/utils.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/contexts/truss_context.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/custom_types.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/decorators.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/docker.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/errors.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/local/local_config.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/model_inference.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/notebook.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/patch/calc_patch.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/patch/constants.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/patch/custom_types.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/patch/dir_signature.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/patch/hash.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/patch/local_truss_patch_applier.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/patch/signature.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/patch/truss_dir_patch_applier.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/readme_generator.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/baseten/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/baseten/api.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/baseten/auth.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/baseten/core.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/baseten/custom_types.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/baseten/error.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/baseten/remote.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/baseten/service.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/baseten/utils/status.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/baseten/utils/tar.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/baseten/utils/transfer.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/remote_cli.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/remote_factory.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/remote/truss_remote.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/README.md.jinja +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/base.Dockerfile.jinja +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/cache.Dockerfile.jinja +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/cache_requirements.txt +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/application.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/endpoints.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/helpers/context_managers.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/helpers/custom_types.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/helpers/errors.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/helpers/inference_server_controller.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/helpers/inference_server_process_controller.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/helpers/inference_server_starter.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/helpers/truss_patch/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/helpers/truss_patch/model_code_patch_applier.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/helpers/truss_patch/model_container_patch_applier.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/helpers/truss_patch/requirement_name_identifier.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/helpers/truss_patch/system_packages.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/control/server.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/control/requirements.txt +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/copy_cache_files.Dockerfile.jinja +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/custom/examples.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/custom/model/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/custom/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/docker_server/proxy.conf.jinja +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/docker_server/supervisord.conf.jinja +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/docker_server_requirements.txt +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/common/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/common/patches/whisper/patch.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/common/patches.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/common/retry.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/common/schema.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/common/termination_handler_middleware.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/common/tracing.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server/main.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/server.Dockerfile.jinja +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/shared/README.md +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/shared/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/shared/lazy_data_resolver.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/shared/logging.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/shared/secrets_resolver.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/shared/serialization.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/shared/util.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/trtllm-audio/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/trtllm-audio/packages/sigint_patch.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/trtllm-audio/packages/whisper_trt/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/trtllm-audio/packages/whisper_trt/assets.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/trtllm-audio/packages/whisper_trt/batching.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/trtllm-audio/packages/whisper_trt/custom_types.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/trtllm-audio/packages/whisper_trt/modeling.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/trtllm-audio/packages/whisper_trt/tokenizer.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/trtllm-audio/packages/whisper_trt/utils.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/templates/trtllm-briton/README.md +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/annotated_types_truss/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/annotated_types_truss/model/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/annotated_types_truss/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/auto-mpg.data +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/context_builder_image_test/Dockerfile +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/context_builder_image_test/test.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/gcs_fix/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/gcs_fix/model/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/gcs_fix/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/happy.ipynb +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/model_load_failure_test/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/patch_ping_test_server/app.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/pima-indians-diabetes.csv +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/readme_int_example.md +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/readme_no_example.md +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/readme_str_example.md +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/server.Dockerfile +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/server_conformance_test_truss/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/server_conformance_test_truss/model/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/server_conformance_test_truss/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_async_truss/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_async_truss/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_basic_truss/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_basic_truss/model/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_basic_truss/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_build_commands/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_build_commands/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_build_commands_failure/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_build_commands_failure/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_concurrency_truss/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_concurrency_truss/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_docker_server_truss/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_docker_server_truss/test_docker_image/Dockerfile +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_docker_server_truss/test_docker_image/README.md +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_docker_server_truss/test_docker_image/VERSION +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_docker_server_truss/test_docker_image/app.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_docker_server_truss/test_docker_image/build_upload_new_image.sh +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_pyantic_v1/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_pyantic_v1/model/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_pyantic_v1/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_pyantic_v1/requirements.txt +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_pyantic_v2/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_pyantic_v2/model/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_pyantic_v2/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_pyantic_v2/requirements.txt +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_requirements_file_truss/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_requirements_file_truss/model/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_requirements_file_truss/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_requirements_file_truss/requirements.txt +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_streaming_async_generator_truss/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_streaming_async_generator_truss/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_streaming_read_timeout/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_streaming_read_timeout/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_streaming_truss/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_streaming_truss/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_streaming_truss_with_error/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_streaming_truss_with_error/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_streaming_truss_with_error/packages/helpers_1.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_streaming_truss_with_error/packages/helpers_2.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_streaming_truss_with_tracing/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_streaming_truss_with_tracing/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_trt_llm_truss/model/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss/examples.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss/model/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss/model/dummy +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss/packages/test_package/test.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss_server_caching_truss/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss_server_caching_truss/model/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss_server_caching_truss/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss_with_error/config.yaml +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss_with_error/model/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss_with_error/model/model.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss_with_error/packages/helpers_1.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/test_data/test_truss_with_error/packages/helpers_2.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/contexts/local_loader/test_load_local.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/contexts/local_loader/test_truss_module_finder.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/helpers.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/local/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/local/test_local_config_handler.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/patch/test_calc_patch.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/patch/test_dir_signature.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/patch/test_hash.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/patch/test_signature.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/patch/test_truss_dir_patch_applier.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/patch/test_types.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/remote/baseten/test_api.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/remote/baseten/test_auth.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/remote/baseten/test_core.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/remote/baseten/test_remote.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/remote/baseten/test_service.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/remote/test_remote_factory.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/remote/test_truss_remote.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/templates/control/control/helpers/test_context_managers.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/templates/control/control/helpers/test_model_container_patch_applier.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/templates/control/control/helpers/test_requirement_name_identifier.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/templates/control/control/test_server.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/templates/control/control/test_server_integration.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/templates/core/server/test_lazy_data_resolver.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/templates/core/server/test_secrets_resolver.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/templates/server/common/test_retry.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/templates/server/common/test_termination_handler_middleware.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/templates/server/test_schema.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/templates/server/test_truss_server.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_build.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_context_builder_image.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_control_truss_patching.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_docker.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_testing_utilities_for_other_tests.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_truss_gatherer.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_truss_handle.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_util.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/test_validation.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/trt_llm/test_validation.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/util/test_config_checks.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/tests/util/test_path.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/truss_gatherer.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/truss_spec.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/util/.truss_ignore +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/util/config_checks.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/util/data_structures.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/util/download.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/util/errors.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/util/gpu.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/util/jinja.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/util/log_utils.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/util/path.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss/validation.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss-chains/truss_chains/__init__.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss-chains/truss_chains/code_gen.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss-chains/truss_chains/definitions.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss-chains/truss_chains/example_chainlet.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss-chains/truss_chains/model_skeleton.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss-chains/truss_chains/public_api.py +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss-chains/truss_chains/py.typed +0 -0
- {truss-0.9.45 → truss-0.9.45.dev101}/truss-chains/truss_chains/remote.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: truss
|
|
3
|
-
Version: 0.9.45
|
|
3
|
+
Version: 0.9.45.dev101
|
|
4
4
|
Summary: A seamless bridge from model development to model delivery
|
|
5
5
|
Home-page: https://github.com/basetenlabs/truss
|
|
6
6
|
License: MIT
|
|
@@ -17,7 +17,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
18
|
Requires-Dist: Jinja2 (>=3.1.2,<4.0.0)
|
|
19
19
|
Requires-Dist: PyYAML (>=6.0)
|
|
20
|
-
Requires-Dist:
|
|
20
|
+
Requires-Dist: aiohttp (>=3.10.10,<4.0.0)
|
|
21
21
|
Requires-Dist: blake3 (>=0.3.3,<0.4.0)
|
|
22
22
|
Requires-Dist: boto3 (>=1.34.85,<2.0.0)
|
|
23
23
|
Requires-Dist: fastapi (>=0.109.1)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "truss"
|
|
3
|
-
version = "0.9.
|
|
3
|
+
version = "0.9.45dev101"
|
|
4
4
|
description = "A seamless bridge from model development to model delivery"
|
|
5
5
|
license = "MIT"
|
|
6
6
|
readme = "README.md"
|
|
@@ -27,7 +27,7 @@ packages = [
|
|
|
27
27
|
"Baseten" = "https://baseten.co"
|
|
28
28
|
|
|
29
29
|
[tool.poetry.dependencies]
|
|
30
|
-
|
|
30
|
+
aiohttp = "^3.10.10"
|
|
31
31
|
blake3 = "^0.3.3"
|
|
32
32
|
boto3 = "^1.34.85"
|
|
33
33
|
fastapi = ">=0.109.1"
|
|
@@ -97,7 +97,6 @@ pytest = "7.2.0"
|
|
|
97
97
|
pytest-cov = "^3.0.0"
|
|
98
98
|
types-PyYAML = "^6.0.12.12"
|
|
99
99
|
types-setuptools = "^69.0.0.0"
|
|
100
|
-
types-aiofiles = "^24.1.0.20240626"
|
|
101
100
|
|
|
102
101
|
[tool.poetry.scripts]
|
|
103
102
|
truss = 'truss.cli:truss_cli'
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# pytest cache directory #
|
|
2
|
+
|
|
3
|
+
This directory contains data from the pytest's cache plugin,
|
|
4
|
+
which provides the `--lf` and `--ff` options, as well as the `cache` fixture.
|
|
5
|
+
|
|
6
|
+
**Do not** commit this to version control.
|
|
7
|
+
|
|
8
|
+
See [the docs](https://docs.pytest.org/en/stable/how-to/cache.html) for more information.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -23,7 +23,6 @@ class TrussTRTLLMModel(str, Enum):
|
|
|
23
23
|
MISTRAL = "mistral"
|
|
24
24
|
DEEPSEEK = "deepseek"
|
|
25
25
|
WHISPER = "whisper"
|
|
26
|
-
QWEN = "qwen"
|
|
27
26
|
|
|
28
27
|
|
|
29
28
|
class TrussTRTLLMQuantizationType(str, Enum):
|
|
@@ -31,7 +30,7 @@ class TrussTRTLLMQuantizationType(str, Enum):
|
|
|
31
30
|
WEIGHTS_ONLY_INT8 = "weights_int8"
|
|
32
31
|
WEIGHTS_KV_INT8 = "weights_kv_int8"
|
|
33
32
|
WEIGHTS_ONLY_INT4 = "weights_int4"
|
|
34
|
-
|
|
33
|
+
WEIGHTS_KV_INT4 = "weights_kv_int4"
|
|
35
34
|
SMOOTH_QUANT = "smooth_quant"
|
|
36
35
|
FP8 = "fp8"
|
|
37
36
|
FP8_KV = "fp8_kv"
|
|
@@ -59,9 +58,10 @@ class CheckpointRepository(BaseModel):
|
|
|
59
58
|
|
|
60
59
|
class TrussTRTLLMBuildConfiguration(BaseModel):
|
|
61
60
|
base_model: TrussTRTLLMModel
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
max_input_len: int
|
|
62
|
+
max_output_len: int
|
|
63
|
+
max_batch_size: int
|
|
64
|
+
max_num_tokens: Optional[int] = None
|
|
65
65
|
max_beam_width: int = 1
|
|
66
66
|
max_prompt_embedding_table_size: int = 0
|
|
67
67
|
checkpoint_repository: CheckpointRepository
|
|
@@ -75,6 +75,7 @@ class TrussTRTLLMBuildConfiguration(BaseModel):
|
|
|
75
75
|
plugin_configuration: TrussTRTLLMPluginConfiguration = (
|
|
76
76
|
TrussTRTLLMPluginConfiguration()
|
|
77
77
|
)
|
|
78
|
+
use_fused_mlp: bool = False
|
|
78
79
|
kv_cache_free_gpu_mem_fraction: float = 0.9
|
|
79
80
|
num_builder_gpus: Optional[int] = None
|
|
80
81
|
enable_chunked_context: bool = False
|
|
@@ -106,9 +106,17 @@ HTTP_PUBLIC_BLOB_BACKEND = "http_public"
|
|
|
106
106
|
|
|
107
107
|
REGISTRY_BUILD_SECRET_PREFIX = "DOCKER_REGISTRY_"
|
|
108
108
|
|
|
109
|
-
TRTLLM_BASE_IMAGE = "baseten/briton-server:
|
|
109
|
+
TRTLLM_BASE_IMAGE = "baseten/briton-server:5fa9436e_v0.0.11"
|
|
110
110
|
TRTLLM_PYTHON_EXECUTABLE = "/usr/bin/python3"
|
|
111
|
-
BASE_TRTLLM_REQUIREMENTS = [
|
|
111
|
+
BASE_TRTLLM_REQUIREMENTS = [
|
|
112
|
+
"grpcio==1.62.3",
|
|
113
|
+
"grpcio-tools==1.62.3",
|
|
114
|
+
"transformers==4.44.2",
|
|
115
|
+
"truss==0.9.42rc010",
|
|
116
|
+
"outlines==0.0.46",
|
|
117
|
+
"torch==2.4.0",
|
|
118
|
+
"sentencepiece==0.2.0",
|
|
119
|
+
]
|
|
112
120
|
AUDIO_MODEL_TRTLLM_REQUIREMENTS = [
|
|
113
121
|
"--extra-index-url https://pypi.nvidia.com",
|
|
114
122
|
"tensorrt_cu12_bindings==10.2.0.post1",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
truss-0.9.45.dev101/truss/contexts/image_builder/__pycache__/serving_image_builder.cpython-39.pyc
ADDED
|
Binary file
|
|
@@ -412,6 +412,17 @@ class ServingImageBuilder(ImageBuilder):
|
|
|
412
412
|
DEFAULT_BUNDLED_PACKAGES_DIR,
|
|
413
413
|
)
|
|
414
414
|
|
|
415
|
+
tensor_parallel_count = (
|
|
416
|
+
config.trt_llm.build.tensor_parallel_count # type: ignore[union-attr]
|
|
417
|
+
if config.trt_llm.build is not None
|
|
418
|
+
else config.trt_llm.serve.tensor_parallel_count # type: ignore[union-attr]
|
|
419
|
+
)
|
|
420
|
+
|
|
421
|
+
if tensor_parallel_count != config.resources.accelerator.count:
|
|
422
|
+
raise ValueError(
|
|
423
|
+
"Tensor parallelism and GPU count must be the same for TRT-LLM"
|
|
424
|
+
)
|
|
425
|
+
|
|
415
426
|
config.runtime.predict_concurrency = TRTLLM_PREDICT_CONCURRENCY
|
|
416
427
|
|
|
417
428
|
if not is_audio_model:
|
truss-0.9.45.dev101/truss/contexts/local_loader/__pycache__/docker_build_emulator.cpython-39.pyc
ADDED
|
Binary file
|
|
Binary file
|
truss-0.9.45.dev101/truss/contexts/local_loader/__pycache__/truss_module_loader.cpython-39.pyc
ADDED
|
Binary file
|
|
Binary file
|
|
@@ -75,18 +75,6 @@ class LocalConfigHandler:
|
|
|
75
75
|
bptr_data_dir.mkdir(exist_ok=True, parents=True)
|
|
76
76
|
return bptr_data_dir
|
|
77
77
|
|
|
78
|
-
@staticmethod
|
|
79
|
-
def dynamic_config_path():
|
|
80
|
-
dynamic_config_dir = LocalConfigHandler.TRUSS_CONFIG_DIR / "b10_dynamic_config"
|
|
81
|
-
dynamic_config_dir.mkdir(exist_ok=True, parents=True)
|
|
82
|
-
return dynamic_config_dir
|
|
83
|
-
|
|
84
|
-
@staticmethod
|
|
85
|
-
def set_dynamic_config(key: str, value: str):
|
|
86
|
-
key_path = LocalConfigHandler.dynamic_config_path() / key
|
|
87
|
-
with key_path.open("w") as key_file:
|
|
88
|
-
key_file.write(value)
|
|
89
|
-
|
|
90
78
|
@staticmethod
|
|
91
79
|
def _signatures_dir_path():
|
|
92
80
|
return LocalConfigHandler.TRUSS_CONFIG_DIR / "signatures"
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
truss-0.9.45.dev101/truss/templates/control/control/helpers/__pycache__/custom_types.cpython-39.pyc
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import contextlib
|
|
2
2
|
import logging
|
|
3
3
|
import sys
|
|
4
|
-
import textwrap
|
|
5
4
|
from http import HTTPStatus
|
|
6
5
|
from types import TracebackType
|
|
7
6
|
from typing import (
|
|
@@ -14,7 +13,6 @@ from typing import (
|
|
|
14
13
|
)
|
|
15
14
|
|
|
16
15
|
import fastapi
|
|
17
|
-
import pydantic
|
|
18
16
|
import starlette.responses
|
|
19
17
|
from fastapi import HTTPException
|
|
20
18
|
from fastapi.responses import JSONResponse
|
|
@@ -173,44 +171,3 @@ def intercept_exceptions(
|
|
|
173
171
|
"Internal Server Error", exc_info=filter_traceback(model_file_name)
|
|
174
172
|
)
|
|
175
173
|
raise UserCodeError(str(exc))
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
def _loc_to_dot_sep(loc: Tuple[Union[str, int], ...]) -> str:
|
|
179
|
-
# From https://docs.pydantic.dev/latest/errors/errors/#customize-error-messages.
|
|
180
|
-
# Chained field access is stylized with `.`-notation (corresponding to str parts)
|
|
181
|
-
# and array indexing is stylized with `[i]`-notation (corresponding to int parts).
|
|
182
|
-
# E.g. ('items', 1, 'value') -> items[1].value.
|
|
183
|
-
parts = []
|
|
184
|
-
for i, x in enumerate(loc):
|
|
185
|
-
if isinstance(x, str):
|
|
186
|
-
if i > 0:
|
|
187
|
-
parts.append(".")
|
|
188
|
-
parts.append(x)
|
|
189
|
-
elif isinstance(x, int):
|
|
190
|
-
parts.append(f"[{x}]")
|
|
191
|
-
else:
|
|
192
|
-
raise TypeError(f"Unexpected type: {x}.")
|
|
193
|
-
return "".join(parts)
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
def format_pydantic_validation_error(exc: pydantic.ValidationError) -> str:
|
|
197
|
-
if exc.error_count() == 1:
|
|
198
|
-
parts = ["Input Parsing Error:"]
|
|
199
|
-
else:
|
|
200
|
-
parts = ["Input Parsing Errors:"]
|
|
201
|
-
|
|
202
|
-
try:
|
|
203
|
-
for error in exc.errors(include_url=False, include_input=False):
|
|
204
|
-
loc = _loc_to_dot_sep(error["loc"])
|
|
205
|
-
if error["msg"]:
|
|
206
|
-
msg = error["msg"]
|
|
207
|
-
else:
|
|
208
|
-
error_no_loc = dict(error)
|
|
209
|
-
error_no_loc.pop("loc")
|
|
210
|
-
msg = str(error_no_loc)
|
|
211
|
-
parts.append(textwrap.indent(f"`{loc}`: {msg}.", " "))
|
|
212
|
-
except: # noqa: E722
|
|
213
|
-
# Fallback in case any of the fields cannot be processed as expected.
|
|
214
|
-
return f"Input Parsing Error, {str(exc)}"
|
|
215
|
-
|
|
216
|
-
return "\n".join(parts)
|
|
@@ -4,7 +4,6 @@ import enum
|
|
|
4
4
|
import importlib
|
|
5
5
|
import importlib.util
|
|
6
6
|
import inspect
|
|
7
|
-
import json
|
|
8
7
|
import logging
|
|
9
8
|
import os
|
|
10
9
|
import pathlib
|
|
@@ -36,7 +35,7 @@ from common.retry import retry
|
|
|
36
35
|
from common.schema import TrussSchema
|
|
37
36
|
from opentelemetry import trace
|
|
38
37
|
from pydantic import BaseModel
|
|
39
|
-
from shared import
|
|
38
|
+
from shared import serialization
|
|
40
39
|
from shared.lazy_data_resolver import LazyDataResolver
|
|
41
40
|
from shared.secrets_resolver import SecretsResolver
|
|
42
41
|
|
|
@@ -54,7 +53,6 @@ EXTENSIONS_DIR_NAME = "extensions"
|
|
|
54
53
|
EXTENSION_CLASS_NAME = "Extension"
|
|
55
54
|
EXTENSION_FILE_NAME = "extension"
|
|
56
55
|
TRT_LLM_EXTENSION_NAME = "trt_llm"
|
|
57
|
-
POLL_FOR_ENVIRONMENT_UPDATES_TIMEOUT_SECS = 30
|
|
58
56
|
|
|
59
57
|
|
|
60
58
|
@asynccontextmanager
|
|
@@ -193,7 +191,6 @@ class ModelDescriptor:
|
|
|
193
191
|
predict: MethodDescriptor
|
|
194
192
|
postprocess: Optional[MethodDescriptor]
|
|
195
193
|
truss_schema: Optional[TrussSchema]
|
|
196
|
-
setup_environment: Optional[MethodDescriptor]
|
|
197
194
|
|
|
198
195
|
@cached_property
|
|
199
196
|
def skip_input_parsing(self) -> bool:
|
|
@@ -246,19 +243,11 @@ class ModelDescriptor:
|
|
|
246
243
|
else:
|
|
247
244
|
return_annotation = inspect.signature(model.predict).return_annotation
|
|
248
245
|
|
|
249
|
-
if hasattr(model, "setup_environment"):
|
|
250
|
-
setup_environment = MethodDescriptor.from_method(
|
|
251
|
-
model.setup_environment, "setup_environment"
|
|
252
|
-
)
|
|
253
|
-
else:
|
|
254
|
-
setup_environment = None
|
|
255
|
-
|
|
256
246
|
return cls(
|
|
257
247
|
preprocess=preprocess,
|
|
258
248
|
predict=predict,
|
|
259
249
|
postprocess=postprocess,
|
|
260
250
|
truss_schema=TrussSchema.from_signature(parameters, return_annotation),
|
|
261
|
-
setup_environment=setup_environment,
|
|
262
251
|
)
|
|
263
252
|
|
|
264
253
|
|
|
@@ -270,8 +259,6 @@ class ModelWrapper:
|
|
|
270
259
|
_logger: logging.Logger
|
|
271
260
|
_status: "ModelWrapper.Status"
|
|
272
261
|
_predict_semaphore: Semaphore
|
|
273
|
-
_poll_for_environment_updates_task: Optional[asyncio.Task]
|
|
274
|
-
_environment: Optional[dict]
|
|
275
262
|
|
|
276
263
|
class Status(Enum):
|
|
277
264
|
NOT_READY = 0
|
|
@@ -293,8 +280,6 @@ class ModelWrapper:
|
|
|
293
280
|
"predict_concurrency", DEFAULT_PREDICT_CONCURRENCY
|
|
294
281
|
)
|
|
295
282
|
)
|
|
296
|
-
self._poll_for_environment_updates_task = None
|
|
297
|
-
self._environment = None
|
|
298
283
|
|
|
299
284
|
@property
|
|
300
285
|
def _model(self) -> Any:
|
|
@@ -434,9 +419,6 @@ class ModelWrapper:
|
|
|
434
419
|
|
|
435
420
|
self._maybe_model_descriptor = ModelDescriptor.from_model(self._model)
|
|
436
421
|
|
|
437
|
-
if self._maybe_model_descriptor.setup_environment:
|
|
438
|
-
self._initialize_environment_before_load()
|
|
439
|
-
|
|
440
422
|
if hasattr(self._model, "load"):
|
|
441
423
|
retry(
|
|
442
424
|
self._model.load,
|
|
@@ -446,76 +428,6 @@ class ModelWrapper:
|
|
|
446
428
|
gap_seconds=1.0,
|
|
447
429
|
)
|
|
448
430
|
|
|
449
|
-
def setup_polling_for_environment_updates(self):
|
|
450
|
-
self._poll_for_environment_updates_task = asyncio.create_task(
|
|
451
|
-
self.poll_for_environment_updates()
|
|
452
|
-
)
|
|
453
|
-
|
|
454
|
-
def _initialize_environment_before_load(self):
|
|
455
|
-
environment_str = dynamic_config_resolver.get_dynamic_config_value_sync(
|
|
456
|
-
dynamic_config_resolver.ENVIRONMENT_DYNAMIC_CONFIG_KEY
|
|
457
|
-
)
|
|
458
|
-
if environment_str:
|
|
459
|
-
environment_json = json.loads(environment_str)
|
|
460
|
-
self._logger.info(
|
|
461
|
-
f"Executing model.setup_environment with environment: {environment_json}"
|
|
462
|
-
)
|
|
463
|
-
# TODO: Support calling an async setup_environment() here once we support async load()
|
|
464
|
-
self._model.setup_environment(environment_json)
|
|
465
|
-
self._environment = environment_json
|
|
466
|
-
|
|
467
|
-
async def setup_environment(self, environment: Optional[dict]):
|
|
468
|
-
descriptor = self.model_descriptor.setup_environment
|
|
469
|
-
if not descriptor:
|
|
470
|
-
return
|
|
471
|
-
self._logger.info(
|
|
472
|
-
f"Executing model.setup_environment with environment: {environment}"
|
|
473
|
-
)
|
|
474
|
-
if descriptor.is_async:
|
|
475
|
-
return await self._model.setup_environment(environment)
|
|
476
|
-
else:
|
|
477
|
-
return await to_thread.run_sync(self._model.setup_environment, environment)
|
|
478
|
-
|
|
479
|
-
async def poll_for_environment_updates(self) -> None:
|
|
480
|
-
last_modified_time = None
|
|
481
|
-
environment_config_filename = (
|
|
482
|
-
dynamic_config_resolver.get_dynamic_config_file_path(
|
|
483
|
-
dynamic_config_resolver.ENVIRONMENT_DYNAMIC_CONFIG_KEY
|
|
484
|
-
)
|
|
485
|
-
)
|
|
486
|
-
|
|
487
|
-
while True:
|
|
488
|
-
# Give control back to the event loop while waiting for environment updates
|
|
489
|
-
await asyncio.sleep(POLL_FOR_ENVIRONMENT_UPDATES_TIMEOUT_SECS)
|
|
490
|
-
|
|
491
|
-
# Wait for load to finish before checking for environment updates
|
|
492
|
-
if not self.ready:
|
|
493
|
-
continue
|
|
494
|
-
|
|
495
|
-
# Skip polling if no setup_environment implementation provided
|
|
496
|
-
if not self.model_descriptor.setup_environment:
|
|
497
|
-
break
|
|
498
|
-
|
|
499
|
-
if environment_config_filename.exists():
|
|
500
|
-
try:
|
|
501
|
-
current_mtime = os.path.getmtime(environment_config_filename)
|
|
502
|
-
if not last_modified_time or last_modified_time != current_mtime:
|
|
503
|
-
environment_str = await dynamic_config_resolver.get_dynamic_config_value_async(
|
|
504
|
-
dynamic_config_resolver.ENVIRONMENT_DYNAMIC_CONFIG_KEY
|
|
505
|
-
)
|
|
506
|
-
if environment_str:
|
|
507
|
-
last_modified_time = current_mtime
|
|
508
|
-
environment_json = json.loads(environment_str)
|
|
509
|
-
# Avoid rerunning `setup_environment` with the same environment
|
|
510
|
-
if self._environment != environment_json:
|
|
511
|
-
await self.setup_environment(environment_json)
|
|
512
|
-
self._environment = environment_json
|
|
513
|
-
except Exception as e:
|
|
514
|
-
self._logger.exception(
|
|
515
|
-
"Exception while setting up environment: " + str(e),
|
|
516
|
-
exc_info=errors.filter_traceback(self._model_file_name),
|
|
517
|
-
)
|
|
518
|
-
|
|
519
431
|
async def preprocess(
|
|
520
432
|
self,
|
|
521
433
|
inputs: serialization.InputType,
|
|
@@ -141,7 +141,7 @@ class BasetenEndpoints:
|
|
|
141
141
|
inputs = truss_schema.input_type.parse_obj(inputs)
|
|
142
142
|
except pydantic.ValidationError as e:
|
|
143
143
|
raise errors.InputParsingError(
|
|
144
|
-
|
|
144
|
+
f"Request Validation Error, {str(e)}"
|
|
145
145
|
) from e
|
|
146
146
|
else:
|
|
147
147
|
if truss_schema:
|
|
@@ -151,7 +151,7 @@ class BasetenEndpoints:
|
|
|
151
151
|
inputs = truss_schema.input_type.parse_raw(body_raw)
|
|
152
152
|
except pydantic.ValidationError as e:
|
|
153
153
|
raise errors.InputParsingError(
|
|
154
|
-
|
|
154
|
+
f"Request Validation Error, {str(e)}"
|
|
155
155
|
) from e
|
|
156
156
|
else:
|
|
157
157
|
try:
|
|
@@ -281,7 +281,6 @@ class TrussServer:
|
|
|
281
281
|
if self._setup_json_logger:
|
|
282
282
|
setup_logging()
|
|
283
283
|
self._model.start_load_thread()
|
|
284
|
-
self._model.setup_polling_for_environment_updates()
|
|
285
284
|
|
|
286
285
|
def create_application(self):
|
|
287
286
|
app = FastAPI(
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
from typing import Optional
|
|
3
|
+
|
|
4
|
+
DYNAMIC_CONFIG_MOUNT_DIR = "/etc/b10_dynamic_config"
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def get_dynamic_config_value(key: str) -> Optional[str]:
|
|
8
|
+
dynamic_config_path = Path(DYNAMIC_CONFIG_MOUNT_DIR) / key
|
|
9
|
+
if dynamic_config_path.exists() and dynamic_config_path.is_file():
|
|
10
|
+
with dynamic_config_path.open() as dynamic_config_file:
|
|
11
|
+
dynamic_config_value = dynamic_config_file.read()
|
|
12
|
+
return dynamic_config_value
|
|
13
|
+
return None
|