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