isolate 0.16.2__py3-none-any.whl → 0.17.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 isolate might be problematic. Click here for more details.

@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.16.2'
21
- __version_tuple__ = version_tuple = (0, 16, 2)
20
+ __version__ = version = '0.17.0'
21
+ __version_tuple__ = version_tuple = (0, 17, 0)
@@ -19,6 +19,7 @@ class ContainerizedPythonEnvironment(BaseEnvironment[Path]):
19
19
  python_version: str | None = None
20
20
  requirements: list[str] = field(default_factory=list)
21
21
  tags: list[str] = field(default_factory=list)
22
+ resolver: str | None = None
22
23
 
23
24
  @classmethod
24
25
  def from_config(
@@ -28,14 +29,27 @@ class ContainerizedPythonEnvironment(BaseEnvironment[Path]):
28
29
  ) -> BaseEnvironment:
29
30
  environment = cls(**config)
30
31
  environment.apply_settings(settings)
32
+ if environment.resolver not in ("uv", None):
33
+ raise ValueError(
34
+ "Only 'uv' is supported as a resolver for container environments."
35
+ )
31
36
  return environment
32
37
 
33
38
  @property
34
39
  def key(self) -> str:
40
+ extras = []
41
+ if self.resolver is not None:
42
+ extras.append(f"resolver={self.resolver}")
43
+
35
44
  # dockerfile_str is always there, but the validation is handled by the
36
45
  # controller.
37
46
  dockerfile_str = self.image.get("dockerfile_str", "")
38
- return sha256_digest_of(dockerfile_str, *self.requirements, *sorted(self.tags))
47
+ return sha256_digest_of(
48
+ dockerfile_str,
49
+ *self.requirements,
50
+ *sorted(self.tags),
51
+ *extras,
52
+ )
39
53
 
40
54
  def create(self, *, force: bool = False) -> Path:
41
55
  return Path(sys.exec_prefix)
@@ -6,6 +6,7 @@ import os
6
6
  import runpy
7
7
  import site
8
8
  import sys
9
+ import traceback
9
10
 
10
11
 
11
12
  def load_pth_files() -> None:
@@ -28,7 +29,13 @@ def load_pth_files() -> None:
28
29
  # will need to be fixed once we are dealing with more than 2 nodes and editable
29
30
  # packages.
30
31
  for site_dir in python_path.split(os.pathsep):
31
- site.addsitedir(site_dir)
32
+ try:
33
+ site.addsitedir(site_dir)
34
+ except Exception:
35
+ # NOTE: there could be .pth files that are model weights and not
36
+ # python path configuration files.
37
+ traceback.print_exc()
38
+ print(f"Error adding site directory {site_dir}, skipping...")
32
39
 
33
40
 
34
41
  def main():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: isolate
3
- Version: 0.16.2
3
+ Version: 0.17.0
4
4
  Summary: Managed isolated environments for Python
5
5
  Author-email: Features & Labels <hello@fal.ai>
6
6
  Project-URL: Issues, https://github.com/fal-ai/isolate/issues
@@ -1,5 +1,5 @@
1
1
  isolate/__init__.py,sha256=uXOKnONs7sXgARNgElwr4_A1sKoA6ACHVEvs3IDiX1M,127
2
- isolate/_isolate_version.py,sha256=ypwallA3PYa0X5lB0jSGkU5P26m2Z-w7iRiaWdnAP9g,513
2
+ isolate/_isolate_version.py,sha256=6lYqo2NiGNZ_O8QsSkzvYU60ogL4YFzN80126BkHcWw,513
3
3
  isolate/_version.py,sha256=05pXvy-yr5t3I1m9JMn42Ilzpg7fa8IB2J8a3G7t1cU,274
4
4
  isolate/logger.py,sha256=IXPebob_fV8bl8HAyKcheXcTJocfdWk-v-ujSl13oVA,1718
5
5
  isolate/logs.py,sha256=R_AHUVYD18z_PhtK_mDWi9Gch79CxmwHY09hUDShtwg,2079
@@ -9,7 +9,7 @@ isolate/backends/__init__.py,sha256=LLrSM7UnDFW8tIT5oYlE1wVJrxKcaj_v7cFwvTjQTlc,
9
9
  isolate/backends/_base.py,sha256=Kt5pkhDzXZblq4vxaM3DQTo-Bj-7pIRZFlqJR7OfejY,4112
10
10
  isolate/backends/common.py,sha256=PEOcOK38nX1sIZzfF2m8kdZi8a31kpIoWr8mamTmj30,8594
11
11
  isolate/backends/conda.py,sha256=S5q5bdY787AMTck2iMGtwu-LHMH4a1qCIjNHDKTkqok,7649
12
- isolate/backends/container.py,sha256=MCQJbcmQvRUS-tTgTW_pKYBMKwSJO2KZsLeaBMXpPC0,1645
12
+ isolate/backends/container.py,sha256=yGrPM1rp66o_zLw-YLSbEcUVeoIsFalhywot0Sc4B-A,2039
13
13
  isolate/backends/local.py,sha256=woxe4dmXuEHxWKsGNndoRA1_sP6yG-dg6tlFZni0mZc,1360
14
14
  isolate/backends/pyenv.py,sha256=ZwTYoVPIWhS3Y4hN51x95aIOHi15GF7kEDdKTNhlMTE,5434
15
15
  isolate/backends/remote.py,sha256=z6QyBiCt8ltv4Zm8IYX3zyMkBH1k8lTowhnD92-Ed2M,4293
@@ -21,7 +21,7 @@ isolate/connections/__init__.py,sha256=oa0PNo7ZQ0StPIDvKnJ02_CNVMyfOhxJ3M1C0VMvj
21
21
  isolate/connections/common.py,sha256=PAfBGKZNUdtFlZQlw3_nQaUCKQXTnEkxzNNRV_i4R2A,3498
22
22
  isolate/connections/_local/__init__.py,sha256=6FtCKRSFBvTvjm5LNlNA-mieKEq3J7DZZRPcXVedERo,146
23
23
  isolate/connections/_local/_base.py,sha256=wx6WkP_zBZ7zHOq2mHqafVUAvGDMQGRELX64-o-uCdo,6676
24
- isolate/connections/_local/agent_startup.py,sha256=swCs6Q0yVkDw7w-RftizHSMyJDM7DQwuP3TB0qI1ucg,1552
24
+ isolate/connections/_local/agent_startup.py,sha256=F6f75vCy7KJiAoP7xAMO2XnkYpsi5TRCVWi4pmGkoU8,1844
25
25
  isolate/connections/grpc/__init__.py,sha256=tcesLxlC36P6wSg2lBcO2egsJWMbSKwc8zFXhWac3YU,85
26
26
  isolate/connections/grpc/_base.py,sha256=kUB-EDetcyb0fsYfH25E14DrxbVXe19bEH4u5b0-Gqw,5656
27
27
  isolate/connections/grpc/agent.py,sha256=fZF4-v8WN1qPzFp17UxOX_A3Jq8bXD8Wss-7eNgNoYg,8071
@@ -53,9 +53,9 @@ isolate/server/health/health.proto,sha256=wE2_QD0OQAblKkEBG7sALLXEOj1mOLKG-FbC4t
53
53
  isolate/server/health/health_pb2.py,sha256=-fd91wiaZOSJj_zeo55IqxMBsQGuGF-yjZS-Wc1RaS0,1897
54
54
  isolate/server/health/health_pb2.pyi,sha256=AK-DPCpJzoYhU6DydD856c0Ywx84x6k-Cs4m6HpNv5A,2459
55
55
  isolate/server/health/health_pb2_grpc.py,sha256=BrwuS8t4w6K-XVxIdrUQj5Rn0FAMXrYB2iFgUfeXGMM,3913
56
- isolate-0.16.2.dist-info/licenses/LICENSE,sha256=427vuyirL5scgBLqA9UWcdnxKrtSGc0u_JfUupk6lAA,11359
57
- isolate-0.16.2.dist-info/METADATA,sha256=mSxGZtOeC-DE7pM6twJKT1eBg1LVuX-rT2yjSlCi-ew,3198
58
- isolate-0.16.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
59
- isolate-0.16.2.dist-info/entry_points.txt,sha256=s3prh2EERaVCbL8R45tfY5WFPZ1TsYOsz305YR7s-Pc,360
60
- isolate-0.16.2.dist-info/top_level.txt,sha256=W9QJBHcq5WXRkbOXf25bvftzFsOZZN4n1DAatdroZrs,8
61
- isolate-0.16.2.dist-info/RECORD,,
56
+ isolate-0.17.0.dist-info/licenses/LICENSE,sha256=427vuyirL5scgBLqA9UWcdnxKrtSGc0u_JfUupk6lAA,11359
57
+ isolate-0.17.0.dist-info/METADATA,sha256=LZS6o3JOY2tmaBhmrPStN93AYl5WcXuyorTsSOnuH_c,3198
58
+ isolate-0.17.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
59
+ isolate-0.17.0.dist-info/entry_points.txt,sha256=s3prh2EERaVCbL8R45tfY5WFPZ1TsYOsz305YR7s-Pc,360
60
+ isolate-0.17.0.dist-info/top_level.txt,sha256=W9QJBHcq5WXRkbOXf25bvftzFsOZZN4n1DAatdroZrs,8
61
+ isolate-0.17.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5