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

isolate/__init__.py CHANGED
@@ -1 +1,3 @@
1
1
  from isolate.registry import prepare_environment # noqa: F401
2
+
3
+ from ._version import __version__, version_tuple # noqa: F401
@@ -0,0 +1,16 @@
1
+ # file generated by setuptools_scm
2
+ # don't change, don't track in version control
3
+ TYPE_CHECKING = False
4
+ if TYPE_CHECKING:
5
+ from typing import Tuple, Union
6
+ VERSION_TUPLE = Tuple[Union[int, str], ...]
7
+ else:
8
+ VERSION_TUPLE = object
9
+
10
+ version: str
11
+ __version__: str
12
+ __version_tuple__: VERSION_TUPLE
13
+ version_tuple: VERSION_TUPLE
14
+
15
+ __version__ = version = '0.12.10'
16
+ __version_tuple__ = version_tuple = (0, 12, 10)
isolate/_version.py ADDED
@@ -0,0 +1,6 @@
1
+ try:
2
+ from ._isolate_version import version as __version__ # type: ignore[import]
3
+ from ._isolate_version import version_tuple # type: ignore[import]
4
+ except ImportError:
5
+ __version__ = "UNKNOWN"
6
+ version_tuple = (0, 0, __version__) # type: ignore[assignment]
isolate/backends/_base.py CHANGED
@@ -73,13 +73,14 @@ class BaseEnvironment(Generic[ConnectionKeyType]):
73
73
  def open_connection(
74
74
  self, connection_key: ConnectionKeyType
75
75
  ) -> EnvironmentConnection:
76
- """Return a new connection to the environment with using the `connection_key`."""
76
+ """Return a new connection to the environment with using the
77
+ `connection_key`."""
77
78
  raise NotImplementedError
78
79
 
79
80
  @contextmanager
80
81
  def connect(self) -> Iterator[EnvironmentConnection]:
81
- """Create the given environment (if it already doesn't exist) and establish a connection
82
- to it."""
82
+ """Create the given environment (if it already doesn't exist) and establish a
83
+ connection to it."""
83
84
  connection_key = self.create()
84
85
  with self.open_connection(connection_key) as connection:
85
86
  yield connection
@@ -246,10 +246,10 @@ def get_executable(command: str, home: str | None = None) -> Path:
246
246
  binary_path = shutil.which(command, path=path)
247
247
  if binary_path is not None:
248
248
  return Path(binary_path)
249
- else:
250
- # TODO: we should probably show some instructions on how you
251
- # can install conda here.
252
- raise FileNotFoundError(
253
- f"Could not find the {command} executable. If the {command} executable is not available by default, please point isolate "
254
- f" to the path where the {command} binary is available '{home}'."
255
- )
249
+ # TODO: we should probably show some instructions on how you
250
+ # can install conda here.
251
+ raise FileNotFoundError(
252
+ f"Could not find the {command} executable. "
253
+ f"If the {command} executable is not available by default, please point "
254
+ f"isolate to the path where the {command} binary is available '{home}'."
255
+ )
isolate/backends/conda.py CHANGED
@@ -161,7 +161,7 @@ class CondaEnvironment(BaseEnvironment[Path]):
161
161
  def _run_create(self, env_path: str, env_name: str) -> None:
162
162
  if self._exec_command == "conda":
163
163
  self._run_conda(
164
- "env", "create", "--force", "--prefix", env_path, "-f", env_name
164
+ "env", "create", "--yes", "--prefix", env_path, "-f", env_name
165
165
  )
166
166
  else:
167
167
  self._run_conda("env", "create", "--prefix", env_path, "-f", env_name)
@@ -212,5 +212,4 @@ def _depends_on(
212
212
  continue
213
213
 
214
214
  return True
215
- else:
216
- return False
215
+ return False
isolate/backends/pyenv.py CHANGED
@@ -43,8 +43,9 @@ class PyenvEnvironment(BaseEnvironment[Path]):
43
43
  pyenv = _get_pyenv_executable()
44
44
  env_path = self.settings.cache_dir_for(self)
45
45
  with self.settings.cache_lock_for(env_path):
46
- # PyEnv installs* the Python versions under $root/versions/$version, where we
47
- # use versions/$version as the key and $root as the base directory (for pyenv).
46
+ # PyEnv installs* the Python versions under $root/versions/$version, where
47
+ # we use versions/$version as the key and $root as the base directory
48
+ # (for pyenv).
48
49
  #
49
50
  # [0]: https://github.com/pyenv/pyenv#locating-pyenv-provided-python-installations
50
51
  pyenv_root = env_path.parent.parent
@@ -126,15 +127,17 @@ def _get_pyenv_executable() -> Path:
126
127
  if _PYENV_EXECUTABLE_PATH:
127
128
  if not os.path.exists(_PYENV_EXECUTABLE_PATH):
128
129
  raise EnvironmentCreationError(
129
- f"Path to pyenv executable not found! ISOLATE_PYENV_EXECUTABLE variable: {_PYENV_EXECUTABLE_PATH!r}"
130
+ "Path to pyenv executable not found! ISOLATE_PYENV_EXECUTABLE "
131
+ f"variable: {_PYENV_EXECUTABLE_PATH!r}"
130
132
  )
131
133
  return Path(_PYENV_EXECUTABLE_PATH)
132
134
 
133
135
  pyenv_path = shutil.which(_PYENV_EXECUTABLE_NAME)
134
136
  if pyenv_path is None:
135
137
  raise FileNotFoundError(
136
- "Could not find the pyenv executable. If pyenv is not already installed in your system, please"
137
- "install it first. If it is not in your PATH, then point ISOLATE_PYENV_COMMAND to the absolute path of the"
138
+ "Could not find the pyenv executable. If pyenv is not already installed "
139
+ "in your system, please install it first. If it is not in your PATH, "
140
+ "then point ISOLATE_PYENV_COMMAND to the absolute path of the "
138
141
  "pyenv executable."
139
142
  )
140
143
  return Path(pyenv_path)
@@ -51,8 +51,9 @@ class IsolateServer(BaseEnvironment[List[EnvironmentDefinition]]):
51
51
  def create(self, *, force: bool = False) -> list[EnvironmentDefinition]:
52
52
  if force is True:
53
53
  raise NotImplementedError(
54
- "Only individual environments can be forcibly created, please set them up"
55
- " manually by using the 'force_create' flag on the environment definition."
54
+ "Only individual environments can be forcibly created, please set "
55
+ "them up manually by using the 'force_create' flag on the "
56
+ "environment definition."
56
57
  )
57
58
 
58
59
  envs = []
@@ -49,8 +49,8 @@ class GRPCExecutionBase(EnvironmentConnection):
49
49
  channel_status.result(timeout=max_wait_timeout)
50
50
  except grpc.FutureTimeoutError:
51
51
  raise AgentError(
52
- f"Couldn't connect to the gRPC server in the agent (listening at {address}) "
53
- "in time."
52
+ "Couldn't connect to the gRPC server in the agent "
53
+ f"(listening at {address}) in time."
54
54
  )
55
55
  stub = definitions.AgentStub(channel)
56
56
  stub._channel = channel # type: ignore
@@ -69,15 +69,16 @@ class GRPCExecutionBase(EnvironmentConnection):
69
69
  # ---------
70
70
  # 1. [controller]: Spawn the agent.
71
71
  # 2. [agent]: Start listening at the given address.
72
- # 3. [controller]: Await *at most* max_wait_timeout seconds for the agent to be available
73
- # if it doesn't do it until then, raise an AgentError.
74
- # 4. [controller]: If the server is available, then establish the bridge and pass the
75
- # 'function' as the input.
72
+ # 3. [controller]: Await *at most* max_wait_timeout seconds for the agent to
73
+ # be available if it doesn't do it until then,
74
+ # raise an AgentError.
75
+ # 4. [controller]: If the server is available, then establish the bridge and
76
+ # pass the 'function' as the input.
76
77
  # 5. [agent]: Receive the function, deserialize it, start the execution.
77
- # 6. [controller]: Watch agent for logs (stdout/stderr), and as soon as they appear
78
- # call the log handler.
79
- # 7. [agent]: Once the execution of the function is finished, send the result
80
- # using the same serialization method.
78
+ # 6. [controller]: Watch agent for logs (stdout/stderr), and as soon as they
79
+ # appear call the log handler.
80
+ # 7. [agent]: Once the execution of the function is finished, send the
81
+ # result using the same serialization method.
81
82
  # 8. [controller]: Receive the result back and return it.
82
83
 
83
84
  method = self.environment.settings.serialization_method
@@ -106,7 +107,8 @@ class GRPCExecutionBase(EnvironmentConnection):
106
107
  return cast(CallResultType, from_grpc(partial_result.result))
107
108
 
108
109
  raise AgentError(
109
- "No result object was received from the agent (it never set is_complete to True)."
110
+ "No result object was received from the agent "
111
+ "(it never set is_complete to True)."
110
112
  )
111
113
 
112
114
 
@@ -101,7 +101,8 @@ class AgentServicer(definitions.AgentServicer):
101
101
  ) -> Generator[definitions.PartialRunResult, None, Any]:
102
102
  if function.was_it_raised:
103
103
  raise AbortException(
104
- f"The {function_kind} function must be callable, not a raised exception."
104
+ f"The {function_kind} function must be callable, "
105
+ "not a raised exception."
105
106
  )
106
107
 
107
108
  try:
@@ -113,7 +114,8 @@ class AgentServicer(definitions.AgentServicer):
113
114
 
114
115
  if not callable(function):
115
116
  raise AbortException(
116
- f"The {function_kind} function must be callable, not {type(function).__name__}."
117
+ f"The {function_kind} function must be callable, "
118
+ f"not {type(function).__name__}."
117
119
  )
118
120
 
119
121
  yield from self.log(f"Starting the execution of the {function_kind} function.")
@@ -146,7 +148,8 @@ class AgentServicer(definitions.AgentServicer):
146
148
  stringized_tb, source=LogSource.USER, level=LogLevel.STDERR
147
149
  )
148
150
  raise AbortException(
149
- f"Error while serializing the execution result (object of type {type(result)})."
151
+ "Error while serializing the execution result "
152
+ f"(object of type {type(result)})."
150
153
  )
151
154
  except BaseException:
152
155
  yield from self.log(traceback.format_exc(), level=LogLevel.ERROR)
@@ -111,10 +111,12 @@ class IsolatedProcessConnection(EnvironmentConnection):
111
111
  # 4. [controller]: Accept the incoming connection request
112
112
  # 5. [controller]: Send the executable over the established bridge
113
113
  # 6. [agent]: Receive the executable from the bridge
114
- # 7. [agent]: Execute the executable and once done send the result back
115
- # 8. [controller]: Loop until either the isolated process exits or sends any
116
- # data (will be interpreted as a tuple of two mutually exclusive
117
- # objects, either a result object or an exception to be raised).
114
+ # 7. [agent]: Execute the executable and once done send the result
115
+ # back
116
+ # 8. [controller]: Loop until either the isolated process exits or sends
117
+ # any data (will be interpreted as a tuple of two
118
+ # mutually exclusive objects, either a result object or
119
+ # an exception to be raised).
118
120
  #
119
121
 
120
122
  self.log("Starting the controller bridge.")
@@ -161,7 +161,10 @@ def main() -> int:
161
161
  assert not options.with_pdb, "--with-pdb can't be used in the debug mode"
162
162
  message = "=" * 60
163
163
  message += "\n" * 3
164
- message += "Debug mode successfully activated. You can start your debugging session with the following command:\n"
164
+ message += (
165
+ "Debug mode successfully activated. "
166
+ "You can start your debugging session with the following command:\n"
167
+ )
165
168
  message += (
166
169
  f" $ {_get_shell_bootstrap()}\\\n "
167
170
  f"{sys.executable} {os.path.abspath(__file__)} "
isolate/logs.py CHANGED
@@ -8,7 +8,6 @@ from functools import total_ordering
8
8
  from pathlib import Path
9
9
  from typing import TYPE_CHECKING
10
10
 
11
-
12
11
  if TYPE_CHECKING:
13
12
  from isolate.backends import BaseEnvironment
14
13
 
@@ -2,7 +2,10 @@ from isolate.server.health.health_pb2 import ( # noqa: F401
2
2
  HealthCheckRequest,
3
3
  HealthCheckResponse,
4
4
  )
5
- from isolate.server.health.health_pb2_grpc import HealthServicer, HealthStub # noqa: F401
5
+ from isolate.server.health.health_pb2_grpc import ( # noqa: F401
6
+ HealthServicer,
7
+ HealthStub,
8
+ )
6
9
  from isolate.server.health.health_pb2_grpc import ( # noqa: F401
7
10
  add_HealthServicer_to_server as register_health,
8
11
  )
isolate/server/server.py CHANGED
@@ -31,14 +31,14 @@ from isolate.server import definitions, health
31
31
  from isolate.server.health_server import HealthServicer
32
32
  from isolate.server.interface import from_grpc, to_grpc
33
33
 
34
- EMPTY_MESSAGE_INTERVAL = float(os.getenv("ISOLATE_EMPTY_MESSAGE_INTERVAL", 600))
35
- MAX_GRPC_WAIT_TIMEOUT = float(os.getenv("ISOLATE_MAX_GRPC_WAIT_TIMEOUT", 10.0))
34
+ EMPTY_MESSAGE_INTERVAL = float(os.getenv("ISOLATE_EMPTY_MESSAGE_INTERVAL", "600"))
35
+ MAX_GRPC_WAIT_TIMEOUT = float(os.getenv("ISOLATE_MAX_GRPC_WAIT_TIMEOUT", "10.0"))
36
36
 
37
37
  # Whether to inherit all the packages from the current environment or not.
38
38
  INHERIT_FROM_LOCAL = os.getenv("ISOLATE_INHERIT_FROM_LOCAL") == "1"
39
39
 
40
40
  # Number of threads that the gRPC server will use.
41
- MAX_THREADS = int(os.getenv("MAX_THREADS", 5))
41
+ MAX_THREADS = int(os.getenv("MAX_THREADS", "5"))
42
42
  _AGENT_REQUIREMENTS_TXT = os.getenv("AGENT_REQUIREMENTS_TXT")
43
43
 
44
44
  if _AGENT_REQUIREMENTS_TXT is not None:
@@ -296,8 +296,9 @@ class IsolateServicer(definitions.IsolateServicer):
296
296
  def watch_queue_until_completed(
297
297
  self, queue: Queue, is_completed: Callable[[], bool]
298
298
  ) -> Iterator[definitions.PartialRunResult]:
299
- """Watch the given queue until the is_completed function returns True. Note that even
300
- if the function is completed, this function might not finish until the queue is empty.
299
+ """Watch the given queue until the is_completed function returns True.
300
+ Note that even if the function is completed, this function might not
301
+ finish until the queue is empty.
301
302
  """
302
303
 
303
304
  timer = time.monotonic()
@@ -1,28 +1,29 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: isolate
3
- Version: 0.12.8
3
+ Version: 0.12.10
4
4
  Summary: Managed isolated environments for Python
5
- Home-page: https://github.com/fal-ai/isolate
6
- Author: Features & Labels
7
- Author-email: hello@fal.ai
8
- Requires-Python: >=3.8,<4.0
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: Programming Language :: Python :: 3.8
11
- Classifier: Programming Language :: Python :: 3.9
12
- Classifier: Programming Language :: Python :: 3.10
13
- Classifier: Programming Language :: Python :: 3.11
14
- Provides-Extra: build
15
- Provides-Extra: grpc
16
- Provides-Extra: server
17
- Requires-Dist: PyYAML (>=6.0) ; extra == "build"
18
- Requires-Dist: grpcio (>=1.49)
19
- Requires-Dist: importlib-metadata (>=4.4) ; python_version < "3.10"
20
- Requires-Dist: platformdirs
21
- Requires-Dist: protobuf
22
- Requires-Dist: tblib (>=1.7.0)
23
- Requires-Dist: virtualenv (>=20.4) ; extra == "build"
24
- Project-URL: Repository, https://github.com/fal-ai/isolate
5
+ Author-email: Features & Labels <hello@fal.ai>
6
+ Project-URL: Issues, https://github.com/fal-ai/isolate/issues
7
+ Project-URL: Source, https://github.com/fal-ai/isolate
8
+ Requires-Python: >=3.8
25
9
  Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: grpcio >=1.49
12
+ Requires-Dist: protobuf
13
+ Requires-Dist: tblib >=1.7.0
14
+ Requires-Dist: platformdirs
15
+ Requires-Dist: importlib-metadata >=4.4 ; python_version < "3.10"
16
+ Provides-Extra: build
17
+ Requires-Dist: virtualenv >=20.4 ; extra == 'build'
18
+ Requires-Dist: PyYAML >=6.0 ; extra == 'build'
19
+ Provides-Extra: dev
20
+ Requires-Dist: isolate[test] ; extra == 'dev'
21
+ Provides-Extra: test
22
+ Requires-Dist: isolate[build] ; extra == 'test'
23
+ Requires-Dist: pytest ; extra == 'test'
24
+ Requires-Dist: cloudpickle >=2.2.0 ; extra == 'test'
25
+ Requires-Dist: dill >=0.3.5.1 ; extra == 'test'
26
+ Requires-Dist: pytest-rerunfailures ; extra == 'test'
26
27
 
27
28
  # Isolate
28
29
 
@@ -59,3 +60,27 @@ different) and can change it without any loss. Isolate is working towards a futu
59
60
  transititon is as seamless as the transition from your local environment to the remote
60
61
  environment.
61
62
 
63
+ ## Contributing
64
+
65
+ ### Installing in editable mode with dev dependencies
66
+
67
+ ```
68
+ pip install -e '.[dev]'
69
+ ```
70
+
71
+ ### Running tests
72
+
73
+ ```
74
+ pytest
75
+ ```
76
+
77
+ ### Pre-commit
78
+
79
+ ```
80
+ pre-commit install
81
+ ```
82
+
83
+ ### Commit format
84
+
85
+ Please follow [conventional commits specification](https://www.conventionalcommits.org/) for descriptions/messages.
86
+
@@ -1,24 +1,30 @@
1
- isolate/__init__.py,sha256=HoGrQYpnc5f7JD5rKfvX6IJ0NY3TwycIqfg4v62VGx0,63
1
+ isolate/__init__.py,sha256=uXOKnONs7sXgARNgElwr4_A1sKoA6ACHVEvs3IDiX1M,127
2
+ isolate/_isolate_version.py,sha256=Om9hPRJB2__MW_DID1BZ7fctfkaGCBE8WYnj8YLN7MQ,415
3
+ isolate/_version.py,sha256=05pXvy-yr5t3I1m9JMn42Ilzpg7fa8IB2J8a3G7t1cU,274
4
+ isolate/logs.py,sha256=R_AHUVYD18z_PhtK_mDWi9Gch79CxmwHY09hUDShtwg,2079
5
+ isolate/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ isolate/registry.py,sha256=hpzv4HI7iihG5I7i5r8Pb257ibhEKY18xQcG-w1-BgI,1590
2
7
  isolate/backends/__init__.py,sha256=LLrSM7UnDFW8tIT5oYlE1wVJrxKcaj_v7cFwvTjQTlc,119
3
- isolate/backends/_base.py,sha256=F_eZzeGcebsf5ihhziO7HvV8h47hZB074GgeCJ5gIN0,4104
4
- isolate/backends/common.py,sha256=_pGqANUY_FPdlgQeWIoQeKS7pW45w18-VB3-PyyiFgc,8344
5
- isolate/backends/conda.py,sha256=LoTr2Dqg5woRCDO7WyZop_DUM76vRaxebkTSFV-Lnbk,7662
8
+ isolate/backends/_base.py,sha256=Kt5pkhDzXZblq4vxaM3DQTo-Bj-7pIRZFlqJR7OfejY,4112
9
+ isolate/backends/common.py,sha256=ZiU0Vkz78qaPH_3ThV28OcHi8QgXie4aBrkPXCJuNBM,8321
10
+ isolate/backends/conda.py,sha256=OIQrpt_VffW2PjPOIzp-JvonW4e7rDQ1ASHOEjyzD8E,7646
6
11
  isolate/backends/local.py,sha256=woxe4dmXuEHxWKsGNndoRA1_sP6yG-dg6tlFZni0mZc,1360
7
- isolate/backends/pyenv.py,sha256=XwFTcfQfPcMVI5NGFydMKN3qEY4LoxV2YIeGvOq9G_c,5378
8
- isolate/backends/remote.py,sha256=4oBQZvXz5Gf7ZwIeLf1oV6VijFcPhyqktbrES9w_c1w,4215
12
+ isolate/backends/pyenv.py,sha256=G-OIwESUOU5TqqumwsKVUhRiFQzxB1xrPn-bGm4LQoI,5428
13
+ isolate/backends/remote.py,sha256=qUm54mpqk0kaEfbPZl962Td3_P3qcpyVcfGdKfmkJHs,4234
9
14
  isolate/backends/settings.py,sha256=AiPYpzeon_AHS3ewSIKc0TMF4XrNdM32EFvgSTH2odE,3291
10
15
  isolate/backends/virtualenv.py,sha256=DiBAiybOLWMxJobIRaH4AgDn9agY5VrVPaSQObQa1Lo,6989
11
16
  isolate/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
17
  isolate/common/timestamp.py,sha256=seh7FrMRH4i1SCQavA8d-7z8qi0pP8lYYhd29gTPMwE,367
13
18
  isolate/connections/__init__.py,sha256=oa0PNo7ZQ0StPIDvKnJ02_CNVMyfOhxJ3M1C0VMvj9c,627
19
+ isolate/connections/common.py,sha256=PAfBGKZNUdtFlZQlw3_nQaUCKQXTnEkxzNNRV_i4R2A,3498
14
20
  isolate/connections/_local/__init__.py,sha256=6FtCKRSFBvTvjm5LNlNA-mieKEq3J7DZZRPcXVedERo,146
15
21
  isolate/connections/_local/_base.py,sha256=qCx2M8kbxuPTruj9kH5z005LU2FaC0BkLxsgY-sXRlg,6214
16
22
  isolate/connections/_local/agent_startup.py,sha256=swCs6Q0yVkDw7w-RftizHSMyJDM7DQwuP3TB0qI1ucg,1552
17
- isolate/connections/common.py,sha256=PAfBGKZNUdtFlZQlw3_nQaUCKQXTnEkxzNNRV_i4R2A,3498
18
23
  isolate/connections/grpc/__init__.py,sha256=tcesLxlC36P6wSg2lBcO2egsJWMbSKwc8zFXhWac3YU,85
19
- isolate/connections/grpc/_base.py,sha256=6pmCCQk9U1IXgVQga4QFMfx2fubVSx0JP5QZFa0RCRU,5515
20
- isolate/connections/grpc/agent.py,sha256=e1z1FpKfrYVRI3nI3seuQfStNMZ00sgMDX33Zddx3rE,7639
24
+ isolate/connections/grpc/_base.py,sha256=8C1qnEZghPk4GYBlh0rjbtlx8FYB7gNvioG9re1OMD8,5558
25
+ isolate/connections/grpc/agent.py,sha256=hruNnFAFY4LGmIZ6EQ0OyK0OxP0-eoI8ZM-AaOVN_c0,7697
21
26
  isolate/connections/grpc/configuration.py,sha256=50YvGGHA9uyKg74xU_gc73j7bsFk973uIpMhmw2HhxY,788
27
+ isolate/connections/grpc/interface.py,sha256=yt63kytgXRXrTnjePGJVdXz4LJJVSSrNkJCF1yz6FIE,2270
22
28
  isolate/connections/grpc/definitions/__init__.py,sha256=Z0453Bbjoq-Oxm2Wfi9fae-BFf8YsZwmuh88strmvxo,459
23
29
  isolate/connections/grpc/definitions/agent.proto,sha256=Hx11hHc8PKwhWzyasViLeq7JL33KsRex2-iibfWruTw,568
24
30
  isolate/connections/grpc/definitions/agent_pb2.py,sha256=FeK2Pivl6WFdK0HhV7O_0CIopACJ3vbcXYszWeA-hwA,1344
@@ -28,29 +34,26 @@ isolate/connections/grpc/definitions/common.proto,sha256=4W1upvDIPezNj-Ab6FVNa-7
28
34
  isolate/connections/grpc/definitions/common_pb2.py,sha256=kU4hYQ04B2LNcjCjXb9m1ukb8wWVXLuASsANvXQZFbE,2344
29
35
  isolate/connections/grpc/definitions/common_pb2.pyi,sha256=J624Xc1Fp91ZFF8zdjJk1KCHNfHc2gRY8i3Aj1ofzKo,6887
30
36
  isolate/connections/grpc/definitions/common_pb2_grpc.py,sha256=xYOs94SXiNYAlFodACnsXW5QovLsHY5tCk3p76RH5Zc,158
31
- isolate/connections/grpc/interface.py,sha256=yt63kytgXRXrTnjePGJVdXz4LJJVSSrNkJCF1yz6FIE,2270
32
37
  isolate/connections/ipc/__init__.py,sha256=j2Mbsph2mRhAWmkMyrtPOz0VG-e75h1OOZLwzs6pXUo,131
33
- isolate/connections/ipc/_base.py,sha256=8yV_x1JWvO1s4xeHs6pQuUckkJXsgZnp0x3NxawqkWs,8430
34
- isolate/connections/ipc/agent.py,sha256=MJg_zedphWWmPUY7k2MsgYHQZ_EaIq8VFALOzf4vLII,6789
35
- isolate/logs.py,sha256=crqCg1PLoFbeNx-GS7v9cw3C9PL59SUXAi_qTyLSHNg,2080
36
- isolate/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- isolate/registry.py,sha256=hpzv4HI7iihG5I7i5r8Pb257ibhEKY18xQcG-w1-BgI,1590
38
+ isolate/connections/ipc/_base.py,sha256=iXCcgRU0c1Q0FDfm9nXVvjGwi-_6nCgkQZPATFaSu7Q,8494
39
+ isolate/connections/ipc/agent.py,sha256=Wcoi5nA5RPPCll60sih9nTnFtM1JXM2QEUfSbjZUgjs,6828
38
40
  isolate/server/__init__.py,sha256=7R3GuWmxuqe0q28rVqETJN9OCrP_-Svjv9h0NR1GFL0,79
41
+ isolate/server/health_server.py,sha256=yN7F1Q28DdX8-Zk3gef7XcQEE25XwlHwzV5GBM75aQM,1249
42
+ isolate/server/interface.py,sha256=nGbjdxrN0p9m1LNdeds8NIoJOwPYW2NM6ktmbhfG4_s,687
43
+ isolate/server/server.py,sha256=x8e6q-soR8UQC4KLUT9wa4AE3IjZi9Ia_VmOEtZEiDo,13608
39
44
  isolate/server/definitions/__init__.py,sha256=f_Q3pdjMuZrjgNlbM60btFKiB1Vg8cnVyKEbp0RmU0A,572
40
45
  isolate/server/definitions/server.proto,sha256=08wnvXkK-Kco6OQaUkwm__dYSNvgOFhHO1GWRDT6y_Y,731
41
46
  isolate/server/definitions/server_pb2.py,sha256=fSH9U5UeTHUj8cQo9JIW5ie2Pr-0ATtm5pLL-MteaCA,1825
42
47
  isolate/server/definitions/server_pb2.pyi,sha256=JaI_Xd72MIyhb0pYvLBjJxpckS8Rhg9ZKbziauRQXkE,3306
43
48
  isolate/server/definitions/server_pb2_grpc.py,sha256=MsnTuwgwQM1Hw7S234DOABv9s2trf0TaVib4jh4u_6c,2548
44
- isolate/server/health/__init__.py,sha256=tBnYfJMdDPIAwzfAjuY7B9rOTsObowurHd7ZytW3pIw,324
49
+ isolate/server/health/__init__.py,sha256=sy349GRK2YGX9KFKqDxM-jdYtBpMXjZu1QwBkjn0SsM,337
45
50
  isolate/server/health/health.proto,sha256=wE2_QD0OQAblKkEBG7sALLXEOj1mOLKG-FbC4tFopWE,455
46
51
  isolate/server/health/health_pb2.py,sha256=mCnDq0-frAddHopN_g_LueHddbW-sN5kOfntJDlAvUY,1783
47
52
  isolate/server/health/health_pb2.pyi,sha256=boMRHMlX770EuccQCFTeRgf_KA_VMgW7l9GZIwxvMok,2546
48
53
  isolate/server/health/health_pb2_grpc.py,sha256=JRluct2W4af83OYxwmcCn0vRc78zf04Num0vBApuPEo,4005
49
- isolate/server/health_server.py,sha256=yN7F1Q28DdX8-Zk3gef7XcQEE25XwlHwzV5GBM75aQM,1249
50
- isolate/server/interface.py,sha256=nGbjdxrN0p9m1LNdeds8NIoJOwPYW2NM6ktmbhfG4_s,687
51
- isolate/server/server.py,sha256=b5bsgVmZ7cfHy6QQXq7q3AGBIqO8W74rdWsbfqHCNGg,13594
52
- isolate-0.12.8.dist-info/LICENSE,sha256=427vuyirL5scgBLqA9UWcdnxKrtSGc0u_JfUupk6lAA,11359
53
- isolate-0.12.8.dist-info/METADATA,sha256=DwSs12t8jGvdZoAzzTji7NeSYK4SLjx_2dTxMZURL78,2783
54
- isolate-0.12.8.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
55
- isolate-0.12.8.dist-info/entry_points.txt,sha256=QXWwDC7bzMidCWvv7WrIKvlWneFKA21c3SDMVvgHpT4,281
56
- isolate-0.12.8.dist-info/RECORD,,
54
+ isolate-0.12.10.dist-info/LICENSE,sha256=427vuyirL5scgBLqA9UWcdnxKrtSGc0u_JfUupk6lAA,11359
55
+ isolate-0.12.10.dist-info/METADATA,sha256=sdC289Ww0s_nxczKphg7VvPaBA01W7Xf2b8XN7v_ubE,3154
56
+ isolate-0.12.10.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
57
+ isolate-0.12.10.dist-info/entry_points.txt,sha256=XQ_nl-8MR94UnekxbBJRNGlY-lZ_Qh50N4mzwFDdwV8,290
58
+ isolate-0.12.10.dist-info/top_level.txt,sha256=W9QJBHcq5WXRkbOXf25bvftzFsOZZN4n1DAatdroZrs,8
59
+ isolate-0.12.10.dist-info/RECORD,,
@@ -1,4 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.5.2
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
+
@@ -0,0 +1,6 @@
1
+ [isolate.backends]
2
+ conda = isolate.backends.conda:CondaEnvironment
3
+ isolate-server = isolate.backends.remote:IsolateServer
4
+ local = isolate.backends.local:LocalPythonEnvironment
5
+ pyenv = isolate.backends.pyenv:PyenvEnvironment
6
+ virtualenv = isolate.backends.virtualenv:VirtualPythonEnvironment
@@ -0,0 +1 @@
1
+ isolate
@@ -1,7 +0,0 @@
1
- [isolate.backends]
2
- conda=isolate.backends.conda:CondaEnvironment
3
- isolate-server=isolate.backends.remote:IsolateServer
4
- local=isolate.backends.local:LocalPythonEnvironment
5
- pyenv=isolate.backends.pyenv:PyenvEnvironment
6
- virtualenv=isolate.backends.virtualenv:VirtualPythonEnvironment
7
-