conkernelclient 0.0.18__tar.gz → 0.0.19__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.
- {conkernelclient-0.0.18/conkernelclient.egg-info → conkernelclient-0.0.19}/PKG-INFO +1 -1
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/conkernelclient/__init__.py +1 -1
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/conkernelclient/_modidx.py +2 -0
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/conkernelclient/core.py +3 -0
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/conkernelclient/ops.py +7 -3
- {conkernelclient-0.0.18 → conkernelclient-0.0.19/conkernelclient.egg-info}/PKG-INFO +1 -1
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/tests/test_races.py +1 -2
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/LICENSE +0 -0
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/MANIFEST.in +0 -0
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/README.md +0 -0
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/conkernelclient.egg-info/SOURCES.txt +0 -0
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/conkernelclient.egg-info/dependency_links.txt +0 -0
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/conkernelclient.egg-info/entry_points.txt +0 -0
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/conkernelclient.egg-info/requires.txt +0 -0
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/conkernelclient.egg-info/top_level.txt +0 -0
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/pyproject.toml +0 -0
- {conkernelclient-0.0.18 → conkernelclient-0.0.19}/setup.cfg +0 -0
|
@@ -27,6 +27,8 @@ d = { 'settings': { 'branch': 'main',
|
|
|
27
27
|
'conkernelclient.core.ConKernelClient.wait_for_ready': ( 'core.html#conkernelclient.wait_for_ready',
|
|
28
28
|
'conkernelclient/core.py'),
|
|
29
29
|
'conkernelclient.core.ConKernelManager': ('core.html#conkernelmanager', 'conkernelclient/core.py'),
|
|
30
|
+
'conkernelclient.core.ConKernelManager.__init__': ( 'core.html#conkernelmanager.__init__',
|
|
31
|
+
'conkernelclient/core.py'),
|
|
30
32
|
'conkernelclient.core.ConKernelManager._transport_encryption_default': ( 'core.html#conkernelmanager._transport_encryption_default',
|
|
31
33
|
'conkernelclient/core.py'),
|
|
32
34
|
'conkernelclient.core.DeadKernelError': ('core.html#deadkernelerror', 'conkernelclient/core.py'),
|
|
@@ -186,5 +186,8 @@ async def astop_channels(self:ConKernelClient):
|
|
|
186
186
|
# %% ../nbs/00_core.ipynb #b828c222
|
|
187
187
|
class ConKernelManager(AsyncKernelManager):
|
|
188
188
|
client_class,client_factory = ConKernelClient,Type(ConKernelClient)
|
|
189
|
+
def __init__(self, *args, kernel_spec=None, **kwargs):
|
|
190
|
+
super().__init__(*args, **kwargs)
|
|
191
|
+
if kernel_spec is not None: self._kernel_spec = kernel_spec
|
|
189
192
|
@default('transport_encryption')
|
|
190
193
|
def _transport_encryption_default(self): return 'auto'
|
|
@@ -14,6 +14,7 @@ from fastcore.ansi import strip_ansi
|
|
|
14
14
|
from fastcore.nbio import msgs2outs, preferred_out
|
|
15
15
|
from .core import ConKernelClient, ConKernelManager, DeadKernelError
|
|
16
16
|
from jupywire.ops import parent_id, iopub_msgs, output_types
|
|
17
|
+
from jupyter_client.kernelspec import KernelSpec
|
|
17
18
|
_all_ = ['parent_id', 'iopub_msgs', 'output_types']
|
|
18
19
|
from contextlib import asynccontextmanager
|
|
19
20
|
from ast import literal_eval
|
|
@@ -202,12 +203,15 @@ async def interrupt(self:ConKernelClient, timeout=5):
|
|
|
202
203
|
# %% ../nbs/01_ops.ipynb #edaf42c9
|
|
203
204
|
@asynccontextmanager
|
|
204
205
|
async def run_kernel(
|
|
205
|
-
kernel_name='python3', # Kernelspec name to launch
|
|
206
|
+
kernel_name='python3', # Kernelspec name to launch, or display name when `argv` is given
|
|
207
|
+
argv=None, # Kernel argv; bypasses kernelspec discovery when provided
|
|
206
208
|
manager_cls=ConKernelManager, # Manager class, e.g. a subclass customizing launch
|
|
207
209
|
**kwargs # Passed to `start_kernel` (e.g. `env`, `cwd`)
|
|
208
210
|
):
|
|
209
|
-
"Start a kernel,
|
|
210
|
-
|
|
211
|
+
"Start a named or direct-argv kernel, yielding `(km, kc)`, and always shut it down"
|
|
212
|
+
manager_kwargs = dict(kernel_name=kernel_name)
|
|
213
|
+
if argv is not None: manager_kwargs['kernel_spec'] = KernelSpec(argv=argv, display_name=kernel_name)
|
|
214
|
+
km = manager_cls(**manager_kwargs)
|
|
211
215
|
await km.start_kernel(**kwargs)
|
|
212
216
|
kc = await km.client().start_channels()
|
|
213
217
|
try: yield km, kc
|
|
@@ -37,11 +37,10 @@ class LockedClient(ConKernelClient):
|
|
|
37
37
|
class LockedKernelManager(ConKernelManager):
|
|
38
38
|
client_class,client_factory = LockedClient,Type(LockedClient)
|
|
39
39
|
|
|
40
|
-
|
|
41
40
|
def test_burst_replies_under_send_jitter():
|
|
42
41
|
"20 pending replies at once, every send jittered: the reader must route each reply to its waiter."
|
|
43
42
|
async def _run():
|
|
44
|
-
async with run_kernel(
|
|
43
|
+
async with run_kernel("ipymini", ["ipymini", "-f", "{connection_file}"], manager_cls=LockedKernelManager) as (km, kc):
|
|
45
44
|
reps = [kc.execute(f"x{i} = {i}; x{i}", reply=True, timeout=30) for i in range(20)]
|
|
46
45
|
for i, r in enumerate(await asyncio.gather(*reps)): assert r["content"]["status"] == "ok", (i, r["content"])
|
|
47
46
|
asyncio.run(_run())
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{conkernelclient-0.0.18 → conkernelclient-0.0.19}/conkernelclient.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|