isolate 0.19.1__tar.gz → 0.20.0__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.

Potentially problematic release.


This version of isolate might be problematic. Click here for more details.

Files changed (86) hide show
  1. {isolate-0.19.1 → isolate-0.20.0}/PKG-INFO +1 -1
  2. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/_isolate_version.py +3 -3
  3. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/_local/_base.py +11 -2
  4. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/common.py +5 -2
  5. {isolate-0.19.1 → isolate-0.20.0}/src/isolate.egg-info/PKG-INFO +1 -1
  6. {isolate-0.19.1 → isolate-0.20.0}/.github/workflows/release.yml +0 -0
  7. {isolate-0.19.1 → isolate-0.20.0}/.github/workflows/test.yml +0 -0
  8. {isolate-0.19.1 → isolate-0.20.0}/.gitignore +0 -0
  9. {isolate-0.19.1 → isolate-0.20.0}/.pre-commit-config.yaml +0 -0
  10. {isolate-0.19.1 → isolate-0.20.0}/LICENSE +0 -0
  11. {isolate-0.19.1 → isolate-0.20.0}/README.md +0 -0
  12. {isolate-0.19.1 → isolate-0.20.0}/pyproject.toml +0 -0
  13. {isolate-0.19.1 → isolate-0.20.0}/setup.cfg +0 -0
  14. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/__init__.py +0 -0
  15. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/_version.py +0 -0
  16. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/backends/__init__.py +0 -0
  17. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/backends/_base.py +0 -0
  18. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/backends/common.py +0 -0
  19. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/backends/conda.py +0 -0
  20. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/backends/container.py +0 -0
  21. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/backends/local.py +0 -0
  22. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/backends/pyenv.py +0 -0
  23. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/backends/remote.py +0 -0
  24. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/backends/settings.py +0 -0
  25. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/backends/virtualenv.py +0 -0
  26. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/common/__init__.py +0 -0
  27. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/common/timestamp.py +0 -0
  28. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/__init__.py +0 -0
  29. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/_local/__init__.py +0 -0
  30. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/_local/agent_startup.py +0 -0
  31. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/__init__.py +0 -0
  32. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/_base.py +0 -0
  33. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/agent.py +0 -0
  34. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/configuration.py +0 -0
  35. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/definitions/__init__.py +0 -0
  36. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/definitions/agent.proto +0 -0
  37. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/definitions/agent_pb2.py +0 -0
  38. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/definitions/agent_pb2.pyi +0 -0
  39. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/definitions/agent_pb2_grpc.py +0 -0
  40. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/definitions/common.proto +0 -0
  41. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/definitions/common_pb2.py +0 -0
  42. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/definitions/common_pb2.pyi +0 -0
  43. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/definitions/common_pb2_grpc.py +0 -0
  44. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/grpc/interface.py +0 -0
  45. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/ipc/__init__.py +0 -0
  46. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/ipc/_base.py +0 -0
  47. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/connections/ipc/agent.py +0 -0
  48. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/logger.py +0 -0
  49. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/logs.py +0 -0
  50. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/py.typed +0 -0
  51. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/registry.py +0 -0
  52. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/__init__.py +0 -0
  53. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/definitions/__init__.py +0 -0
  54. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/definitions/server.proto +0 -0
  55. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/definitions/server_pb2.py +0 -0
  56. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/definitions/server_pb2.pyi +0 -0
  57. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/definitions/server_pb2_grpc.py +0 -0
  58. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/health/__init__.py +0 -0
  59. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/health/health.proto +0 -0
  60. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/health/health_pb2.py +0 -0
  61. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/health/health_pb2.pyi +0 -0
  62. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/health/health_pb2_grpc.py +0 -0
  63. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/health_server.py +0 -0
  64. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/interface.py +0 -0
  65. {isolate-0.19.1 → isolate-0.20.0}/src/isolate/server/server.py +0 -0
  66. {isolate-0.19.1 → isolate-0.20.0}/src/isolate.egg-info/SOURCES.txt +0 -0
  67. {isolate-0.19.1 → isolate-0.20.0}/src/isolate.egg-info/dependency_links.txt +0 -0
  68. {isolate-0.19.1 → isolate-0.20.0}/src/isolate.egg-info/entry_points.txt +0 -0
  69. {isolate-0.19.1 → isolate-0.20.0}/src/isolate.egg-info/requires.txt +0 -0
  70. {isolate-0.19.1 → isolate-0.20.0}/src/isolate.egg-info/top_level.txt +0 -0
  71. {isolate-0.19.1 → isolate-0.20.0}/tests/__init__.py +0 -0
  72. {isolate-0.19.1 → isolate-0.20.0}/tests/conftest.py +0 -0
  73. {isolate-0.19.1 → isolate-0.20.0}/tests/test_backends.py +0 -0
  74. {isolate-0.19.1 → isolate-0.20.0}/tests/test_concurrency.py +0 -0
  75. {isolate-0.19.1 → isolate-0.20.0}/tests/test_connections.py +0 -0
  76. {isolate-0.19.1 → isolate-0.20.0}/tests/test_isolate.py +0 -0
  77. {isolate-0.19.1 → isolate-0.20.0}/tests/test_log.py +0 -0
  78. {isolate-0.19.1 → isolate-0.20.0}/tests/test_logger.py +0 -0
  79. {isolate-0.19.1 → isolate-0.20.0}/tests/test_serialization.py +0 -0
  80. {isolate-0.19.1 → isolate-0.20.0}/tests/test_server.py +0 -0
  81. {isolate-0.19.1 → isolate-0.20.0}/tools/Dockerfile +0 -0
  82. {isolate-0.19.1 → isolate-0.20.0}/tools/agent_requirements.txt +0 -0
  83. {isolate-0.19.1 → isolate-0.20.0}/tools/protobuf-requirements.txt +0 -0
  84. {isolate-0.19.1 → isolate-0.20.0}/tools/regen_grpc.py +0 -0
  85. {isolate-0.19.1 → isolate-0.20.0}/tools/requirements.txt +0 -0
  86. {isolate-0.19.1 → isolate-0.20.0}/tools/test_agent_requirements.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: isolate
