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.
Files changed (105) hide show
  1. {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/workflows/ci.yml +1 -1
  2. {async_kernel-0.16.4 → async_kernel-0.17.0}/CHANGELOG.md +15 -0
  3. {async_kernel-0.16.4 → async_kernel-0.17.0}/CONTRIBUTING.md +2 -2
  4. {async_kernel-0.16.4 → async_kernel-0.17.0}/PKG-INFO +1 -1
  5. {async_kernel-0.16.4 → async_kernel-0.17.0}/_version.py +2 -2
  6. async_kernel-0.17.0/docs/notebooks/custom_kernel.ipynb +96 -0
  7. {async_kernel-0.16.4 → async_kernel-0.17.0}/mkdocs.yml +1 -0
  8. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/asyncshell.py +229 -77
  9. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/caller.py +2 -2
  10. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/comm.py +1 -1
  11. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/debugger.py +25 -24
  12. async_kernel-0.17.0/src/async_kernel/interface/base.py +451 -0
  13. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/interface/callable.py +3 -3
  14. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/interface/zmq.py +35 -34
  15. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/kernel.py +24 -314
  16. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/kernelspec.py +14 -11
  17. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/utils.py +1 -1
  18. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/conftest.py +2 -2
  19. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/references.py +1 -1
  20. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_command.py +2 -6
  21. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_enter_kernel.py +4 -4
  22. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_event_loop.py +1 -2
  23. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_kernel.py +27 -25
  24. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_kernel_subclass.py +1 -2
  25. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_kernelspec.py +0 -9
  26. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_message_spec.py +4 -0
  27. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_pending.py +1 -1
  28. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_utils.py +6 -6
  29. async_kernel-0.16.4/src/async_kernel/interface/base.py +0 -255
  30. {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/dependabot.yaml +0 -0
  31. {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/release.yml +0 -0
  32. {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/workflows/enforce-label.yml +0 -0
  33. {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/workflows/new_release.yml +0 -0
  34. {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/workflows/pre-commit.yml +0 -0
  35. {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/workflows/publish-docs.yml +0 -0
  36. {async_kernel-0.16.4 → async_kernel-0.17.0}/.github/workflows/publish-to-pypi.yml +0 -0
  37. {async_kernel-0.16.4 → async_kernel-0.17.0}/.gitignore +0 -0
  38. {async_kernel-0.16.4 → async_kernel-0.17.0}/.pre-commit-config.yaml +0 -0
  39. {async_kernel-0.16.4 → async_kernel-0.17.0}/.vscode/launch.json +0 -0
  40. {async_kernel-0.16.4 → async_kernel-0.17.0}/.vscode/settings.json +0 -0
  41. {async_kernel-0.16.4 → async_kernel-0.17.0}/.vscode/spellright.dict +0 -0
  42. {async_kernel-0.16.4 → async_kernel-0.17.0}/IPYTHON_LICENSE +0 -0
  43. {async_kernel-0.16.4 → async_kernel-0.17.0}/LICENSE +0 -0
  44. {async_kernel-0.16.4 → async_kernel-0.17.0}/README.md +0 -0
  45. {async_kernel-0.16.4 → async_kernel-0.17.0}/cliff.toml +0 -0
  46. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/about/changelog.md +0 -0
  47. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/about/contributing.md +0 -0
  48. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/about/index.md +0 -0
  49. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/about/license.md +0 -0
  50. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/index.md +0 -0
  51. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/javascripts/extra.js +0 -0
  52. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/notebooks/caller.ipynb +0 -0
  53. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/notebooks/concurrency.ipynb +0 -0
  54. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/overrides/main.html +0 -0
  55. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/asyncshell.md +0 -0
  56. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/caller.md +0 -0
  57. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/comm.md +0 -0
  58. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/command.md +0 -0
  59. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/common.md +0 -0
  60. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/debugger.md +0 -0
  61. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/event_loop.md +0 -0
  62. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/index.md +0 -0
  63. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/interface.md +0 -0
  64. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/kernel.md +0 -0
  65. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/kernelspec.md +0 -0
  66. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/pending.md +0 -0
  67. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/typing.md +0 -0
  68. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/reference/utils.md +0 -0
  69. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/stylesheets/extra.css +0 -0
  70. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/thread_safety.md +0 -0
  71. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/usage/commands.md +0 -0
  72. {async_kernel-0.16.4 → async_kernel-0.17.0}/docs/usage/index.md +0 -0
  73. {async_kernel-0.16.4 → async_kernel-0.17.0}/hatch_build.py +0 -0
  74. {async_kernel-0.16.4 → async_kernel-0.17.0}/pyproject.toml +0 -0
  75. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/__init__.py +0 -0
  76. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/__main__.py +0 -0
  77. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/command.py +0 -0
  78. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/common.py +0 -0
  79. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/compat/json.py +0 -0
  80. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/compiler.py +0 -0
  81. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/event_loop/__init__.py +0 -0
  82. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/event_loop/asyncio_guest.py +0 -0
  83. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/event_loop/qt_host.py +0 -0
  84. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/event_loop/run.py +0 -0
  85. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/event_loop/tk_host.py +0 -0
  86. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/interface/__init__.py +0 -0
  87. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/iostream.py +0 -0
  88. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/pending.py +0 -0
  89. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/py.typed +0 -0
  90. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/resources/logo-32x32.png +0 -0
  91. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/resources/logo-64x64.png +0 -0
  92. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/resources/logo-svg.svg +0 -0
  93. {async_kernel-0.16.4 → async_kernel-0.17.0}/src/async_kernel/typing.py +0 -0
  94. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/__init__.py +0 -0
  95. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_callable_kernel_interface.py +0 -0
  96. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_caller.py +0 -0
  97. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_comm.py +0 -0
  98. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_common.py +0 -0
  99. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_compat.py +0 -0
  100. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_debugger.py +0 -0
  101. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_iostream.py +0 -0
  102. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_typing.py +0 -0
  103. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/test_zmq_messaging.py +0 -0
  104. {async_kernel-0.16.4 → async_kernel-0.17.0}/tests/utils.py +0 -0
  105. {async_kernel-0.16.4 → async_kernel-0.17.0}/uv.lock +0 -0
@@ -25,7 +25,7 @@ jobs:
25
25
  - name: Type checking with basedpyright
26
26
  run: |
27
27
  uv sync
28
- uvx basedpyright
28
+ uvx basedpyright@1.39.2
29
29
 
30
30
  test:
31
31
  needs: type-checking
@@ -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
- uv run basedpyright
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
- uv run basedpyright
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.16.4
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.16.4'
22
- __version_tuple__ = version_tuple = (0, 16, 4)
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
+ }
@@ -169,6 +169,7 @@ nav:
169
169
  - "Command line": usage/commands.md
170
170
  - notebooks/concurrency.ipynb
171
171
  - notebooks/caller.ipynb
172
+ - notebooks/custom_kernel.ipynb
172
173
  - Reference:
173
174
  - reference/index.md
174
175
  - "caller": reference/caller.md