jupywire
Minimal Jupyter protocol commons: wire-format sessions (message construction, HMAC signing, frame serialize/deserialize) and kernel-client call conventions, shared by kernmini, jupygate, jupyasyncclient, and conkernelclient.
What's here
jupywire.session:Session— Jupyter protocol messages: construction, HMAC signing, frame (de)serialization, replay protection — plus the websocket JSON/binary frame helpers (dumps/loads,serialize_binary_message/deserialize_binary_message) andvalidate_string_dict.jupywire.connect:write_connection_file— kernel connection files with random free-port selection, written 0600.jupywire.route:RouterOpsandJmsgQueues— message handling for kernel clients.reply()awaits oneexecute_reply;run()sends at call time and returns an async generator of every message one execute causes (exec_outsis its listified, rendered form), and turns eachon_stdinreturn value into the correctly parentedinput_reply(stdin is disabled when that hook is absent). Everything unmatched goes to the app'son_jmsgcallback, withJmsgQueuesas the pull adapter. A genericrequestsends any named protocol request, withshell/controlsugar and typed verbs (complete,inspect,check,history,comm_msg) on top. The transport suppliesexecute,send, asession, and a read loop feedingroute. DESIGN.md states the full contract;tests/test_route.pyis the conformance suite both clients inherit.jupywire.ops:EvalOps— a mixin giving any kernel client the calling conventions (eval,ipy, theipyfuncsservice methods,retr,eval_expr/user_exprs, and the sync fire-and-forgetxpush/xenv) overreply, which awaits the shell reply, andexecute, which sends without awaiting one.sidecar_=Truetags an evaluation for the persistent sidecar; kernmini creates a missing named subshell on first use. Variable operations default to that serial sidecar lane, while ordinaryevaldefaults to the main shell.
Install
pip install jupywire
Credits
jupywire.session and jupywire.connect are adapted from jupyter_client (jupyter_client.session, jupyter_client.connect, jupyter_client.client), Copyright (c) Jupyter Development Team, distributed under the terms of the Modified BSD License (BSD-3-Clause); see that project's COPYING.md.
The adaptations are trimmed, traitlets-free mirrors that stay wire-compatible. Divergences are noted in each module's docstring.
Release files for jupywire 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jupywire-0.1.9.tar.gz | 24.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jupywire-0.1.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.7 kB
Release files / jupywire-0.1.9.tar.gz
| Download URL | jupywire-0.1.9.tar.gz |
|---|---|
| Size | 24.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f0c0593d2a41ab9502180ca8d07e0ebd4207a86e1f550d1c78e12ac01debd41f
|
|
BLAKE2b-256 checksum How to use checksums |
bb2b42c4f603353c5d775c40ef750d7ac7286fc422fd66c6e90b719a4c46e4fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / jupywire-0.1.9-py3-none-any.whl
| Download URL | jupywire-0.1.9-py3-none-any.whl |
|---|---|
| Size | 19.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4fa1540320cfc1f5e2de0fa046e5c290002271038488ebe8867e2a56ad43182d
|
|
BLAKE2b-256 checksum How to use checksums |
b8a754d0de5a44c7026488e85d7a8861553100bab7e7c82b8060d3c70c35867f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|