truss 0.11.12rc508__py3-none-any.whl → 0.11.12rc510__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.

@@ -552,9 +552,7 @@ class DockerServer(custom_types.ConfigModel):
552
552
  @pydantic.model_validator(mode="after")
553
553
  def _validate_start_command(self) -> "DockerServer":
554
554
  if not self.as_is and self.start_command is None:
555
- raise ValueError(
556
- "start_command is required when as_is is not true"
557
- )
555
+ raise ValueError("start_command is required when as_is is not true")
558
556
  return self
559
557
 
560
558
 
@@ -754,6 +754,14 @@ class ServingImageBuilder(ImageBuilder):
754
754
  # Escape hatch for as-is deployments
755
755
  if ff_as_is and config.docker_server and config.docker_server.as_is:
756
756
  dockerfile_contents = f"FROM {config.base_image.image}"
757
+ # Add COPY for bptr-manifest if model_cache v2 is enabled
758
+ if config.model_cache and config.model_cache.is_v2:
759
+ if config.docker_server and config.docker_server.run_as_user_id:
760
+ user_id = config.docker_server.run_as_user_id
761
+ else:
762
+ user_id = 60000
763
+ # dockerfile_contents += f"\nENV APP_HOME=$HOME"
764
+ dockerfile_contents += f"\nCOPY --chown={user_id}:{user_id} ./bptr-manifest $HOME/bptr-manifest"
757
765
  docker_file_path = build_dir / MODEL_DOCKERFILE_NAME
758
766
  docker_file_path.write_text(dockerfile_contents)
759
767
  return
@@ -1,5 +1,6 @@
1
1
  import atexit
2
2
  import logging
3
+ import os
3
4
  import time
4
5
  from functools import lru_cache
5
6
  from pathlib import Path
@@ -13,6 +14,10 @@ LAZY_DATA_RESOLVER_PATH = [
13
14
  Path("/static-bptr/static-bptr-manifest.json"),
14
15
  ]
15
16
 
