async-kernel 0.18.2__tar.gz → 0.18.3__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.18.2 → async_kernel-0.18.3}/CHANGELOG.md +11 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/PKG-INFO +1 -1
- {async_kernel-0.18.2 → async_kernel-0.18.3}/_version.py +2 -2
- async_kernel-0.18.3/src/async_kernel/compat/json.py +67 -0
- async_kernel-0.18.2/src/async_kernel/compat/json.py +0 -45
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.github/dependabot.yaml +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.github/release.yml +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.github/workflows/ci.yml +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.github/workflows/enforce-label.yml +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.github/workflows/new_release.yml +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.github/workflows/pre-commit.yml +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.github/workflows/publish-docs.yml +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.github/workflows/publish-to-pypi.yml +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.gitignore +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.pre-commit-config.yaml +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.vscode/launch.json +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.vscode/settings.json +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/.vscode/spellright.dict +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/CONTRIBUTING.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/IPYTHON_LICENSE +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/LICENSE +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/README.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/cliff.toml +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/about/changelog.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/about/contributing.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/about/index.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/about/license.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/index.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/javascripts/extra.js +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/notebooks/caller.ipynb +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/notebooks/concurrency.ipynb +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/notebooks/custom_kernel.ipynb +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/overrides/main.html +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/asyncshell.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/caller.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/comm.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/command.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/common.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/debugger.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/event_loop.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/index.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/interface.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/kernel.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/kernelspec.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/pending.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/typing.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/reference/utils.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/stylesheets/extra.css +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/thread_safety.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/usage/commands.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/docs/usage/index.md +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/hatch_build.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/mkdocs.yml +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/pyproject.toml +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/__init__.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/__main__.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/asyncshell.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/caller.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/comm.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/command.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/common.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/compiler.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/debugger.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/event_loop/__init__.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/event_loop/asyncio_guest.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/event_loop/qt_host.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/event_loop/run.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/event_loop/tk_host.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/interface/__init__.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/interface/base.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/interface/callable.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/interface/zmq.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/iostream.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/kernel.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/kernelspec.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/pending.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/py.typed +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/resources/logo-32x32.png +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/resources/logo-64x64.png +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/resources/logo-svg.svg +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/typing.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/src/async_kernel/utils.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/__init__.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/conftest.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/references.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_callable_kernel_interface.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_caller.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_comm.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_command.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_common.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_compat.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_debugger.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_enter_kernel.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_event_loop.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_iostream.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_kernel.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_kernel_subclass.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_kernelspec.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_message_spec.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_pending.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_typing.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_utils.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/test_zmq_messaging.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/tests/utils.py +0 -0
- {async_kernel-0.18.2 → async_kernel-0.18.3}/uv.lock +0 -0
|
@@ -5,12 +5,22 @@ 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.18.3] - 2026-05-06
|
|
9
|
+
|
|
10
|
+
### <!-- 1 --> 🚀 Features
|
|
11
|
+
|
|
12
|
+
- Include default argument in pack_json_bytes and pack_json_str. [#456](https://github.com/fleming79/async-kernel/pull/456)
|
|
13
|
+
|
|
8
14
|
## [0.18.2] - 2026-05-03
|
|
9
15
|
|
|
10
16
|
### <!-- 2 --> 🐛 Fixes
|
|
11
17
|
|
|
12
18
|
- Fix Caller.call_later not sleeping correctly. [#454](https://github.com/fleming79/async-kernel/pull/454)
|
|
13
19
|
|
|
20
|
+
### <!-- 6 --> 🌀 Miscellaneous
|
|
21
|
+
|
|
22
|
+
- Prepare for release v0.18.2 [#455](https://github.com/fleming79/async-kernel/pull/455)
|
|
23
|
+
|
|
14
24
|
## [0.18.1] - 2026-04-26
|
|
15
25
|
|
|
16
26
|
### <!-- 2 --> 🐛 Fixes
|
|
@@ -1273,6 +1283,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1273
1283
|
|
|
1274
1284
|
- Bump the actions group across 1 directory with 2 updates [#3](https://github.com/fleming79/async-kernel/pull/3)
|
|
1275
1285
|
|
|
1286
|
+
[0.18.3]: https://github.com/fleming79/async-kernel/compare/v0.18.2..v0.18.3
|
|
1276
1287
|
[0.18.2]: https://github.com/fleming79/async-kernel/compare/v0.18.1..v0.18.2
|
|
1277
1288
|
[0.18.1]: https://github.com/fleming79/async-kernel/compare/v0.18.0..v0.18.1
|
|
1278
1289
|
[0.18.0]: https://github.com/fleming79/async-kernel/compare/v0.17.1..v0.18.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: async-kernel
|
|
3
|
-
Version: 0.18.
|
|
3
|
+
Version: 0.18.3
|
|
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.18.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 18,
|
|
21
|
+
__version__ = version = '0.18.3'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 18, 3)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import importlib.util
|
|
4
|
+
from typing import TYPE_CHECKING, Any
|
|
5
|
+
|
|
6
|
+
__all__ = ["pack_json_bytes", "pack_json_str", "unpack_json"]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from collections.abc import Callable
|
|
11
|
+
|
|
12
|
+
from jupyter_client.jsonutil import json_default
|
|
13
|
+
|
|
14
|
+
def pack_json_bytes(obj: Any, /, default: Callable[[Any], Any] | None = json_default) -> bytes:
|
|
15
|
+
"""
|
|
16
|
+
Pack obj into json serialized bytes.
|
|
17
|
+
|
|
18
|
+
Args:
|
|
19
|
+
data: The data to serialize.
|
|
20
|
+
default: A function that should return a serializable version of obj or raise TypeError.
|
|
21
|
+
"""
|
|
22
|
+
...
|
|
23
|
+
|
|
24
|
+
def pack_json_str(obj: Any, /, default: Callable[[Any], Any] | None = json_default) -> str:
|
|
25
|
+
"""
|
|
26
|
+
Pack obj into json serialized string.
|
|
27
|
+
|
|
28
|
+
Args:
|
|
29
|
+
data: The data to serialize.
|
|
30
|
+
default: A function that should return a serializable version of obj or raise TypeError.
|
|
31
|
+
"""
|
|
32
|
+
...
|
|
33
|
+
|
|
34
|
+
def unpack_json(data: str | bytes, /) -> Any:
|
|
35
|
+
"Deserialize data in a Python object."
|
|
36
|
+
...
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
if importlib.util.find_spec("jupyter_client"):
|
|
40
|
+
import json
|
|
41
|
+
|
|
42
|
+
from jupyter_client.jsonutil import json_default
|
|
43
|
+
|
|
44
|
+
def _jc_pack_bytes(obj: Any, default: Callable[[Any], Any] | None = json_default) -> bytes:
|
|
45
|
+
return json.dumps(obj, default=default).encode()
|
|
46
|
+
|
|
47
|
+
def _jc_pack_str(obj: Any, default: Callable[[Any], Any] | None = json_default) -> str:
|
|
48
|
+
return json.dumps(obj, allow_nan=False, default=default)
|
|
49
|
+
|
|
50
|
+
pack_json_bytes, pack_json_str, unpack_json = _jc_pack_bytes, _jc_pack_str, json.loads
|
|
51
|
+
|
|
52
|
+
else:
|
|
53
|
+
json_default = None # pragma: no cover
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
if importlib.util.find_spec("orjson"):
|
|
57
|
+
import orjson
|
|
58
|
+
|
|
59
|
+
ORJSON_OPTION = orjson.OPT_SERIALIZE_NUMPY | orjson.OPT_NAIVE_UTC | orjson.OPT_UTC_Z
|
|
60
|
+
|
|
61
|
+
def _oj_pack_bytes(obj: Any, default: Callable[[Any], Any] | None = json_default) -> bytes:
|
|
62
|
+
return orjson.dumps(obj, default=default, option=ORJSON_OPTION)
|
|
63
|
+
|
|
64
|
+
def _oj_pack_str(obj: Any, default: Callable[[Any], Any] | None = json_default) -> str:
|
|
65
|
+
return orjson.dumps(obj, default=default, option=ORJSON_OPTION).decode()
|
|
66
|
+
|
|
67
|
+
pack_json_bytes, pack_json_str, unpack_json = _oj_pack_bytes, _oj_pack_str, orjson.loads
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import importlib.util
|
|
4
|
-
from typing import TYPE_CHECKING, Any
|
|
5
|
-
|
|
6
|
-
__all__ = ["pack_json_bytes", "pack_json_str", "unpack_json"]
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
if TYPE_CHECKING:
|
|
10
|
-
from collections.abc import Callable
|
|
11
|
-
|
|
12
|
-
pack_json_bytes: Callable[[Any], bytes]
|
|
13
|
-
pack_json_str: Callable[[Any], str]
|
|
14
|
-
unpack_json: Callable[[str | bytes], Any]
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if importlib.util.find_spec("jupyter_client"):
|
|
18
|
-
import json
|
|
19
|
-
|
|
20
|
-
from jupyter_client.jsonutil import json_default
|
|
21
|
-
|
|
22
|
-
def _jc_pack_bytes(data: Any) -> bytes:
|
|
23
|
-
return json.dumps(data, default=json_default).encode()
|
|
24
|
-
|
|
25
|
-
def _jc_pack_str(data: Any) -> str:
|
|
26
|
-
return json.dumps(data, default=json_default)
|
|
27
|
-
|
|
28
|
-
pack_json_bytes, pack_json_str, unpack_json = _jc_pack_bytes, _jc_pack_str, json.loads
|
|
29
|
-
|
|
30
|
-
else:
|
|
31
|
-
json_default = None # pragma: no cover
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if importlib.util.find_spec("orjson"):
|
|
35
|
-
import orjson
|
|
36
|
-
|
|
37
|
-
ORJSON_OPTION = orjson.OPT_SERIALIZE_NUMPY | orjson.OPT_NAIVE_UTC | orjson.OPT_UTC_Z
|
|
38
|
-
|
|
39
|
-
def _oj_pack_bytes(data) -> bytes:
|
|
40
|
-
return orjson.dumps(data, default=json_default, option=ORJSON_OPTION)
|
|
41
|
-
|
|
42
|
-
def _oj_pack_str(data) -> str:
|
|
43
|
-
return orjson.dumps(data, default=json_default, option=ORJSON_OPTION).decode()
|
|
44
|
-
|
|
45
|
-
pack_json_bytes, pack_json_str, unpack_json = _oj_pack_bytes, _oj_pack_str, orjson.loads
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|