Skip to content

About

Helper functions for solveit dialogs

Resources

Stars

28 stars

Watchers

7 watching

Forks

Latest commit

 

History

732 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

The source notebooks contain the API explanations and examples. Their dialog operations require a disposable Solveit dialog. Rustygate’s suite tests message selection, conversion, import and mutation behavior.

About

Helper functions for solveit dialogs

Resources

Stars

28 stars

Watchers

7 watching

Forks

Releases

Used by

Contributors

Languages