Skip to content

About

Helper functions for solveit dialogs

Resources

Stars

28 stars

Watchers

7 watching

Forks

Latest commit

 

History

724 Commits

Folders and files

Repository files navigation

dialoghelper

Usage

Installation

Install from pypi

$ pip install dialoghelper

Documentation

Documentation can be found hosted on this GitHub repository’s pages.

Dialog identity and filenames

In a gateway kernel, dialoghelper reaches rustygate through a rustygate comm, so it needs no URL or token. Outside one, it sends plain HTTP to RUSTYGATE_URL. Current-session reads, edits and execution use dh_settings['kid'], initialized from RUSTYGATE_KERNEL_ID. The gateway owns the notebook binding, and renames and restarts keep the kernel id. When the gateway renames the notebook, it tells the kernel, which updates its cwd and dh_settings['path']. find_dname() returns the notebook’s current name. Explicit dname arguments name notebooks by path.

Dialog names include .ipynb; find_dname adds it to an input that lacks it, and a trailing slash names a folder instead. Inputs such as lesson.ipynb resolve relative to the current dialog’s folder. A leading slash, as in /project/lesson.ipynb, addresses the gateway root rather than the disk root. find_dname returns gateway-root-relative filenames without a leading slash. list_dialogs retains notebook extensions and marks folders with a trailing slash.

realpath() returns the gateway’s on-disk root. realpath('') and list_dialogs() default to the current notebook’s folder. Relative subpaths use that folder even after a notebook rename, not the kernel’s mutable cwd. A leading slash uses the gateway root. realpath accepts prospective paths without creating them, and works them out in the kernel without a gateway call. .. can move up within the root, and a path that resolves outside it raises ValueError. Notebook-relative paths require a bound kernel.

Folder-local skills

Solveit activates pyskills from the dialog’s opening folder before loading its tool layer. Put a public .py module or package in a _pyskills/ directory there or in an ancestor. Give it a module docstring. list_pyskills() discovers it and ordinary imports load it without an install or entry-point declaration. The nearest local folder wins. Changing cwd or moving a live dialog does not change the selected scope; restart its kernel to use the new location. Function permissions remain separate from discovery.

Development

With the dev extra installed, run pytest -q from the repository root. The integration checks execute a copied Python module in a disposable notebook-bound gateway kernel. They need no Solveit, browser or model access, and do not change existing dialogs or kernels. The source notebooks contain the API explanations and examples.

About

Helper functions for solveit dialogs

Resources

Stars

28 stars

Watchers

7 watching

Forks

Releases

Used by

Contributors

Languages