17
+ # Add fallback for as-is deployments if HOME is set
18
+ if os.environ.get("HOME"):
19
+ LAZY_DATA_RESOLVER_PATH.append(Path(os.environ.get("HOME")) / "bptr-manifest")
20
+
16
21
  MISSING_COLLECTION_MESSAGE = """model_cache: Data was not collected. Missing lazy_data_resolver.block_until_download_complete().
17
22
  This is a potential bug by the user implementation of model.py when using model_cache.
18
23
  We need you to call the block_until_download_complete() method during __init__ or load() method of your model.
@@ -48,7 +53,18 @@ class LazyDataResolverV2:
48
53
  self._lock = Lock()
49
54
  self._start_time = time.time()
50
55
  self.logger = logger or logging.getLogger(__name__)
51
- self._is_collected_by_user = not self.bptr_exists()
56
+
57
+ # Debug logging for bptr manifest detection
58
+ self.logger.info(f"LazyDataResolverV2: Checking for bptr manifest in paths: {LAZY_DATA_RESOLVER_PATH}")
59
+ bptr_found = self.bptr_exists()
60
+ self.logger.info(f"LazyDataResolverV2: bptr_exists() = {bptr_found}")
61
+ if bptr_found:
62
+ for path in LAZY_DATA_RESOLVER_PATH:
63
+ if path.exists():
64
+ self.logger.info(f"LazyDataResolverV2: Found bptr manifest at {path}")
65
+ break
66
+
67
+ self._is_collected_by_user = not bptr_found
52
68
  thread = Thread(target=self._prefetch_in_thread, daemon=True)
53
69
  thread.start()
54
70
 
@@ -92,13 +108,24 @@ class LazyDataResolverV2:
92
108
  def _fetch(self) -> Union[str, Exception]:
93
109
  """cached and locked method to fetch the data."""
94
110
  if not self.bptr_exists():
111
+ self.logger.info("LazyDataResolverV2: No bptr manifest found, skipping download")
95
112
  return "" # no data to resolve
96
- import truss_transfer
113
+
114
+ self.logger.info("LazyDataResolverV2: bptr manifest found, attempting to import truss_transfer")
115
+ try:
116
+ import truss_transfer
117
+ self.logger.info("LazyDataResolverV2: truss_transfer imported successfully")
118
+ except ImportError as e:
119
+ self.logger.error(f"LazyDataResolverV2: Failed to import truss_transfer: {e}")
120
+ return e
97
121
 
98
122
  try:
99
- return truss_transfer.lazy_data_resolve(str(self._data_dir))
123
+ self.logger.info(f"LazyDataResolverV2: Calling truss_transfer.lazy_data_resolve with data_dir: {self._data_dir}")
124
+ result = truss_transfer.lazy_data_resolve(str(self._data_dir))
125
+ self.logger.info(f"LazyDataResolverV2: truss_transfer.lazy_data_resolve completed successfully")
126
+ return result
100
127
  except Exception as e:
101
- self.logger.error(f"Error occurred while fetching data: {e}")
128
+ self.logger.error(f"LazyDataResolverV2: Error occurred while fetching data: {e}")
102
129
  return e
103
130
 
104
131
  def raise_if_not_collected(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: truss
3
- Version: 0.11.12rc508
3
+ Version: 0.11.12rc510
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
@@ -6,7 +6,7 @@ truss/base/constants.py,sha256=sExArdnuGg83z83XMgaQ4b8SS3V_j_bJEpOATDGJzpE,3600
6
6
  truss/base/custom_types.py,sha256=FUSIT2lPOQb6gfg6IzT63YBV8r8L6NIZ0D74Fp3e_jQ,2835
7
7
  truss/base/errors.py,sha256=zDVLEvseTChdPP0oNhBBQCtQUtZJUaof5zeWMIjqz6o,691
8
8
  truss/base/trt_llm_config.py,sha256=81ZZxRQF3o29HLCX6nlXtPwALejcdns6c4mbrExwASk,32958
9
- truss/base/truss_config.py,sha256=8nu5OjOF99hvfdUsalNo8xt9rRrq2j089f9JkhrZnjk,28437
9
+ truss/base/truss_config.py,sha256=UW7WM-2KGGRsHTezoth29ty95oMcZIolO-sUxNI7YvM,28407
10
10
  truss/base/truss_spec.py,sha256=jFVF79CXoEEspl2kXBAPyi-rwISReIGTdobGpaIhwJw,5979
11
11
  truss/cli/chains_commands.py,sha256=Kpa5mCg6URAJQE2ZmZfVQFhjBHEitKT28tKiW0H6XAI,17406
12
12
  truss/cli/cli.py,sha256=PaMkuwXZflkU7sa1tEoT_Zmy-iBkEZs1m4IVqcieaeo,30367
@@ -36,7 +36,7 @@ truss/contexts/docker_build_setup.py,sha256=cF4ExZgtYvrWxvyCAaUZUvV_DB_7__MqVomU
36
36
  truss/contexts/truss_context.py,sha256=uS6L-ACHxNk0BsJwESOHh1lA0OGGw0pb33aFKGsASj4,436
37
37
  truss/contexts/image_builder/cache_warmer.py,sha256=TGMV1Mh87n2e_dSowH0sf0rZhZraDOR-LVapZL3a5r8,7377
38
38
  truss/contexts/image_builder/image_builder.py,sha256=IuRgDeeoHVLzIkJvKtX3807eeqEyaroCs_KWDcIHZUg,1461
39
- truss/contexts/image_builder/serving_image_builder.py,sha256=fTg3fPtcYCn73KEqrWGJAj51a6sB1ZLI_4KeTXl5oZ4,33876
39
+ truss/contexts/image_builder/serving_image_builder.py,sha256=ZLaTnw3vFplhq2K1j62qswnHkNRUfj54-56mEua0XxI,34393
40
40
  truss/contexts/image_builder/util.py,sha256=y2-CjUKv0XV-0w2sr1fUCflysDJLsoU4oPp6tvvoFnk,1203
41
41
  truss/contexts/local_loader/docker_build_emulator.py,sha256=3n0eIlJblz_sldh4AN8AHQDyfjQGdYyld5FabBdd9wE,3563
42
42
  truss/contexts/local_loader/dockerfile_parser.py,sha256=GoRJ0Af_3ILyLhjovK5lrCGn1rMxz6W3l681ro17ZzI,1344
@@ -107,7 +107,7 @@ truss/templates/server/common/tracing.py,sha256=XSTXNoRtV8vXwveJoX3H32go0JKnLmzn
107
107
  truss/templates/server/common/patches/whisper/patch.py,sha256=kDECQ-wmEpeAZFhUTQP457ofueeMsm7DgNy9tqinhJQ,2383
108
108
  truss/templates/shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
109
  truss/templates/shared/dynamic_config_resolver.py,sha256=75s42NFhQI5jL7BqlJH_UkuQS7ptbtFh13f2nh6X5Wo,920
110
- truss/templates/shared/lazy_data_resolver.py,sha256=SMw3L24R_UkNXuL0fO-AN02rUTHfy0Aiz3JTyS0PAEc,5978
110
+ truss/templates/shared/lazy_data_resolver.py,sha256=zRsGRF62NQUWtYkqkKx3A-F0912mN3ug6Dorkh2iJzs,7408
111
111
  truss/templates/shared/log_config.py,sha256=l9udyu4VKHZePlfK9LQEd5TOUUodPuehypsXRSUL4Ac,5411
112
112
  truss/templates/shared/secrets_resolver.py,sha256=3prDe3Q06NTmUEe7KCW-W4TD1CzGck9lpDG789209z4,2110
113
113
  truss/templates/shared/serialization.py,sha256=_WC_2PPkRi-MdTwxwjG8LKQptnHi4sANfpOlKWevqWc,3736
@@ -370,8 +370,8 @@ truss_train/deployment.py,sha256=lWWANSuzBWu2M4oK4qD7n-oVR1JKdmw2Pn5BJQHg-Ck,307
370
370
  truss_train/loader.py,sha256=0o66EjBaHc2YY4syxxHVR4ordJWs13lNXnKjKq2wq0U,1630
371
371
  truss_train/public_api.py,sha256=9N_NstiUlmBuLUwH_fNG_1x7OhGCytZLNvqKXBlStrM,1220
372
372
  truss_train/restore_from_checkpoint.py,sha256=8hdPm-WSgkt74HDPjvCjZMBpvA9MwtoYsxVjOoa7BaM,1176
373
- truss-0.11.12rc508.dist-info/METADATA,sha256=VMRtE0XoGKjilkrEG_8_Dwi7ek9ZqgIFTPqcfbD-ltE,6683
374
- truss-0.11.12rc508.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
375
- truss-0.11.12rc508.dist-info/entry_points.txt,sha256=-MwKfHHQHQ6j0HqIgvxrz3CehCmczDLTD-OsRHnjjuU,130
376
- truss-0.11.12rc508.dist-info/licenses/LICENSE,sha256=FTqGzu85i-uw1Gi8E_o0oD60bH9yQ_XIGtZbA1QUYiw,1064
377
- truss-0.11.12rc508.dist-info/RECORD,,
373
+ truss-0.11.12rc510.dist-info/METADATA,sha256=Uwsbuea-zCQ1ovv465WHZP4s6ys9pLr18dWUwOdS9NI,6683
374
+ truss-0.11.12rc510.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
375
+ truss-0.11.12rc510.dist-info/entry_points.txt,sha256=-MwKfHHQHQ6j0HqIgvxrz3CehCmczDLTD-OsRHnjjuU,130
376
+ truss-0.11.12rc510.dist-info/licenses/LICENSE,sha256=FTqGzu85i-uw1Gi8E_o0oD60bH9yQ_XIGtZbA1QUYiw,1064
377
+ truss-0.11.12rc510.dist-info/RECORD,,