3
- Version: 0.19.1
3
+ Version: 0.20.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
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.19.1'
32
- __version_tuple__ = version_tuple = (0, 19, 1)
31
+ __version__ = version = '0.20.0'
32
+ __version_tuple__ = version_tuple = (0, 20, 0)
33
33
 
34
- __commit_id__ = commit_id = 'gffe69f71c'
34
+ __commit_id__ = commit_id = 'g76d64d378'
@@ -16,7 +16,7 @@ from typing import (
16
16
  )
17
17
 
18
18
  from isolate import __version__ as isolate_version
19
- from isolate.backends.common import get_executable_path, logged_io
19
+ from isolate.backends.common import active_python, get_executable_path, logged_io
20
20
  from isolate.connections.common import AGENT_SIGNATURE
21
21
  from isolate.logs import LogLevel, LogSource
22
22
 
@@ -112,7 +112,16 @@ class PythonExecutionBase(Generic[ConnectionType]):
112
112
  """Start the agent process with the Python binary available inside the
113
113
  bound environment."""
114
114
 
115
- python_executable = get_executable_path(self.environment_path, "python")
115
+ python_version = getattr(self.environment, "python_version", active_python())
116
+ try:
117
+ # prefer the specific version if available.
118
+ python_executable = get_executable_path(
119
+ self.environment_path, f"python{python_version}"
120
+ )
121
+ except FileNotFoundError:
122
+ # fallback to the generic binary.
123
+ python_executable = get_executable_path(self.environment_path, "python")
124
+
116
125
  with logged_io(
117
126
  partial(
118
127
  self.handle_agent_log, source=LogSource.USER, level=LogLevel.STDOUT
@@ -9,8 +9,6 @@ from typing import TYPE_CHECKING, Any, Iterator, cast
9
9
  from tblib import Traceback, TracebackParseError
10
10
  from tblib.pickling_support import install as tblib_install
11
11
 
12
- tblib_install()
13
-
14
12
  if TYPE_CHECKING:
15
13
  from typing import Protocol
16
14
 
@@ -30,6 +28,11 @@ class SerializationError(Exception):
30
28
  message: str
31
29
 
32
30
 
31
+ # NOTE: tblib's install() will search for BaseException subclasses,
32
+ # so we have to call it after the SerializationError is defined.
33
+ tblib_install()
34
+
35
+
33
36
  @contextmanager
34
37
  def _step(message: str) -> Iterator[None]:
35
38
  """A context manager to capture every expression
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: isolate
3
- Version: 0.19.1
3
+ Version: 0.20.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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes