isolate 0.12.11__py3-none-any.whl → 0.12.13__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.

@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.12.11'
16
- __version_tuple__ = version_tuple = (0, 12, 11)
15
+ __version__ = version = '0.12.13'
16
+ __version_tuple__ = version_tuple = (0, 12, 13)
@@ -2,9 +2,8 @@ from __future__ import annotations
2
2
 
3
3
  import importlib
4
4
  import os
5
- from contextlib import contextmanager
6
5
  from dataclasses import dataclass
7
- from typing import TYPE_CHECKING, Any, Iterator, cast
6
+ from typing import TYPE_CHECKING, Any, cast
8
7
 
9
8
  from tblib import Traceback, TracebackParseError
10
9
 
@@ -23,23 +22,18 @@ AGENT_SIGNATURE = "IS_ISOLATE_AGENT"
23
22
 
24
23
 
25
24
  @dataclass
26
- class SerializationError(IsolateException):
25
+ class BaseSerializationError(IsolateException):
27
26
  """An error that happened during the serialization process."""
28
27
 
29
28
  message: str
30
29
 
31
30
 
32
- @contextmanager
33
- def _step(message: str) -> Iterator[None]:
34
- """A context manager to capture every expression
35
- underneath it and if any of them fails for any reason
36
- then it will raise a SerializationError with the
37
- given message."""
31
+ class SerializationError(BaseSerializationError):
32
+ pass
38
33
 
39
- try:
40
- yield
41
- except BaseException as exception:
42
- raise SerializationError("Error while " + message) from exception
34
+
35
+ class DeserializationError(BaseSerializationError):
36
+ pass
43
37
 
44
38
 
45
39
  def as_serialization_method(backend: Any) -> SerializationBackend:
@@ -68,13 +62,22 @@ def load_serialized_object(
68
62
  flag is set to true, then the given object will be raised as an exception (instead
69
63
  of being returned)."""
70
64
 
71
- with _step(f"preparing the serialization backend ({serialization_method})"):
65
+ try:
72
66
  serialization_backend = as_serialization_method(
73
67
  importlib.import_module(serialization_method)
74
68
  )
69
+ except BaseException as exc:
70
+ raise DeserializationError(
71
+ "Error while preparing the serialization backend "
72
+ f"({serialization_method})"
73
+ ) from exc
75
74
 
76
- with _step("deserializing the given object"):
75
+ try:
77
76
  result = serialization_backend.loads(raw_object)
77
+ except BaseException as exc:
78
+ raise DeserializationError(
79
+ "Error while deserializing the given object"
80
+ ) from exc
78
81
 
79
82
  if was_it_raised:
80
83
  raise prepare_exc(result, stringized_traceback=stringized_traceback)
@@ -86,13 +89,19 @@ def serialize_object(serialization_method: str, object: Any) -> bytes:
86
89
  """Serialize the given object using the given serialization method. If
87
90
  anything fails, then a SerializationError will be raised."""
88
91
 
89
- with _step(f"preparing the serialization backend ({serialization_method})"):
92
+ try:
90
93
  serialization_backend = as_serialization_method(
91
94
  importlib.import_module(serialization_method)
92
95
  )
96
+ except BaseException as exc:
97
+ raise SerializationError(
98
+ f"Error while preparing the serialization backend ({serialization_method})"
99
+ ) from exc
93
100
 
94
- with _step("serializing the given object"):
101
+ try:
95
102
  return serialization_backend.dumps(object)
103
+ except BaseException as exc:
104
+ raise SerializationError("Error while serializing the given object") from exc
96
105
 
97
106
 
98
107
  def is_agent() -> bool:
@@ -107,10 +107,10 @@ class AgentServicer(definitions.AgentServicer):
107
107
  )
108
108
 
109
109
  try:
110
- # TODO: technically any sort of exception could be raised here, since
110
+ # NOTE: technically any sort of exception could be raised here, since
111
111
  # depickling is basically involves code execution from the *user*.
112
112
  function = from_grpc(function)
113
- except SerializationError as exc:
113
+ except BaseException as exc:
114
114
  return exc, True, traceback.format_exc()
115
115
 
116
116
  if not callable(function):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: isolate
3
- Version: 0.12.11
3
+ Version: 0.12.13
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=ibxkEhOolH4KTxmT7hKzBWG_rM1opxjT5eTo3nE8TdM,415
2
+ isolate/_isolate_version.py,sha256=rYB4wxX5D44-YwCyT1hUwPhja5ktD6OYXizpLgC8gMI,415
3
3
  isolate/_version.py,sha256=05pXvy-yr5t3I1m9JMn42Ilzpg7fa8IB2J8a3G7t1cU,274
4
4
  isolate/exceptions.py,sha256=ki-f7khY-Yo1J8nPdy5IP-aZhQyLUP9pp3dE0moEVKw,44
5
5
  isolate/logs.py,sha256=R_AHUVYD18z_PhtK_mDWi9Gch79CxmwHY09hUDShtwg,2079
@@ -17,13 +17,13 @@ isolate/backends/virtualenv.py,sha256=DiBAiybOLWMxJobIRaH4AgDn9agY5VrVPaSQObQa1L
17
17
  isolate/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  isolate/common/timestamp.py,sha256=seh7FrMRH4i1SCQavA8d-7z8qi0pP8lYYhd29gTPMwE,367
19
19
  isolate/connections/__init__.py,sha256=oa0PNo7ZQ0StPIDvKnJ02_CNVMyfOhxJ3M1C0VMvj9c,627
20
- isolate/connections/common.py,sha256=cPpNhD7adMLfV7lE7tKuUwIBkjRLfbh3AtJykJgS1bQ,3554
20
+ isolate/connections/common.py,sha256=bmQ7qDtBIbN7wj55OUwcRtRr9fWDSuxYajY1BRnb8Xc,3655
21
21
  isolate/connections/_local/__init__.py,sha256=6FtCKRSFBvTvjm5LNlNA-mieKEq3J7DZZRPcXVedERo,146
22
22
  isolate/connections/_local/_base.py,sha256=qCx2M8kbxuPTruj9kH5z005LU2FaC0BkLxsgY-sXRlg,6214
23
23
  isolate/connections/_local/agent_startup.py,sha256=swCs6Q0yVkDw7w-RftizHSMyJDM7DQwuP3TB0qI1ucg,1552
24
24
  isolate/connections/grpc/__init__.py,sha256=tcesLxlC36P6wSg2lBcO2egsJWMbSKwc8zFXhWac3YU,85
25
25
  isolate/connections/grpc/_base.py,sha256=hfGy_kFjifpK3zHD0_OTqpTF6CTOZH6abNnET4XLwE8,5613
26
- isolate/connections/grpc/agent.py,sha256=D5icvO9zwsXDWB3xvRGSVl5OfkRH37bQ3VZdBdotg9c,7752
26
+ isolate/connections/grpc/agent.py,sha256=xRBfbmsWlOU4U6pBl0g_fhMdRZgVzXoKmi4gKTM3dYQ,7747
27
27
  isolate/connections/grpc/configuration.py,sha256=50YvGGHA9uyKg74xU_gc73j7bsFk973uIpMhmw2HhxY,788
28
28
  isolate/connections/grpc/interface.py,sha256=yt63kytgXRXrTnjePGJVdXz4LJJVSSrNkJCF1yz6FIE,2270
29
29
  isolate/connections/grpc/definitions/__init__.py,sha256=Z0453Bbjoq-Oxm2Wfi9fae-BFf8YsZwmuh88strmvxo,459
@@ -52,9 +52,9 @@ isolate/server/health/health.proto,sha256=wE2_QD0OQAblKkEBG7sALLXEOj1mOLKG-FbC4t
52
52
  isolate/server/health/health_pb2.py,sha256=mCnDq0-frAddHopN_g_LueHddbW-sN5kOfntJDlAvUY,1783
53
53
  isolate/server/health/health_pb2.pyi,sha256=boMRHMlX770EuccQCFTeRgf_KA_VMgW7l9GZIwxvMok,2546
54
54
  isolate/server/health/health_pb2_grpc.py,sha256=JRluct2W4af83OYxwmcCn0vRc78zf04Num0vBApuPEo,4005
55
- isolate-0.12.11.dist-info/LICENSE,sha256=427vuyirL5scgBLqA9UWcdnxKrtSGc0u_JfUupk6lAA,11359
56
- isolate-0.12.11.dist-info/METADATA,sha256=0bXODbgwNbrAgoSXUV41ycHm2jHpCdYn-jD6tGwlne4,3154
57
- isolate-0.12.11.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
58
- isolate-0.12.11.dist-info/entry_points.txt,sha256=XQ_nl-8MR94UnekxbBJRNGlY-lZ_Qh50N4mzwFDdwV8,290
59
- isolate-0.12.11.dist-info/top_level.txt,sha256=W9QJBHcq5WXRkbOXf25bvftzFsOZZN4n1DAatdroZrs,8
60
- isolate-0.12.11.dist-info/RECORD,,
55
+ isolate-0.12.13.dist-info/LICENSE,sha256=427vuyirL5scgBLqA9UWcdnxKrtSGc0u_JfUupk6lAA,11359
56
+ isolate-0.12.13.dist-info/METADATA,sha256=OKOL9Y8v5rY-Fs9zx5HwIDSdpZjRoyyseprthtrEdQs,3154
57
+ isolate-0.12.13.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
58
+ isolate-0.12.13.dist-info/entry_points.txt,sha256=XQ_nl-8MR94UnekxbBJRNGlY-lZ_Qh50N4mzwFDdwV8,290
59
+ isolate-0.12.13.dist-info/top_level.txt,sha256=W9QJBHcq5WXRkbOXf25bvftzFsOZZN4n1DAatdroZrs,8
60
+ isolate-0.12.13.dist-info/RECORD,,