truss 0.11.9rc4__py3-none-any.whl → 0.11.9rc6__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.

@@ -1,5 +1,6 @@
1
1
  import logging
2
2
  import os
3
+ import shutil
3
4
  import subprocess
4
5
  from pathlib import Path
5
6
  from typing import Optional
@@ -41,12 +42,21 @@ class ModelContainerPatchApplier:
41
42
  self._inference_server_home / ".." / self._truss_config.bundled_packages_dir
42
43
  ).resolve()
43
44
  self._data_dir = self._inference_server_home / self._truss_config.data_dir
44
- self._python_executable = os.environ.get("PYTHON_EXECUTABLE", "python3")
45
45
  self._app_logger = app_logger
46
46
  self._uv_path_cached = None
47
47
  if uv_path is not None:
48
48
  self._uv_path_cached = uv_path
49
49
 
50
+ self._python_executable = self._get_python_executable()
51
+
52
+ def _get_python_executable(self) -> str:
53
+ # NB(nikhil): `uv` requires the full path to the python interpreter for patching
54
+ # python modules. We expect PYTHON_EXECUTABLE to exist in all development images, but
55
+ # we fallback to python3 as a default.
56
+ python_executable = os.environ.get("PYTHON_EXECUTABLE", "python3")
57
+ full_executable_path = shutil.which(python_executable)
58
+ return full_executable_path or python_executable
59
+
50
60
  def __call__(self, patch: Patch, inf_env: dict):
51
61
  self._app_logger.debug(f"Applying patch {patch.to_dict()}")
52
62
  if isinstance(patch.body, ModelCodePatch):
@@ -101,7 +111,6 @@ class ModelContainerPatchApplier:
101
111
  "pip",
102
112
  "uninstall",
103
113
  python_requirement_patch.requirement,
104
- "--yes",
105
114
  "--python",
106
115
  self._python_executable,
107
116
  ],
@@ -167,14 +176,8 @@ class ModelContainerPatchApplier:
167
176
 
168
177
 
169
178
  def _identify_uv_path() -> str:
170
- candidate_paths: list[Path] = [
171
- Path.home() / ".local" / "bin" / "uv",
172
- Path("/usr/local/bin/uv"),
173
- Path.home() / ".cargo" / "bin" / "uv",
174
- ]
175
-
176
- for path in candidate_paths:
177
- if path.exists():
178
- return str(path)
179
+ uv_path = shutil.which("uv")
180
+ if not uv_path:
181
+ raise RuntimeError("Unable to find `uv`, make sure it's installed.")
179
182
 
180
- raise RuntimeError("Unable to find `uv, make sure it's installed.")
183
+ return uv_path
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: truss
3
- Version: 0.11.9rc4
3
+ Version: 0.11.9rc6
4
4
  Summary: A seamless bridge from model development to model delivery
5
5
  Project-URL: Repository, https://github.com/basetenlabs/truss
6
6
  Project-URL: Homepage, https://truss.baseten.co
@@ -84,7 +84,7 @@ truss/templates/control/control/helpers/inference_server_process_controller.py,s
84
84
  truss/templates/control/control/helpers/inference_server_starter.py,sha256=Fz2Puijro6Cc5cvTsAqOveNJbBQR_ARYJXl4lvETJ8Y,2633
85
85
  truss/templates/control/control/helpers/truss_patch/__init__.py,sha256=CXZdUV_ylqLTJrKuFpvSnUT6PUFrZrMF2y6jiHbdaKU,998
86
86
  truss/templates/control/control/helpers/truss_patch/model_code_patch_applier.py,sha256=LTIIADLz0wRn7V49j64dU1U7Hbta9YLde3pb5YZWvzQ,2001
87
- truss/templates/control/control/helpers/truss_patch/model_container_patch_applier.py,sha256=D8cvgfJ-nF4YBMy7u-MeSDqgKHBzeQi_2iXNP_M0H0c,6834
87
+ truss/templates/control/control/helpers/truss_patch/model_container_patch_applier.py,sha256=9bWoleD_dfQHokW5qgC5DyvAQPVhSku3tUqrVKQsQ3w,7091
88
88
  truss/templates/control/control/helpers/truss_patch/requirement_name_identifier.py,sha256=CL3KEAj4B3ApMQShd7TI5umXVbazLZY5StrNlwHwWtc,1995
89
89
  truss/templates/control/control/helpers/truss_patch/system_packages.py,sha256=IYh1CVU_kooAvtSGXKQDDWnNdOhlv7ENWagsL1wvhgw,208
90
90
  truss/templates/custom/examples.yaml,sha256=2UcCtEdavImWmiCtj31ckBlAKVOwNMC5AwMIIznKDag,48
@@ -369,8 +369,8 @@ truss_train/deployment.py,sha256=lWWANSuzBWu2M4oK4qD7n-oVR1JKdmw2Pn5BJQHg-Ck,307
369
369
  truss_train/loader.py,sha256=0o66EjBaHc2YY4syxxHVR4ordJWs13lNXnKjKq2wq0U,1630
370
370
  truss_train/public_api.py,sha256=9N_NstiUlmBuLUwH_fNG_1x7OhGCytZLNvqKXBlStrM,1220
371
371
  truss_train/restore_from_checkpoint.py,sha256=8hdPm-WSgkt74HDPjvCjZMBpvA9MwtoYsxVjOoa7BaM,1176
372
- truss-0.11.9rc4.dist-info/METADATA,sha256=pO0kvR_xTwz8YRpGcpiMaWlCNjJE4dxRtI5J_30aSdw,6680
373
- truss-0.11.9rc4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
374
- truss-0.11.9rc4.dist-info/entry_points.txt,sha256=-MwKfHHQHQ6j0HqIgvxrz3CehCmczDLTD-OsRHnjjuU,130
375
- truss-0.11.9rc4.dist-info/licenses/LICENSE,sha256=FTqGzu85i-uw1Gi8E_o0oD60bH9yQ_XIGtZbA1QUYiw,1064
376
- truss-0.11.9rc4.dist-info/RECORD,,
372
+ truss-0.11.9rc6.dist-info/METADATA,sha256=NUD1BVgmVysXZZU0V8ReAEjV7bzyJhgUumLhz4FGWno,6680
373
+ truss-0.11.9rc6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
374
+ truss-0.11.9rc6.dist-info/entry_points.txt,sha256=-MwKfHHQHQ6j0HqIgvxrz3CehCmczDLTD-OsRHnjjuU,130
375
+ truss-0.11.9rc6.dist-info/licenses/LICENSE,sha256=FTqGzu85i-uw1Gi8E_o0oD60bH9yQ_XIGtZbA1QUYiw,1064
376
+ truss-0.11.9rc6.dist-info/RECORD,,