(aka Jupyter Physical Science Lab Utilities)
Code Repository (Github) | On PyPi
These are utilities used by multiple packages within the Jupyter Physical Science Lab project. It is unlikely that anyone but a developer would have reason to install these independently. They are installed when required by other packages/modules. Currently, API documentation is only available for the python utilities. You will have to look at the hints below and the code to learn more about the javascript utilities.
Note: Most tools in the package are for use with the classic Jupyter
notebook (usually referred to as nbclassic
). Alternative packages are used
to provide the same capabilities in Jupyter Lab and Notebook >7 environments.
- This package mostly provides tools for running javascript operations that impact the notebook. This includes things such as selecting a certain cell, inserting text into an existing cell, or running python code and using the result from javascript. Some custom dialogs for user interaction are also included.
JPSL Tools
menu can be installed as well. The command to activate it from python isJPSLUtils.JPSL_Tools_Menu()
; from javascriptJPSLUtils.createJPSLToolsMenu(); JPSLUtils.init();
. This provides menu access to some of the javascript operations:- Hide cells that are marked as
JPSL.hide_on_print=true
in the cell metadata. This metadata can be set from a menu provided by the jupyter-instructortools package. The meta-data can also be set manually, by editing it in the notebook. - De-hide cells marked as
hide_on_print
in the cell metadata. - Hide/Show input table creation code.
- Hide/Show code marked as hidden. Set using jupyter-instructortools.
- Snippets for initializing some JPSL components and links to their documentation (JupyterPiDAQ, Jupyter Pandas GUI and Algebra with Sympy)
- Hide cells that are marked as
- NOTE: if you wish input table creation code and selected code cells
hidden without the menu being available, then you need to issue the command
OTJS('JPSLUtils.init();')
in python or justJPSLUtils.init();
in javascript.
- 0.7.4 (July X 2024)
- BUG FIX: More checks to avoid JS errors in JLab, while maintaining NBClassic capabilities.
- 0.7.3
- More robust notebook environment detection by reordering of python and javascript calls.
- Removed asynchronous testing for environment.
- Updated docs.
- 0.7.2
- More \n escaping fixes.
- Made notebook environment testing wait asynchronously for JS.
- Now gets JS notebook environment info even when running as a submodule of another module.
- Docs updated to match.
- 0.7.1
- Additional escaping of \n fixes.
- 0.7.0
- Enhancements to latex and string escaping to support JupyterLab and Colab. This breaks jupyter-pandas-GUI <=0.6.2.1.
- Now checks for the environment it is running in (JLab, Colab or
NBClassic) and sets the python variable
JPSLUtils.notebookenv = "NBClassic|colab|None"
.None
probably means JLab. The javascript variableJPSLUtils.env = "NBClassic|JupyterLab|None"
depending upon the environment. - Typo and minor bug fixes.
- 0.6.0
- First pass at python API documentation.
- Python cell actions no longer run when a trusted notebook is opened
(using
OTJS()
). - Reformatted the user name and partner information saved on each initialization.
- 0.5.9
- Switch to using hierarchical menus.
- Now requires JPSLMenus package.
- 0.5.8
- additional insert text and selection utilities
- 0.5.7
- Breaking change: JPSL Tools menu is not automatically activated when
this package is imported. It now must be activated by an explicit call to
JPSLUtils.JPSL_Tools_Menu()
. - Can now have package hide table creation code and selected code cells
without the menu showing. The call is
OTJS('JPSLUtils.init();')
- Breaking change: JPSL Tools menu is not automatically activated when
this package is imported. It now must be activated by an explicit call to
- 0.5.6
- added
hide/show
input table creation code. - added
hide/show
hidden code. - initialization now hides input table creation code.
- initialization now hides code marked for hiding.
- added
- 0.5.5
- added
JPSL Tools
menu to access cell hiding. - record name dialog cannot be cancelled.
- added
- 0.5.4 added cell hiding toggle, which cells to hide chosen with instructor tools.
- 0.5.3 add
select_containing_cell
andinsert_text_at_beginning_of_current_cell
to JS routines. Add python callshavenp()
to check fornumpy as np
andhavepd()
to check forpandas as pd
in user name space. - 0.5.2 Minor bug fixes and updates to README.
- 0.5.1 Introduced "one time Javascript" (
OTJS(...)
) alternative todisplay(JS(...))
. This allows javascript calls from python that will not be run the next time the notebook is opened and trusted. - 0.5.0 Initial release.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Copyright - Jonathan Gutow, 2021, 2022.