clikernel 0.2.16__tar.gz → 0.2.17__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 (23) hide show
  1. {clikernel-0.2.16 → clikernel-0.2.17}/CHANGELOG.md +7 -0
  2. {clikernel-0.2.16/clikernel.egg-info → clikernel-0.2.17}/PKG-INFO +3 -3
  3. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel/__init__.py +1 -1
  4. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel/_modidx.py +1 -1
  5. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel/core.py +5 -3
  6. {clikernel-0.2.16 → clikernel-0.2.17/clikernel.egg-info}/PKG-INFO +3 -3
  7. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel.egg-info/requires.txt +2 -2
  8. {clikernel-0.2.16 → clikernel-0.2.17}/pyproject.toml +2 -2
  9. {clikernel-0.2.16 → clikernel-0.2.17}/LICENSE +0 -0
  10. {clikernel-0.2.16 → clikernel-0.2.17}/MANIFEST.in +0 -0
  11. {clikernel-0.2.16 → clikernel-0.2.17}/README.md +0 -0
  12. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel/cli.py +0 -0
  13. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel/mcp.py +0 -0
  14. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel/rules.py +0 -0
  15. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel/skill.py +0 -0
  16. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel/stream.py +0 -0
  17. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel.egg-info/SOURCES.txt +0 -0
  18. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel.egg-info/dependency_links.txt +0 -0
  19. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel.egg-info/entry_points.txt +0 -0
  20. {clikernel-0.2.16 → clikernel-0.2.17}/clikernel.egg-info/top_level.txt +0 -0
  21. {clikernel-0.2.16 → clikernel-0.2.17}/setup.cfg +0 -0
  22. {clikernel-0.2.16 → clikernel-0.2.17}/tests/test_rules.py +0 -0
  23. {clikernel-0.2.16 → clikernel-0.2.17}/tests/test_stream.py +0 -0
@@ -2,6 +2,13 @@
2
2
 
3
3
  <!-- do not remove -->
4
4
 
5
+ ## 0.2.17
6
+
7
+ ### New Features
8
+
9
+ - Preserve obj.full in Python output metadata via ipymini display hook; rename `_top_level_display` to `_python_display`; bump rustygate, ipymini ([#58](https://github.com/AnswerDotAI/clikernel/issues/58))
10
+
11
+
5
12
  ## 0.2.16
6
13
 
7
14
  ### New Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clikernel
3
- Version: 0.2.16
3
+ Version: 0.2.17
4
4
  Summary: Serve persistent Jupyter kernels to LLMs as concise text, over MCP or a plain stream protocol
5
5
  Author: clikernel contributors
6
6
  License-Expression: Apache-2.0
@@ -15,8 +15,8 @@ Requires-Dist: fastcore>=2.2.2
15
15
  Requires-Dist: jupyasyncclient>=0.2.10
16
16
  Requires-Dist: jupywire>=0.1.9
17
17
  Requires-Dist: mcpmini>=0.0.5
18
- Requires-Dist: rustygate>=0.1.25
19
- Requires-Dist: ipymini>=0.1.23
18
+ Requires-Dist: rustygate>=0.1.27
19
+ Requires-Dist: ipymini>=0.1.26
20
20
  Requires-Dist: httpx
21
21
  Requires-Dist: ipython
22
22
  Provides-Extra: dev
@@ -8,4 +8,4 @@ Modules:
8
8
  - `clikernel.skill`: Use `clikernel` MCP as the default persistent Python workspace for file/notebook reads and edits, exploration, library checks, data reshaping and debugging. Imports and variables carry across calls. Read before writing, running or debugging Python with `clikernel` connected.
9
9
  - `clikernel.stream`: Streaming JSON-lines worker protocol: nbformat-shaped output events, and a supervisor for select-based UIs."""
10
10
 
11
- __version__ = "0.2.16"
11
+ __version__ = "0.2.17"
@@ -23,7 +23,7 @@ d = { 'settings': { 'branch': 'main',
23
23
  'clikernel.core.Gateway.rpc': ('core.html#gateway.rpc', 'clikernel/core.py'),
24
24
  'clikernel.core.Gateway.text': ('core.html#gateway.text', 'clikernel/core.py'),
25
25
  'clikernel.core.Gateway.tools': ('core.html#gateway.tools', 'clikernel/core.py'),
26
- 'clikernel.core._top_level_display': ('core.html#_top_level_display', 'clikernel/core.py'),
26
+ 'clikernel.core._python_display': ('core.html#_python_display', 'clikernel/core.py'),
27
27
  'clikernel.core._with_file': ('core.html#_with_file', 'clikernel/core.py'),
28
28
  'clikernel.core.cfg_dir': ('core.html#cfg_dir', 'clikernel/core.py'),
29
29
  'clikernel.core.default_gateway': ('core.html#default_gateway', 'clikernel/core.py'),
@@ -53,9 +53,11 @@ try: exec(compile({src!r}, __file__, 'exec'))
53
53
  finally: del __file__'''
54
54
 
55
55
  # %% ../nbs/00_core.ipynb #b0dd40c1
56
- def _top_level_display(shell):
57
- "Make `ast_node_interactivity='all'` display top-level expressions only."
56
+ def _python_display(shell):
57
+ "Display top-level expressions and preserve full result metadata."
58
58
  import ast
59
+ from ipymini.term.display import enable_full_metadata
60
+ enable_full_metadata(shell.display_formatter)
59
61
  run = shell.run_ast_nodes
60
62
  async def run_ast_nodes(nodelist, cell_name, interactivity='last_expr', **kwargs):
61
63
  if interactivity != 'all': return await run(nodelist, cell_name, interactivity, **kwargs)
@@ -69,7 +71,7 @@ def _top_level_display(shell):
69
71
  def startup_src(cfgdir=None):
70
72
  "Build Python defaults and user startup, in that order."
71
73
  d = Path(cfgdir) if cfgdir else cfg_dir()
72
- parts = [inspect.getsource(_top_level_display) + '_top_level_display(get_ipython())\ndel _top_level_display']
74
+ parts = [inspect.getsource(_python_display) + '_python_display(get_ipython())\ndel _python_display']
73
75
  if (p := d/'startup.py').exists(): parts.append(_with_file(p.read_text(), p))
74
76
  return '\n'.join(parts)
75
77
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clikernel
3
- Version: 0.2.16
3
+ Version: 0.2.17
4
4
  Summary: Serve persistent Jupyter kernels to LLMs as concise text, over MCP or a plain stream protocol
5
5
  Author: clikernel contributors
6
6
  License-Expression: Apache-2.0
@@ -15,8 +15,8 @@ Requires-Dist: fastcore>=2.2.2
15
15
  Requires-Dist: jupyasyncclient>=0.2.10
16
16
  Requires-Dist: jupywire>=0.1.9
17
17
  Requires-Dist: mcpmini>=0.0.5
18
- Requires-Dist: rustygate>=0.1.25
19
- Requires-Dist: ipymini>=0.1.23
18
+ Requires-Dist: rustygate>=0.1.27
19
+ Requires-Dist: ipymini>=0.1.26
20
20
  Requires-Dist: httpx
21
21
  Requires-Dist: ipython
22
22
  Provides-Extra: dev
@@ -2,8 +2,8 @@ fastcore>=2.2.2
2
2
  jupyasyncclient>=0.2.10
3
3
  jupywire>=0.1.9
4
4
  mcpmini>=0.0.5
5
- rustygate>=0.1.25
6
- ipymini>=0.1.23
5
+ rustygate>=0.1.27
6
+ ipymini>=0.1.26
7
7
  httpx
8
8
  ipython
9
9
 
@@ -20,8 +20,8 @@ dependencies = [
20
20
  "jupyasyncclient>=0.2.10",
21
21
  "jupywire>=0.1.9",
22
22
  "mcpmini>=0.0.5",
23
- "rustygate>=0.1.25",
24
- "ipymini>=0.1.23",
23
+ "rustygate>=0.1.27",
24
+ "ipymini>=0.1.26",
25
25
  "httpx",
26
26
  "ipython",
27
27
  ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes