async-kernel 0.16.4__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.4 → async_kernel-0.17.0}/.github/workflows/ci.yml +1 -1
- {async_kernel-0.16.4 → async_kernel-0.17.0}/CHANGELOG.md +15 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/CONTRIBUTING.md +2 -2
- {async_kernel-0.16.4 → async_kernel-0.17.0}/PKG-INFO +1 -1
- {async_kernel-0.16.4 → 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.4 → async_kernel-0.17.0}/mkdocs.yml +1 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/asyncshell.py +229 -77
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/caller.py +2 -2
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/comm.py +1 -1
- {async_kernel-0.16.4 → 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.4 → async_kernel-0.17.0}/src/async_kernel/interface/callable.py +3 -3
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/interface/zmq.py +35 -34
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/kernel.py +24 -314
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/kernelspec.py +14 -11
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/utils.py +1 -1
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/conftest.py +2 -2
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/references.py +1 -1
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_command.py +2 -6
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_enter_kernel.py +4 -4
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_event_loop.py +1 -2
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_kernel.py +27 -25
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_kernel_subclass.py +1 -2
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_kernelspec.py +0 -9
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_message_spec.py +4 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_pending.py +1 -1
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_utils.py +6 -6
- async_kernel-0.16.4/src/async_kernel/interface/base.py +0 -255
- {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/dependabot.yaml +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/release.yml +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/workflows/enforce-label.yml +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/workflows/new_release.yml +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/workflows/pre-commit.yml +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/workflows/publish-docs.yml +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/workflows/publish-to-pypi.yml +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/.gitignore +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/.pre-commit-config.yaml +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/.vscode/launch.json +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/.vscode/settings.json +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/.vscode/spellright.dict +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/IPYTHON_LICENSE +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/LICENSE +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/README.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/cliff.toml +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/about/changelog.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/about/contributing.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/about/index.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/about/license.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/index.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/javascripts/extra.js +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/notebooks/caller.ipynb +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/notebooks/concurrency.ipynb +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/overrides/main.html +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/asyncshell.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/caller.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/comm.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/command.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/common.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/debugger.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/event_loop.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/index.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/interface.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/kernel.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/kernelspec.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/pending.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/typing.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/utils.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/stylesheets/extra.css +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/thread_safety.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/usage/commands.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/usage/index.md +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/hatch_build.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/pyproject.toml +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/__init__.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/__main__.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/command.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/common.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/compat/json.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/compiler.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/event_loop/__init__.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/event_loop/asyncio_guest.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/event_loop/qt_host.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/event_loop/run.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/event_loop/tk_host.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/interface/__init__.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/iostream.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/pending.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/py.typed +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/resources/logo-32x32.png +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/resources/logo-64x64.png +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/resources/logo-svg.svg +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/typing.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/__init__.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_callable_kernel_interface.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_caller.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_comm.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_common.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_compat.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_debugger.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_iostream.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_typing.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_zmq_messaging.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/utils.py +0 -0
- {async_kernel-0.16.4 → async_kernel-0.17.0}/uv.lock +0 -0
|
@@ -5,12 +5,26 @@ 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
|
+
|
|
8
18
|
## [0.16.4] - 2026-04-15
|
|
9
19
|
|
|
10
20
|
### <!-- 2 --> 🐛 Fixes
|
|
11
21
|
|
|
12
22
|
- Fix PendingGroup mode 0 and add mode 3. [#428](https://github.com/fleming79/async-kernel/pull/428)
|
|
13
23
|
|
|
24
|
+
### <!-- 6 --> 🌀 Miscellaneous
|
|
25
|
+
|
|
26
|
+
- Prepare for release v0.16.4 [#429](https://github.com/fleming79/async-kernel/pull/429)
|
|
27
|
+
|
|
14
28
|
## [0.16.3] - 2026-04-12
|
|
15
29
|
|
|
16
30
|
### <!-- 6 --> 🌀 Miscellaneous
|
|
@@ -1183,6 +1197,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1183
1197
|
|
|
1184
1198
|
- Bump the actions group across 1 directory with 2 updates [#3](https://github.com/fleming79/async-kernel/pull/3)
|
|
1185
1199
|
|
|
1200
|
+
[0.17.0]: https://github.com/fleming79/async-kernel/compare/v0.16.4..v0.17.0
|
|
1186
1201
|
[0.16.4]: https://github.com/fleming79/async-kernel/compare/v0.16.3..v0.16.4
|
|
1187
1202
|
[0.16.3]: https://github.com/fleming79/async-kernel/compare/v0.16.2..v0.16.3
|
|
1188
1203
|
[0.16.2]: https://github.com/fleming79/async-kernel/compare/v0.16.1..v0.16.2
|
|
@@ -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
|
+
}
|