async-kernel 0.16.3__tar.gz → 0.17.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.
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.github/workflows/ci.yml +1 -1
- {async_kernel-0.16.3 → async_kernel-0.17.0}/CHANGELOG.md +24 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/CONTRIBUTING.md +2 -2
- {async_kernel-0.16.3 → async_kernel-0.17.0}/PKG-INFO +1 -1
- {async_kernel-0.16.3 → async_kernel-0.17.0}/_version.py +2 -2
- async_kernel-0.17.0/docs/notebooks/custom_kernel.ipynb +96 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/mkdocs.yml +1 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/asyncshell.py +229 -77
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/caller.py +5 -4
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/comm.py +1 -1
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/debugger.py +25 -24
- async_kernel-0.17.0/src/async_kernel/interface/base.py +451 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/interface/callable.py +3 -3
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/interface/zmq.py +35 -34
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/kernel.py +24 -314
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/kernelspec.py +14 -11
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/pending.py +5 -4
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/utils.py +1 -1
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/conftest.py +2 -2
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/references.py +1 -1
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_command.py +2 -6
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_enter_kernel.py +4 -4
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_event_loop.py +1 -2
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_kernel.py +27 -25
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_kernel_subclass.py +1 -2
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_kernelspec.py +0 -9
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_message_spec.py +4 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_pending.py +16 -2
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_utils.py +6 -6
- async_kernel-0.16.3/src/async_kernel/interface/base.py +0 -255
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.github/dependabot.yaml +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.github/release.yml +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.github/workflows/enforce-label.yml +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.github/workflows/new_release.yml +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.github/workflows/pre-commit.yml +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.github/workflows/publish-docs.yml +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.github/workflows/publish-to-pypi.yml +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.gitignore +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.pre-commit-config.yaml +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.vscode/launch.json +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.vscode/settings.json +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/.vscode/spellright.dict +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/IPYTHON_LICENSE +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/LICENSE +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/README.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/cliff.toml +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/about/changelog.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/about/contributing.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/about/index.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/about/license.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/index.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/javascripts/extra.js +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/notebooks/caller.ipynb +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/notebooks/concurrency.ipynb +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/overrides/main.html +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/asyncshell.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/caller.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/comm.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/command.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/common.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/debugger.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/event_loop.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/index.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/interface.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/kernel.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/kernelspec.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/pending.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/typing.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/reference/utils.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/stylesheets/extra.css +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/thread_safety.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/usage/commands.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/docs/usage/index.md +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/hatch_build.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/pyproject.toml +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/__init__.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/__main__.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/command.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/common.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/compat/json.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/compiler.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/event_loop/__init__.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/event_loop/asyncio_guest.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/event_loop/qt_host.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/event_loop/run.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/event_loop/tk_host.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/interface/__init__.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/iostream.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/py.typed +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/resources/logo-32x32.png +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/resources/logo-64x64.png +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/resources/logo-svg.svg +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/src/async_kernel/typing.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/__init__.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_callable_kernel_interface.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_caller.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_comm.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_common.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_compat.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_debugger.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_iostream.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_typing.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/test_zmq_messaging.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/tests/utils.py +0 -0
- {async_kernel-0.16.3 → async_kernel-0.17.0}/uv.lock +0 -0
|
@@ -5,10 +5,32 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.17.0] - 2026-04-20
|
|
9
|
+
|
|
10
|
+
### <!-- 0 --> 🏗️ Breaking changes
|
|
11
|
+
|
|
12
|
+
- Transfer methods from Kernel to interface [#432](https://github.com/fleming79/async-kernel/pull/432)
|
|
13
|
+
|
|
14
|
+
- Improve kernelspec to simplify creating kernelspecs for virtual environments. [#431](https://github.com/fleming79/async-kernel/pull/431)
|
|
15
|
+
|
|
16
|
+
- Make AsyncInteractiveShell and AsyncInteractiveSubshell easier to subclass. [#430](https://github.com/fleming79/async-kernel/pull/430)
|
|
17
|
+
|
|
18
|
+
## [0.16.4] - 2026-04-15
|
|
19
|
+
|
|
20
|
+
### <!-- 2 --> 🐛 Fixes
|
|
21
|
+
|
|
22
|
+
- Fix PendingGroup mode 0 and add mode 3. [#428](https://github.com/fleming79/async-kernel/pull/428)
|
|
23
|
+
|
|
24
|
+
### <!-- 6 --> 🌀 Miscellaneous
|
|
25
|
+
|
|
26
|
+
- Prepare for release v0.16.4 [#429](https://github.com/fleming79/async-kernel/pull/429)
|
|
27
|
+
|
|
8
28
|
## [0.16.3] - 2026-04-12
|
|
9
29
|
|
|
10
30
|
### <!-- 6 --> 🌀 Miscellaneous
|
|
11
31
|
|
|
32
|
+
- Prepare for release v0.16.3 [#427](https://github.com/fleming79/async-kernel/pull/427)
|
|
33
|
+
|
|
12
34
|
- Run comm_open and com_close message handlers in the shell thread. [#426](https://github.com/fleming79/async-kernel/pull/426)
|
|
13
35
|
|
|
14
36
|
## [0.16.2] - 2026-04-12
|
|
@@ -1175,6 +1197,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1175
1197
|
|
|
1176
1198
|
- Bump the actions group across 1 directory with 2 updates [#3](https://github.com/fleming79/async-kernel/pull/3)
|
|
1177
1199
|
|
|
1200
|
+
[0.17.0]: https://github.com/fleming79/async-kernel/compare/v0.16.4..v0.17.0
|
|
1201
|
+
[0.16.4]: https://github.com/fleming79/async-kernel/compare/v0.16.3..v0.16.4
|
|
1178
1202
|
[0.16.3]: https://github.com/fleming79/async-kernel/compare/v0.16.2..v0.16.3
|
|
1179
1203
|
[0.16.2]: https://github.com/fleming79/async-kernel/compare/v0.16.1..v0.16.2
|
|
1180
1204
|
[0.16.1]: https://github.com/fleming79/async-kernel/compare/v0.16.0..v0.16.1
|
|
@@ -78,7 +78,7 @@ using [basedpyright](https://docs.basedpyright.com/). Other type checkers might
|
|
|
78
78
|
in the future.
|
|
79
79
|
|
|
80
80
|
```bash
|
|
81
|
-
|
|
81
|
+
uvx basedpyright
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
### Update packages
|
|
@@ -198,7 +198,7 @@ You can run tests locally to see if there is anything that might be caught by CI
|
|
|
198
198
|
```bash
|
|
199
199
|
uvx prek run -a
|
|
200
200
|
uv run pytest -vv --cov --cov-fail-under=100
|
|
201
|
-
|
|
201
|
+
uvx basedpyright
|
|
202
202
|
uv run mkdocs build -s
|
|
203
203
|
```
|
|
204
204
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: async-kernel
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.17.0
|
|
4
4
|
Summary: A concurrent python kernel for Jupyter supporting AnyIO, AsyncIO and Trio.
|
|
5
5
|
Project-URL: Homepage, https://fleming79.github.io/async-kernel
|
|
6
6
|
Project-URL: Documentation, https://fleming79.github.io/async-kernel
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.
|
|
22
|
-
__version_tuple__ = version_tuple = (0,
|
|
21
|
+
__version__ = version = '0.17.0'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 17, 0)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "markdown",
|
|
5
|
+
"id": "0",
|
|
6
|
+
"metadata": {},
|
|
7
|
+
"source": [
|
|
8
|
+
"# Define custom kernels (notebook)\n",
|
|
9
|
+
"\n",
|
|
10
|
+
"- [Using a uv virtual environment](#uv-managed-virtual-environment)"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"cell_type": "markdown",
|
|
15
|
+
"id": "1",
|
|
16
|
+
"metadata": {},
|
|
17
|
+
"source": [
|
|
18
|
+
"## uv managed virtual environment\n",
|
|
19
|
+
"\n",
|
|
20
|
+
"We can use uv to create a virtual environment for different versions of Python.\n",
|
|
21
|
+
"\n",
|
|
22
|
+
"Let's create a new virtual environment in the folder named \".venv_py315\" using uv."
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"cell_type": "code",
|
|
27
|
+
"execution_count": null,
|
|
28
|
+
"id": "2",
|
|
29
|
+
"metadata": {},
|
|
30
|
+
"outputs": [],
|
|
31
|
+
"source": [
|
|
32
|
+
"%uv venv .venv_py315 --python 3.15\n",
|
|
33
|
+
"%uv pip install --directory .venv_py315 --python 3.15 async-kernel"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"cell_type": "markdown",
|
|
38
|
+
"id": "3",
|
|
39
|
+
"metadata": {},
|
|
40
|
+
"source": [
|
|
41
|
+
"Now we can write a kernel spec that uses uv to start the kernel from the virtual environment."
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"cell_type": "code",
|
|
46
|
+
"execution_count": null,
|
|
47
|
+
"id": "4",
|
|
48
|
+
"metadata": {},
|
|
49
|
+
"outputs": [],
|
|
50
|
+
"source": [
|
|
51
|
+
"import pathlib\n",
|
|
52
|
+
"\n",
|
|
53
|
+
"from async_kernel.kernelspec import write_kernel_spec\n",
|
|
54
|
+
"\n",
|
|
55
|
+
"uv_path = pathlib.Path.cwd().joinpath(\".venv_py315\")\n",
|
|
56
|
+
"assert uv_path.exists()\n",
|
|
57
|
+
"\n",
|
|
58
|
+
"write_kernel_spec(\n",
|
|
59
|
+
" kernel_name=\"async-kernel-315\",\n",
|
|
60
|
+
" display_name=\"Python 3.15 (async kernel)\",\n",
|
|
61
|
+
" env={\"UV_PROJECT_ENVIRONMENT\": uv_path.as_posix()},\n",
|
|
62
|
+
" executable=(\"uv\", \"run\", \"python\", \"-m\"),\n",
|
|
63
|
+
")"
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"cell_type": "markdown",
|
|
68
|
+
"id": "5",
|
|
69
|
+
"metadata": {},
|
|
70
|
+
"source": [
|
|
71
|
+
"The kernel spec with the display name \"Python 3.15 (async kernel)\" has been added."
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"metadata": {
|
|
76
|
+
"kernelspec": {
|
|
77
|
+
"display_name": "Python (async)",
|
|
78
|
+
"language": "python",
|
|
79
|
+
"name": "async"
|
|
80
|
+
},
|
|
81
|
+
"language_info": {
|
|
82
|
+
"codemirror_mode": {
|
|
83
|
+
"name": "ipython",
|
|
84
|
+
"version": 3
|
|
85
|
+
},
|
|
86
|
+
"file_extension": ".py",
|
|
87
|
+
"mimetype": "text/x-python",
|
|
88
|
+
"name": "python",
|
|
89
|
+
"nbconvert_exporter": "python",
|
|
90
|
+
"pygments_lexer": "ipython3",
|
|
91
|
+
"version": "3.13.12"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"nbformat": 4,
|
|
95
|
+
"nbformat_minor": 5
|
|
96
|
+
}
|