diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..e69de29b diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..b7056e74 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "python.defaultInterpreterPath": "${workspaceFolder}/Resources/WPy64-3720/python-3.7.2.amd64/python.exe", + "editor.fontSize": 16, + "editor.fontWeight": "700", + "autoDocstring.docstringFormat": "sphinx" +} \ No newline at end of file diff --git a/Orchestrator/ControlPanel/CP_VersionCheck.py b/Orchestrator/ControlPanel/CP_VersionCheck.py index 6b05a7fd..5ea6ae6a 100644 --- a/Orchestrator/ControlPanel/CP_VersionCheck.py +++ b/Orchestrator/ControlPanel/CP_VersionCheck.py @@ -35,4 +35,14 @@ def SettingsUpdate(inGSettings): #Add RobotRDPActive in control panel inGSettings["ControlPanelDict"]["RobotList"].append({"RenderFunction": ControlPanelRenderDict, "KeyStr": "VersionCheck"}) + #Orchestrator.Managers.ControlPanel(inControlPanelNameStr="TestTTT",inRefreshHTMLJinja2TemplatePathStr="ControlPanel\\test.html", inJinja2TemplateRefreshBool = True) + lProcess = Orchestrator.Managers.ProcessInitSafe(inAgentHostNameStr="IVANMASLOV-DESKTOP",inAgentUserNameStr="ND", + inProcessNameWOExeStr="notepad",inStartCMDStr="notepad",inStopSafeTimeoutSecFloat=3) + # Some test + #lProcess.ScheduleStatusCheckEverySeconds(inIntervalSecondsInt=5) + #Orchestrator.OrchestratorScheduleGet().every(2).seconds.do(Orchestrator.OrchestratorThreadStart, + # lProcess.StartCheck) + #Orchestrator.OrchestratorScheduleGet().every(5).seconds.do(Orchestrator.OrchestratorThreadStart,lProcess.StatusCheckStart) + #lProcess.Start() + lGit = Orchestrator.Managers.Git(inAgentHostNameStr="IVANMASLOV-DESKTOP",inAgentUserNameStr="ND",inGitPathStr="") return inGSettings \ No newline at end of file diff --git a/Orchestrator/OrchestratorSettings.py b/Orchestrator/OrchestratorSettings.py index 05a19629..fccaf7dd 100644 --- a/Orchestrator/OrchestratorSettings.py +++ b/Orchestrator/OrchestratorSettings.py @@ -13,7 +13,7 @@ from pyOpenRPA import Orchestrator # Import orchestrator main if not Orchestrator.OrchestratorIsAdmin(): Orchestrator.OrchestratorRerunAsAdmin() print(f"Orchestrator will be run as administrator!") -elif __name__ == "__main__": # New init way - allow run as module -m PyOpenRPA.Orchestrator +else: gSettings = Orchestrator.GSettingsGet() #gSettings = SettingsTemplate.Create(inModeStr="BASIC") # Create GSettings with basic configuration - no more config is available from the box - you can create own @@ -32,6 +32,4 @@ elif __name__ == "__main__": # New init way - allow run as module -m PyOpenRPA.O lPyModules = Orchestrator.OrchestratorPySearchInit(inGlobPatternStr="ControlPanel\\CP_*.py", inDefStr="SettingsUpdate", inDefArgNameGSettingsStr="inGSettings") # Call the orchestrator def Orchestrator.Orchestrator(inGSettings=gSettings, inDumpRestoreBool=False) -else: - print("!WARNING! Current orchestrator settings do not support old type of the Orchestrator start. Use new Orchestrator type start (see v1.2.0)") diff --git a/Orchestrator/Sandbox/.ipynb_checkpoints/Orchestrator-checkpoint.ipynb b/Orchestrator/Sandbox/.ipynb_checkpoints/Orchestrator-checkpoint.ipynb new file mode 100644 index 00000000..9ff4ee31 --- /dev/null +++ b/Orchestrator/Sandbox/.ipynb_checkpoints/Orchestrator-checkpoint.ipynb @@ -0,0 +1,139 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Start orchestrator from the jupyter (sandbox)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "# Set cwd to the orc wd\n", + "os.chdir(\"..\")\n", + "# %%capture # Use it if you want to toggle off output\n", + "import OrchestratorSettings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Get module alias (use it for test)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "Orchestrator = sys.modules[\"pyOpenRPA.Orchestrator\"]\n", + "Managers = sys.modules[\"pyOpenRPA.Orchestrator.Managers\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Orchestrator.OSCredentialsVerify(inUserStr=\"ND\",inPasswordStr=\"deluxe\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Managers.Git.BranchRevGet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.2" + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Orchestrator/Sandbox/JupyterNBExtensionActivate.cmd b/Orchestrator/Sandbox/JupyterNBExtensionActivate.cmd new file mode 100644 index 00000000..0d6d0c91 --- /dev/null +++ b/Orchestrator/Sandbox/JupyterNBExtensionActivate.cmd @@ -0,0 +1,6 @@ +cd %~dp0..\..\Resources\WPy64-3720\python-3.7.2.amd64 +python -m pip install jupyter_contrib_nbextensions +python -m jupyter contrib nbextension install --user +python -m pip install jupyter_nbextensions_configurator +python -m jupyter nbextensions_configurator enable --user +pause>nul \ No newline at end of file diff --git a/Orchestrator/Sandbox/JupyterStart.cmd b/Orchestrator/Sandbox/JupyterStart.cmd new file mode 100644 index 00000000..8c797051 --- /dev/null +++ b/Orchestrator/Sandbox/JupyterStart.cmd @@ -0,0 +1,5 @@ +cd %~dp0..\..\Resources\WPy64-3720\python-3.7.2.amd64 +taskkill /im "pyOpenRPA_Orchestrator.exe" /F /fi "username eq %username%" +copy /Y python.exe pyOpenRPA_Orchestrator.exe +pyOpenRPA_Orchestrator -m notebook --notebook-dir=%~dp0 +pause>nul \ No newline at end of file diff --git a/Orchestrator/Sandbox/JupyterStartShortcut.cmd.lnk b/Orchestrator/Sandbox/JupyterStartShortcut.cmd.lnk new file mode 100644 index 00000000..847ff0d6 Binary files /dev/null and b/Orchestrator/Sandbox/JupyterStartShortcut.cmd.lnk differ diff --git a/Orchestrator/Sandbox/Orchestrator.ipynb b/Orchestrator/Sandbox/Orchestrator.ipynb new file mode 100644 index 00000000..9ff4ee31 --- /dev/null +++ b/Orchestrator/Sandbox/Orchestrator.ipynb @@ -0,0 +1,139 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Start orchestrator from the jupyter (sandbox)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "# Set cwd to the orc wd\n", + "os.chdir(\"..\")\n", + "# %%capture # Use it if you want to toggle off output\n", + "import OrchestratorSettings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Get module alias (use it for test)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "Orchestrator = sys.modules[\"pyOpenRPA.Orchestrator\"]\n", + "Managers = sys.modules[\"pyOpenRPA.Orchestrator.Managers\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Orchestrator.OSCredentialsVerify(inUserStr=\"ND\",inPasswordStr=\"deluxe\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Managers.Git.BranchRevGet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.2" + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/DESCRIPTION.rst b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/DESCRIPTION.rst new file mode 100644 index 00000000..3b035412 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/DESCRIPTION.rst @@ -0,0 +1,9 @@ + +Common utilities for jupyter-contrib projects. Includes: + +- providing a notebook-4.2-compatible nbextension API in order to + smooth over differences in versions 4.0 and 4.1 +- common application components and cli scripts +- utility classes and functions for use in tests + + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/INSTALLER b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/METADATA b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/METADATA new file mode 100644 index 00000000..b86b1686 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/METADATA @@ -0,0 +1,39 @@ +Metadata-Version: 2.0 +Name: jupyter-contrib-core +Version: 0.3.3 +Summary: Common utilities for jupyter-contrib projects. +Home-page: https://github.com/jupyter-contrib/jupyter_contrib_core +Author: jcb91, jupyter-contrib developers +Author-email: joshuacookebarnes@gmail.com +License: BSD 3-clause +Download-URL: https://github.com/jupyter-contrib/jupyter_contrib_core/tarball/0.3.3 +Keywords: Jupyter,notebook +Platform: any +Classifier: Intended Audience :: End Users/Desktop +Classifier: Intended Audience :: Science/Research +Classifier: License :: OSI Approved :: BSD License +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: JavaScript +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Topic :: Utilities +Requires-Dist: jupyter-core +Requires-Dist: notebook (>=4.0) +Requires-Dist: setuptools +Requires-Dist: tornado +Requires-Dist: traitlets +Provides-Extra: testing_utils +Requires-Dist: nose; extra == 'testing_utils' +Provides-Extra: testing_utils +Requires-Dist: mock; python_version == "2.7" and extra == 'testing_utils' + + +Common utilities for jupyter-contrib projects. Includes: + +- providing a notebook-4.2-compatible nbextension API in order to + smooth over differences in versions 4.0 and 4.1 +- common application components and cli scripts +- utility classes and functions for use in tests + + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/RECORD b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/RECORD new file mode 100644 index 00000000..d7d9001b --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/RECORD @@ -0,0 +1,31 @@ +../../Scripts/jupyter-contrib.exe,sha256=-6s17Egr-Etw6fFD3GtbkqEwMaEcCXTCjw8qhXObg48,106407 +jupyter_contrib_core-0.3.3.data/scripts/jupyter-contrib,sha256=VllNFlWWlrXr9K8g-CbYdRQTQCL-ylZn5AJbcckebjo,134 +jupyter_contrib_core-0.3.3.dist-info/DESCRIPTION.rst,sha256=KX4THekyqTPLMOwGfbLVKTgBZDUvVUb6APowYhc9ZFM,282 +jupyter_contrib_core-0.3.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +jupyter_contrib_core-0.3.3.dist-info/METADATA,sha256=fvyzBikN5C9iEtzMYkSVdKbWbCRTrWCf9BdSvOiDejs,1423 +jupyter_contrib_core-0.3.3.dist-info/RECORD,, +jupyter_contrib_core-0.3.3.dist-info/WHEEL,sha256=o2k-Qa-RMNIJmUdIc7KU6VWR_ErNRbWNlxDIpl7lm34,110 +jupyter_contrib_core-0.3.3.dist-info/entry_points.txt,sha256=MM-_RRnZ_TwNV5p1TlapKEyuibXEO2N2NZicC4hqBmE,75 +jupyter_contrib_core-0.3.3.dist-info/metadata.json,sha256=PMHs8MzdJqL3FDsEsx2ZJW6B2ItF1j5MLvud3D9Ex9k,1468 +jupyter_contrib_core-0.3.3.dist-info/top_level.txt,sha256=XamZbTnwOf-_DyoTTO8Sje0rOqForNrP0qhd9I8MIe4,21 +jupyter_contrib_core-0.3.3.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 +jupyter_contrib_core/__init__.py,sha256=eK1JD1qgGZMNu4w8jOXGpXjbedjNl1dO5kFAb03x4BM,202 +jupyter_contrib_core/__pycache__/__init__.cpython-37.pyc,, +jupyter_contrib_core/__pycache__/application.cpython-37.pyc,, +jupyter_contrib_core/application.py,sha256=BuPFJWS-QqiPwqGSsdhBhVn-yJCan2J00aDsWzUXJLM,1960 +jupyter_contrib_core/notebook_compat/__init__.py,sha256=Z2Fx-dPVJx4TUm1UJjc7-S2lAAiCPh4wJKKioZu9q5c,406 +jupyter_contrib_core/notebook_compat/__pycache__/__init__.cpython-37.pyc,, +jupyter_contrib_core/notebook_compat/__pycache__/nbextensions.cpython-37.pyc,, +jupyter_contrib_core/notebook_compat/__pycache__/serverextensions.cpython-37.pyc,, +jupyter_contrib_core/notebook_compat/_compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +jupyter_contrib_core/notebook_compat/_compat/__pycache__/__init__.cpython-37.pyc,, +jupyter_contrib_core/notebook_compat/_compat/__pycache__/nbextensions.cpython-37.pyc,, +jupyter_contrib_core/notebook_compat/_compat/__pycache__/serverextensions.cpython-37.pyc,, +jupyter_contrib_core/notebook_compat/_compat/nbextensions.py,sha256=ExvzxtDUrr2WRpGTpBiAi3AOza7DuQzxb7k8MuQK-lg,18161 +jupyter_contrib_core/notebook_compat/_compat/serverextensions.py,sha256=b3cxfOf7YKeys6uNqzapYXVHBVOmWRU7rJnajRGNqio,8220 +jupyter_contrib_core/notebook_compat/nbextensions.py,sha256=fS8_-7jz4TjVXwnq9K9sfT5hLTEAfzaedfJZGIC3ML8,2695 +jupyter_contrib_core/notebook_compat/serverextensions.py,sha256=4yI2NUvmJx1Npi8pPLpkjyBzpO3cTSs2n8JD1WW-djY,812 +jupyter_contrib_core/testing_utils/__init__.py,sha256=5gxV2KL15tBOGk6B_Hv0PupRJ76VrlCE3U8GVIDSeSc,5482 +jupyter_contrib_core/testing_utils/__pycache__/__init__.cpython-37.pyc,, +jupyter_contrib_core/testing_utils/__pycache__/jupyter_env.cpython-37.pyc,, +jupyter_contrib_core/testing_utils/jupyter_env.py,sha256=q7b5sEd7bPAeOWFWav77QkT0vhDjWNrKyR0O_l4Sin0,3126 diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/WHEEL b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/WHEEL new file mode 100644 index 00000000..8b6dd1b5 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.29.0) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/entry_points.txt b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/entry_points.txt new file mode 100644 index 00000000..7b7b5a1d --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +jupyter-contrib = jupyter_contrib_core.application:main + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/metadata.json b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/metadata.json new file mode 100644 index 00000000..f4f27a0e --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/metadata.json @@ -0,0 +1 @@ +{"classifiers": ["Intended Audience :: End Users/Desktop", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: JavaScript", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Utilities"], "download_url": "https://github.com/jupyter-contrib/jupyter_contrib_core/tarball/0.3.3", "extensions": {"python.commands": {"wrap_console": {"jupyter-contrib": "jupyter_contrib_core.application:main"}}, "python.details": {"contacts": [{"email": "joshuacookebarnes@gmail.com", "name": "jcb91, jupyter-contrib developers", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://github.com/jupyter-contrib/jupyter_contrib_core"}}, "python.exports": {"console_scripts": {"jupyter-contrib": "jupyter_contrib_core.application:main"}}}, "extras": ["testing_utils"], "generator": "bdist_wheel (0.29.0)", "keywords": ["Jupyter", "notebook"], "license": "BSD 3-clause", "metadata_version": "2.0", "name": "jupyter-contrib-core", "platform": "any", "run_requires": [{"requires": ["jupyter-core", "notebook (>=4.0)", "setuptools", "tornado", "traitlets"]}, {"extra": "testing_utils", "requires": ["nose"]}, {"environment": "python_version == \"2.7\"", "extra": "testing_utils", "requires": ["mock"]}], "summary": "Common utilities for jupyter-contrib projects.", "version": "0.3.3"} \ No newline at end of file diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/top_level.txt b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/top_level.txt new file mode 100644 index 00000000..7b320b6a --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/top_level.txt @@ -0,0 +1 @@ +jupyter_contrib_core diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/zip-safe b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/zip-safe new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core-0.3.3.dist-info/zip-safe @@ -0,0 +1 @@ + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/__init__.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/__init__.py new file mode 100644 index 00000000..db00cc58 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/__init__.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +# - Copyright (c) 2016-, jupyter-contrib development team + +"""Core functionality for jupyter-contrib projects.""" + +from __future__ import unicode_literals + +__version__ = '0.3.3' diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/application.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/application.py new file mode 100644 index 00000000..13c1d7b2 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/application.py @@ -0,0 +1,62 @@ +# coding: utf-8 +""" +Common application classes for jupyter_contrib. + +Including the root `jupyter-contrib` command. +""" + +from __future__ import print_function + +import sys + +import pkg_resources +from jupyter_core.application import JupyterApp + +from jupyter_contrib_core import __version__ + + +class JupyterContribApp(JupyterApp): + """Root level jupyter_contrib app.""" + + name = 'jupyter contrib' + version = __version__ + description = ( + 'community-contributed spice for Jupyter Interactive Computing') + + def __init__(self, *args, **kwargs): + self._refresh_subcommands() + super(JupyterContribApp, self).__init__(*args, **kwargs) + + def _refresh_subcommands(self): + """ + Finds subcommands which have registered entry points. + + Each entry point is a function which returns a subcommands-style dict, + where the keys are the name of the subcommand, and the values are + 2-tuples containing the sub-application class, and a description of the + subcommand's action. + """ + group = 'jupyter_contrib_core.app.subcommands' + new_subcommands = {} + # import ipdb; ipdb.set_trace() + for entrypoint in pkg_resources.iter_entry_points(group=group): + get_subcommands_dict = entrypoint.load() + new_subcommands.update(get_subcommands_dict()) + self.subcommands.clear() + self.subcommands.update(new_subcommands) + + def start(self): + """Perform the App's actions as configured""" + super(JupyterContribApp, self).start() + + # The above should have called a subcommand and raised NoStart; if we + # get here, it didn't, so we should self.log.info a message. + self.print_help() + subcmds = ", ".join(sorted(self.subcommands)) + sys.exit("Please supply at least one subcommand: %s" % subcmds) + + +main = JupyterContribApp.launch_instance + +if __name__ == '__main__': # pragma: no cover + main() diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/__init__.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/__init__.py new file mode 100644 index 00000000..59d622c5 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/__init__.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +""" +Shim providing notebook-4.2 compatible extensions stuff for earlier versions. + +objects imported from notebook_compat.nbextensions will be + - objects from notebook.nbextensions where notebook-4.2-compatible versions + are available + - versions from notebook_compat._compat.nbextensions shim scripts otherwise + +and similarly for objects from notebook_compat.serverextensions +""" diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/_compat/__init__.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/_compat/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/_compat/nbextensions.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/_compat/nbextensions.py new file mode 100644 index 00000000..e76bdab8 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/_compat/nbextensions.py @@ -0,0 +1,490 @@ +# -*- coding: utf-8 -*- +""" +Shim providing some notebook.nbextensions functions for versions < 4.2.0. + +The main differences are: + * check_nbextension public API function omitted as unused + * all apps except BaseNBExtensionApp are omitted + * some unused private API stuff omitted + * all deprecated arguments are ignored, since we assume the caller knows what + they're doing + * docstrings limited to first line for brevity - we assume that if the caller + is using the function, they're familiar with notebook 4.2 API +""" + +# Original jupyter notebook source is +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +from __future__ import print_function + +import copy +import os +import shutil +import tarfile +import zipfile + +from ipython_genutils.path import ensure_dir_exists +from ipython_genutils.py3compat import cast_unicode_py2 +from ipython_genutils.tempdir import TemporaryDirectory +from jupyter_core.application import JupyterApp +from jupyter_core.paths import ( + ENV_CONFIG_PATH, ENV_JUPYTER_PATH, SYSTEM_CONFIG_PATH, SYSTEM_JUPYTER_PATH, + jupyter_config_dir, jupyter_data_dir, +) +from notebook.nbextensions import ( + ArgumentConflict, __version__, _safe_is_tarfile, +) +from tornado.log import LogFormatter +from traitlets import Bool +from traitlets.config.manager import BaseJSONConfigManager +from traitlets.utils.importstring import import_item + +try: + from urllib.parse import urlparse # Py3 + from urllib.request import urlretrieve +except ImportError: + from urlparse import urlparse + from urllib import urlretrieve + +# Constants for pretty printing +# Window doesn't support coloring in the commandline +GREEN_OK = '\033[32mOK\033[0m' if os.name != 'nt' else 'ok' +RED_X = '\033[31m X\033[0m' if os.name != 'nt' else ' X' +GREEN_ENABLED = '\033[32m enabled \033[0m' if os.name != 'nt' else 'enabled ' +RED_DISABLED = '\033[31mdisabled\033[0m' if os.name != 'nt' else 'disabled' + +NBCONFIG_SECTIONS = ['common', 'notebook', 'tree', 'edit', 'terminal'] + +# ----------------------------------------------------------------------------- +# Public API - large parts omitted +# ----------------------------------------------------------------------------- + + +# check_nbextension omitted as unused + + +def install_nbextension(path, overwrite=False, symlink=False, + user=False, prefix=None, nbextensions_dir=None, + destination=None, logger=None, sys_prefix=False): + """Install a Javascript extension for the notebook.""" + + # the actual path to which we eventually installed + full_dest = None + + nbext = _get_nbextension_dir( + user=user, sys_prefix=sys_prefix, prefix=prefix, + nbextensions_dir=nbextensions_dir) + # make sure nbextensions dir exists + ensure_dir_exists(nbext) + + # forcing symlink parameter to False if os.symlink does not exist (e.g., + # on Windows machines running python 2) + if not hasattr(os, 'symlink'): + symlink = False + + if isinstance(path, (list, tuple)): + raise TypeError("path must be a string pointing to a single extension " + "to install; call this function multiple times to " + "install multiple extensions") + + path = cast_unicode_py2(path) + + if path.startswith(('https://', 'http://')): + if symlink: + raise ValueError("Cannot symlink from URLs") + # Given a URL, download it + with TemporaryDirectory() as td: + filename = urlparse(path).path.split('/')[-1] + local_path = os.path.join(td, filename) + if logger: + logger.info("Downloading: %s -> %s" % (path, local_path)) + urlretrieve(path, local_path) + # now install from the local copy + full_dest = install_nbextension( + local_path, overwrite=overwrite, symlink=symlink, + nbextensions_dir=nbext, destination=destination, logger=logger) + elif path.endswith('.zip') or _safe_is_tarfile(path): + if symlink: + raise ValueError("Cannot symlink from archives") + if destination: + raise ValueError("Cannot give destination for archives") + if logger: + logger.info("Extracting: %s -> %s" % (path, nbext)) + + if path.endswith('.zip'): + archive = zipfile.ZipFile(path) + elif _safe_is_tarfile(path): + archive = tarfile.open(path) + archive.extractall(nbext) + archive.close() + # TODO: what to do here + full_dest = None + else: + if not destination: + destination = os.path.basename(path) + destination = cast_unicode_py2(destination) + full_dest = os.path.normpath(os.path.join(nbext, destination)) + if overwrite and os.path.lexists(full_dest): + if logger: + logger.info("Removing: %s" % full_dest) + if os.path.isdir(full_dest) and not os.path.islink(full_dest): + shutil.rmtree(full_dest) + else: + os.remove(full_dest) + + if symlink: + path = os.path.abspath(path) + if not os.path.exists(full_dest): + if logger: + logger.info("Symlinking: %s -> %s" % (full_dest, path)) + os.symlink(path, full_dest) + elif os.path.isdir(path): + # end in path separator + path = os.path.join(os.path.abspath(path), '') + for parent, dirs, files in os.walk(path): + dest_dir = os.path.join(full_dest, parent[len(path):]) + if not os.path.exists(dest_dir): + if logger: + logger.info("Making directory: %s" % dest_dir) + os.makedirs(dest_dir) + for file in files: + src = os.path.join(parent, file) + dest_file = os.path.join(dest_dir, file) + _maybe_copy(src, dest_file, logger=logger) + else: + src = path + _maybe_copy(src, full_dest, logger=logger) + + return full_dest + + +def install_nbextension_python(module, overwrite=False, symlink=False, + user=False, sys_prefix=False, prefix=None, + nbextensions_dir=None, logger=None): + """Install an nbextension bundled in a Python package.""" + m, nbexts = _get_nbextension_metadata(module) + base_path = os.path.split(m.__file__)[0] + + full_dests = [] + + for nbext in nbexts: + src = os.path.join(base_path, nbext['src']) + dest = nbext['dest'] + + if logger: + logger.info("Installing %s -> %s" % (src, dest)) + full_dest = install_nbextension( + src, overwrite=overwrite, symlink=symlink, + user=user, sys_prefix=sys_prefix, prefix=prefix, + nbextensions_dir=nbextensions_dir, + destination=dest, logger=logger + ) + validate_nbextension_python(nbext, full_dest, logger) + full_dests.append(full_dest) + + return full_dests + + +def uninstall_nbextension(dest, require=None, user=False, sys_prefix=False, + prefix=None, nbextensions_dir=None, logger=None): + """Uninstall a Javascript extension of the notebook.""" + nbext = _get_nbextension_dir(user=user, sys_prefix=sys_prefix, + prefix=prefix, + nbextensions_dir=nbextensions_dir) + dest = cast_unicode_py2(dest) + full_dest = os.path.join(nbext, dest) + if os.path.lexists(full_dest): + if logger: + logger.info("Removing: %s" % full_dest) + if os.path.isdir(full_dest) and not os.path.islink(full_dest): + shutil.rmtree(full_dest) + else: + os.remove(full_dest) + + # Look through all of the config sections making sure that the nbextension + # doesn't exist. + config_dir = os.path.join( + _get_config_dir(user=user, sys_prefix=sys_prefix), 'nbconfig') + cm = BaseJSONConfigManager(config_dir=config_dir) + if require: + for section in NBCONFIG_SECTIONS: + cm.update(section, {"load_extensions": {require: None}}) + + +def uninstall_nbextension_python(module, user=False, sys_prefix=False, + prefix=None, nbextensions_dir=None, + logger=None): + """Uninstall an nbextension bundled in a Python package.""" + m, nbexts = _get_nbextension_metadata(module) + for nbext in nbexts: + dest = nbext['dest'] + require = nbext['require'] + if logger: + logger.info("Uninstalling {} {}".format(dest, require)) + uninstall_nbextension(dest, require, user=user, sys_prefix=sys_prefix, + prefix=prefix, nbextensions_dir=nbextensions_dir, + logger=logger) + + +def _set_nbextension_state(section, require, state, + user=True, sys_prefix=False, logger=None): + """Set whether the section's frontend should require the nbextension.""" + user = False if sys_prefix else user + config_dir = os.path.join( + _get_config_dir(user=user, sys_prefix=sys_prefix), 'nbconfig') + cm = BaseJSONConfigManager(config_dir=config_dir) + if logger: + logger.info("{} {} extension {}...".format( + "Enabling" if state else "Disabling", + section, + require + )) + cm.update(section, {"load_extensions": {require: state}}) + + validate_nbextension(require, logger=logger) + + return cm.get(section).get(require) == state + + +def _set_nbextension_state_python(state, module, user, sys_prefix, + logger=None): + """Enable or disable some nbextensions stored in a Python package.""" + m, nbexts = _get_nbextension_metadata(module) + return [_set_nbextension_state(section=nbext["section"], + require=nbext["require"], + state=state, + user=user, sys_prefix=sys_prefix, + logger=logger) + for nbext in nbexts] + + +def enable_nbextension(section, require, user=True, sys_prefix=False, + logger=None): + """Enable a named nbextension.""" + return _set_nbextension_state(section=section, require=require, + state=True, + user=user, sys_prefix=sys_prefix, + logger=logger) + + +def disable_nbextension(section, require, user=True, sys_prefix=False, + logger=None): + """Disable a named nbextension.""" + return _set_nbextension_state(section=section, require=require, + state=False, + user=user, sys_prefix=sys_prefix, + logger=logger) + + +def enable_nbextension_python(module, user=True, sys_prefix=False, + logger=None): + """Enable some nbextensions associated with a Python module.""" + return _set_nbextension_state_python(True, module, user, sys_prefix, + logger=logger) + + +def disable_nbextension_python(module, user=True, sys_prefix=False, + logger=None): + """Disable some nbextensions associated with a Python module.""" + return _set_nbextension_state_python(False, module, user, sys_prefix, + logger=logger) + + +def validate_nbextension(require, logger=None): + """Validate a named nbextension.""" + warnings = [] + infos = [] + + js_exists = False + for exts in _nbextension_dirs(): + # Does the Javascript entrypoint actually exist on disk? + js = u"{}.js".format(os.path.join(exts, *require.split("/"))) + js_exists = os.path.exists(js) + if js_exists: + break + + require_tmpl = u" - require? {} {}" + if js_exists: + infos.append(require_tmpl.format(GREEN_OK, require)) + else: + warnings.append(require_tmpl.format(RED_X, require)) + + if logger: + if warnings: + logger.warning(u" - Validating: problems found:") + for msg in warnings: + logger.warning(msg) + for msg in infos: + logger.info(msg) + else: + logger.info(u" - Validating: {}".format(GREEN_OK)) + + return warnings + + +def validate_nbextension_python(spec, full_dest, logger=None): + """Assess the health of an installed nbextension.""" + infos = [] + warnings = [] + + section = spec.get("section", None) + if section in NBCONFIG_SECTIONS: + infos.append(u" {} section: {}".format(GREEN_OK, section)) + else: + warnings.append(u" {} section: {}".format(RED_X, section)) + + require = spec.get("require", None) + if require is not None: + require_path = os.path.join( + full_dest[0:-len(spec["dest"])], + u"{}.js".format(require)) + if os.path.exists(require_path): + infos.append(u" {} require: {}".format(GREEN_OK, require_path)) + else: + warnings.append(u" {} require: {}".format(RED_X, require_path)) + + if logger: + if warnings: + logger.warning("- Validating: problems found:") + for msg in warnings: + logger.warning(msg) + for msg in infos: + logger.info(msg) + logger.warning(u"Full spec: {}".format(spec)) + else: + logger.info(u"- Validating: {}".format(GREEN_OK)) + + return warnings + + +# ----------------------------------------------------------------------------- +# Applications. Many omitted from notebook version. +# ----------------------------------------------------------------------------- + + +class BaseNBExtensionApp(JupyterApp): + """Base nbextension installer app""" + _log_formatter_cls = LogFormatter + version = __version__ + + flags = copy.deepcopy(JupyterApp.flags) + flags.update({ + 'user': ({ + 'BaseNBExtensionApp': { + 'user': True, + }}, 'Apply the operation only for the given user' + ), + 'system': ({ + 'BaseNBExtensionApp': { + 'user': False, + 'sys_prefix': False, + }}, 'Apply the operation system-wide' + ), + 'sys-prefix': ({ + 'BaseNBExtensionApp': { + 'sys_prefix': True, + }}, ('Use sys.prefix as the prefix for configuration operations ' + + 'and installing nbextensions (for environments, packaging)') + ), + 'py': ({ + 'BaseNBExtensionApp': { + 'python': True, + }}, 'Install from a Python package' + ) + }) + flags['python'] = flags['py'] + flags.pop('y', None) + flags.pop('generate-config', None) + + user = Bool(False, config=True, help="Whether to do a user install") + sys_prefix = Bool(False, config=True, + help="Use the sys.prefix as the prefix") + python = Bool(False, config=True, help="Install from a Python package") + + # stuff about verbose from notebook version omitted + + def _log_format_default(self): + """A default format for messages""" + return '%(message)s' + +# ----------------------------------------------------------------------------- +# Private API +# ----------------------------------------------------------------------------- + + +def _should_copy(src, dest, logger=None): + """Return whether a file should be copied.""" + if not os.path.exists(dest): + return True + if os.stat(src).st_mtime - os.stat(dest).st_mtime > 1e-6: + # we add a fudge factor to work around a bug in python 2.x + # that was fixed in python 3.x: http://bugs.python.org/issue12904 + if logger: + logger.warn("Out of date: %s" % dest) + return True + if logger: + logger.info("Up to date: %s" % dest) + return False + + +def _maybe_copy(src, dest, logger=None): + """Copy a file if it needs updating.""" + if _should_copy(src, dest, logger=logger): + if logger: + logger.info("Copying: %s -> %s" % (src, dest)) + shutil.copy2(src, dest) + + +def _get_nbextension_dir(user=False, sys_prefix=False, prefix=None, + nbextensions_dir=None): + """Return the nbextension directory specified.""" + if sum(map(bool, [user, prefix, nbextensions_dir, sys_prefix])) > 1: + raise ArgumentConflict( + "cannot specify more than one of user, sys_prefix, prefix, " + "or nbextensions_dir") + if user: + nbext = os.path.join(jupyter_data_dir(), u'nbextensions') + elif sys_prefix: + nbext = os.path.join(ENV_JUPYTER_PATH[0], u'nbextensions') + elif prefix: + nbext = os.path.join(prefix, 'share', 'jupyter', 'nbextensions') + elif nbextensions_dir: + nbext = nbextensions_dir + else: + nbext = os.path.join(SYSTEM_JUPYTER_PATH[0], 'nbextensions') + return nbext + + +def _nbextension_dirs(): + """The possible locations of nbextensions.""" + return [ + os.path.join(jupyter_data_dir(), u'nbextensions'), + os.path.join(ENV_JUPYTER_PATH[0], u'nbextensions'), + os.path.join(SYSTEM_JUPYTER_PATH[0], 'nbextensions') + ] + + +def _get_config_dir(user=False, sys_prefix=False): + """Get the location of config files for the current context.""" + user = False if sys_prefix else user + if user and sys_prefix: + raise ArgumentConflict( + "Cannot specify more than one of user or sys_prefix") + if user: + nbext = jupyter_config_dir() + elif sys_prefix: + nbext = ENV_CONFIG_PATH[0] + else: + nbext = SYSTEM_CONFIG_PATH[0] + return nbext + + +def _get_nbextension_metadata(module): + """Get the list of nbextension paths associated with a Python module.""" + m = import_item(module) + if not hasattr(m, '_jupyter_nbextension_paths'): + raise KeyError( + 'The Python module {} is not a valid nbextension'.format(module)) + nbexts = m._jupyter_nbextension_paths() + return m, nbexts diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/_compat/serverextensions.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/_compat/serverextensions.py new file mode 100644 index 00000000..32232f4f --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/_compat/serverextensions.py @@ -0,0 +1,259 @@ +# -*- coding: utf-8 -*- +""" +Functions from notebook.serverextensions for versions < 4.2.0. + +Note that functions aren't quite direct copies, because of the switch from the +config key +NotebookApp.server_extensions (a list) in notebook < 4.2.0 +to the key +NotebookApp.nbserver_extensions (a dict) in notebook >= 4.2.0 +""" + +# Original jupyter notebook source is +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +from __future__ import print_function + +import importlib + +from jupyter_core.application import JupyterApp +from traitlets import Bool +from traitlets.config.manager import BaseJSONConfigManager +from traitlets.utils.importstring import import_item + +try: + from notebook.nbextensions import ( + _get_config_dir, BaseNBExtensionApp, GREEN_OK, RED_X, + ) +except ImportError: + from .nbextensions import ( + _get_config_dir, BaseNBExtensionApp, GREEN_OK, RED_X, + ) + + +# ----------------------------------------------------------------------------- +# Public API +# ----------------------------------------------------------------------------- + +class ArgumentConflict(ValueError): + pass + + +def toggle_serverextension_python(import_name, enabled=None, parent=None, + user=True, sys_prefix=False, logger=None): + """Toggle a server extension. + + By default, toggles the extension in the system-wide Jupyter configuration + location (e.g. /usr/local/etc/jupyter). + + Parameters + ---------- + + import_name : str + Importable Python module (dotted-notation) exposing the magic-named + `load_jupyter_server_extension` function + enabled : bool [default: None] + Toggle state for the extension. Set to None to toggle, True to enable, + and False to disable the extension. + parent : Configurable [default: None] + user : bool [default: True] + Toggle in the user's configuration location (e.g. ~/.jupyter). + sys_prefix : bool [default: False] + Toggle in the current Python environment's configuration location + (e.g. ~/.envs/my-env/etc/jupyter). Will override `user`. + logger : Jupyter logger [optional] + Logger instance to use + """ + user = False if sys_prefix else user + config_dir = _get_config_dir(user=user, sys_prefix=sys_prefix) + cm = BaseJSONConfigManager(parent=parent, config_dir=config_dir) + cfg = cm.get("jupyter_notebook_config") + server_extensions = ( + cfg.setdefault("NotebookApp", {}) + .setdefault("server_extensions", []) + ) + + old_enabled = import_name in server_extensions + new_enabled = enabled if enabled is not None else not old_enabled + + if logger: + if new_enabled: + logger.info(u"Enabling: %s" % (import_name)) + else: + logger.info(u"Disabling: %s" % (import_name)) + + if new_enabled: + if not old_enabled: + server_extensions.append(import_name) + elif old_enabled: + while import_name in server_extensions: + server_extensions.pop(server_extensions.index(import_name)) + + if logger: + logger.info(u"- Writing config: {}".format(config_dir)) + + cm.update("jupyter_notebook_config", cfg) + + if new_enabled: + validate_serverextension(import_name, logger) + + +def validate_serverextension(import_name, logger=None): + """Assess the health of an installed server extension + + Returns a list of validation warnings. + + Parameters + ---------- + + import_name : str + Importable Python module (dotted-notation) exposing the magic-named + `load_jupyter_server_extension` function + logger : Jupyter logger [optional] + Logger instance to use + """ + + warnings = [] + infos = [] + + func = None + + if logger: + logger.info(" - Validating...") + + try: + mod = importlib.import_module(import_name) + func = getattr(mod, 'load_jupyter_server_extension', None) + except Exception: # pragma: no cover + logger.warning("Error loading server extension %s", import_name) + + import_msg = u" {} is {} importable?" + if func is not None: + infos.append(import_msg.format(GREEN_OK, import_name)) + else: # pragma: no cover + warnings.append(import_msg.format(RED_X, import_name)) + + post_mortem = u" {} {} {}" + if logger: + if warnings: # pragma: no cover + [logger.info(info) for info in infos] + [logger.warn(warning) for warning in warnings] + else: + logger.info(post_mortem.format(import_name, "", GREEN_OK)) + + return warnings + +# ---------------------------------------------------------------------------- +# Applications. Some from the notebook version of serverextensions are skipped +# ---------------------------------------------------------------------------- + + +flags = {} +flags.update(JupyterApp.flags) +flags.pop('y', None) +flags.pop('generate-config', None) +flags.update({ + 'user': ({ + 'ToggleServerExtensionApp': { + 'user': True, + }}, 'Perform the operation for the current user' + ), + 'system': ({ + 'ToggleServerExtensionApp': { + 'user': False, + 'sys_prefix': False, + }}, 'Perform the operation system-wide' + ), + 'sys-prefix': ({ + 'ToggleServerExtensionApp': { + 'sys_prefix': True, + }}, 'Use sys.prefix as the prefix for installing server extensions' + ), + 'py': ({ + 'ToggleServerExtensionApp': { + 'python': True, + }}, 'Install from a Python package' + ), +}) +flags['python'] = flags['py'] + + +class ToggleServerExtensionApp(BaseNBExtensionApp): + """A base class for enabling/disabling extensions.""" + name = 'jupyter serverextension enable/disable' + description = 'Enable/disable a server extension in config files.' + + aliases = {} + flags = flags + + user = Bool(True, config=True, help='Whether to do a user install') + sys_prefix = Bool( + False, config=True, help='Use the sys.prefix as the prefix') + python = Bool(False, config=True, help='Install from a Python package') + + def toggle_server_extension(self, import_name): + """Change the status of a named server extension. + + Uses the value of `self._toggle_value`. + + Parameters + --------- + + import_name : str + Importable Python module (dotted-notation) exposing the magic-named + `load_jupyter_server_extension` function + """ + toggle_serverextension_python( + import_name, self._toggle_value, parent=self, user=self.user, + sys_prefix=self.sys_prefix, logger=self.log) + + def toggle_server_extension_python(self, package): + """Change the status of some server extensions in a Python package. + + Uses the value of `self._toggle_value`. + + Parameters + --------- + + package : str + Importable Python module exposing the + magic-named `_jupyter_server_extension_paths` function + """ + m, server_exts = _get_server_extension_metadata(package) + for server_ext in server_exts: + module = server_ext['module'] + self.toggle_server_extension(module) + + # start definition omitted as it's overridden in + # jupyter_contrib_core.application anyway + +# ----------------------------------------------------------------------------- +# Private API +# ----------------------------------------------------------------------------- + + +def _get_server_extension_metadata(module): + """Load server extension metadata from a module. + + Returns a tuple of ( + the package as loaded + a list of server extension specs: [ + { + "module": "mockextension" + } + ] + ) + + Parameters + ---------- + + module : str + Importable Python module exposing the + magic-named `_jupyter_server_extension_paths` function + """ + m = import_item(module) + if not hasattr(m, '_jupyter_server_extension_paths'): # pragma: no cover + raise KeyError( + u'The Python module {} does not include any valid server extensions'.format(module)) # noqa + return m, m._jupyter_server_extension_paths() diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/nbextensions.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/nbextensions.py new file mode 100644 index 00000000..cccd3f26 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/nbextensions.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +"""Shim providing notebook.nbextensions stuff from 4.2 for earlier versions.""" + +try: + # notebook >= 5.0 + from notebook.extensions import BaseExtensionApp + BaseNBExtensionApp = BaseExtensionApp +except ImportError as err: + try: + from notebook.nbextensions import BaseNBExtensionApp + except ImportError as err: + from ._compat.nbextensions import BaseNBExtensionApp + BaseExtensionApp = BaseNBExtensionApp + +try: + from notebook.nbextensions import _nbextension_dirs +except ImportError as err: + from ._compat.nbextensions import _nbextension_dirs + +try: + from notebook.nbextensions import ( + # constants + GREEN_ENABLED, GREEN_OK, NBCONFIG_SECTIONS, RED_DISABLED, RED_X, + # Apps & classes + ArgumentConflict, + # public API functions + _set_nbextension_state, _set_nbextension_state_python, + disable_nbextension, disable_nbextension_python, + enable_nbextension, enable_nbextension_python, + install_nbextension, install_nbextension_python, + uninstall_nbextension, uninstall_nbextension_python, + validate_nbextension, validate_nbextension_python, + # private API functions + _get_nbextension_dir, _get_config_dir, + _get_nbextension_metadata, + ) +except ImportError as err: + from ._compat.nbextensions import ( + # constants + GREEN_ENABLED, GREEN_OK, NBCONFIG_SECTIONS, RED_DISABLED, RED_X, + # Apps & classes + ArgumentConflict, + # public API functions + _set_nbextension_state, _set_nbextension_state_python, + disable_nbextension, disable_nbextension_python, + enable_nbextension, enable_nbextension_python, + install_nbextension, install_nbextension_python, + uninstall_nbextension, uninstall_nbextension_python, + validate_nbextension, validate_nbextension_python, + # private API functions + _get_nbextension_dir, _get_config_dir, + _get_nbextension_metadata, + ) + +__all__ = [ + # constants + 'GREEN_ENABLED', 'GREEN_OK', 'NBCONFIG_SECTIONS', 'RED_DISABLED', 'RED_X', + # Apps & classes + 'ArgumentConflict', 'BaseNBExtensionApp', + # public API functions + '_set_nbextension_state', '_set_nbextension_state_python', + 'disable_nbextension', 'disable_nbextension_python', + 'enable_nbextension', 'enable_nbextension_python', + 'install_nbextension', 'install_nbextension_python', + 'uninstall_nbextension', 'uninstall_nbextension_python', + 'validate_nbextension', 'validate_nbextension_python', + # private API functions + '_get_nbextension_dir', '_nbextension_dirs', '_get_config_dir', + '_get_nbextension_metadata', +] diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/serverextensions.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/serverextensions.py new file mode 100644 index 00000000..6c9e79ff --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/notebook_compat/serverextensions.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +"""Shim providing notebook.serverextensions stuff for pre 4.2 versions.""" + +try: + # notebook >= 4.2 + from notebook.serverextensions import ( + ToggleServerExtensionApp, toggle_serverextension_python, + ) +except ImportError: + # notebook <4.2 + from ._compat.serverextensions import ( + ToggleServerExtensionApp, toggle_serverextension_python, + ) + +try: + # notebook >= 5.0 + from notebook.extensions import ArgumentConflict +except ImportError: + try: + # notebook 4.2.x + from notebook.serverextensions import ArgumentConflict + except ImportError: + # notebook < 4.2 + from ._compat.serverextensions import ArgumentConflict + + +__all__ = [ + 'ArgumentConflict', 'ToggleServerExtensionApp', + 'toggle_serverextension_python', +] diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/testing_utils/__init__.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/testing_utils/__init__.py new file mode 100644 index 00000000..f877439d --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/testing_utils/__init__.py @@ -0,0 +1,181 @@ +# -*- coding: utf-8 -*- +"""Test utilities.""" + +from __future__ import ( + absolute_import, division, print_function, unicode_literals, +) + +import logging +import os +import re +import sys +from threading import RLock + +from traitlets.config.application import LevelFormatter +from traitlets.traitlets import default + +try: + from notebook.tests.test_notebookapp import raise_on_bad_version +except ImportError: + pep440re = re.compile( + r'^' + r'([1-9]\d*!)?(0|[1-9]\d*)(.(0|[1-9]\d*))*' + r'((a|b|rc)(0|[1-9]\d*))?' + r'(\.post(0|[1-9]\d*))?' + r'(\.dev(0|[1-9]\d*))?' + r'$' + ) + + def raise_on_bad_version(version): + if not pep440re.match(version): + raise ValueError( + "Versions String apparently does not match Pep 440 " + "specification, which might lead to sdist and wheel being " + "seen as 2 different release. " + "E.g: do not use dots for beta/alpha/rc markers." + ) + + +def stringify_env(env): + """ + Convert environment vars dict to str: str (not unicode) for py2 on Windows. + + Python 2 on Windows doesn't handle Unicode objects in environment, even if + they can be converted to ASCII string, which can cause problems for + subprocess calls in modules importing unicode_literals from future. + """ + if sys.version_info[0] < 3 and os.name == 'nt': + return {str(key): str(val) for key, val in env.iteritems()} + return env + + +class GlobalMemoryHandler(logging.Handler): + """ + A MemoryHandler which uses a single buffer across all instances. + + In addition, will only flush logs when explicitly called to. + """ + + _buffer = None # used as a class-wide attribute + _lock = None # used as a class-wide attribute + + @classmethod + def _setup_class(cls): + if cls._lock is None: + cls._lock = RLock() + if cls._buffer is None: + with cls._lock: + cls._buffer = [] + + def __init__(self, target): + logging.Handler.__init__(self) + self.target = target + self._setup_class() + + def emit(self, record): + """ + Emit a record. + + Append the record and its target to the buffer. + Don't check shouldFlush like regular MemoryHandler does. + """ + self.__class__._buffer.append((record, self.target)) + + @classmethod + def flush_to_target(cls): + """ + Sending the buffered records to their respective targets. + + The class-wide record buffer is also cleared by this operation. + """ + with cls._lock: + for record, target in cls._buffer: + target.handle(record) + cls.clear_buffer() + + @classmethod + def clear_buffer(cls): + with cls._lock: + cls._buffer = [] + + @classmethod + def rotate_buffer(cls, num_places=1): + with cls._lock: + cls._buffer = cls._buffer[-num_places:] + cls._buffer[:-num_places] + + def close(self): + """Close the handler.""" + try: + self.flush() + finally: + logging.Handler.close(self) + + +def wrap_logger_handlers(logger): + """Wrap a logging handler in a GlobalMemoryHandler.""" + # clear original log handlers, saving a copy + handlers_to_wrap = logger.handlers + logger.handlers = [] + # wrap each one + for handler in handlers_to_wrap: + if isinstance(handler, GlobalMemoryHandler): + wrapping_handler = handler + else: + wrapping_handler = GlobalMemoryHandler(target=handler) + logger.addHandler(wrapping_handler) + return logger + + +def get_logger(name=__name__, log_level=logging.DEBUG): + """ + Return a logger with a default StreamHandler. + + Adapted from + tratilets.config.application.Application._log_default + """ + log = logging.getLogger(name) + log.setLevel(log_level) + log.propagate = False + _log = log # copied from Logger.hasHandlers() (new in Python 3.2) + while _log: + if _log.handlers: + return log + if not _log.propagate: + break + else: + _log = _log.parent + if sys.executable.endswith('pythonw.exe'): + # this should really go to a file, but file-logging is only + # hooked up in parallel applications + _log_handler = logging.StreamHandler(open(os.devnull, 'w')) + else: + _log_handler = logging.StreamHandler() + _log_formatter = LevelFormatter( + fmt='[%(levelname)1.1s %(asctime)s.%(msecs).03d %(name)s] %(message)s', + datefmt='%H:%M:%S') + _log_handler.setFormatter(_log_formatter) + log.addHandler(_log_handler) + return log + + +def get_wrapped_logger(*args, **kwargs): + """Return a logger with StreamHandler wrapped in a GlobalMemoryHandler.""" + return wrap_logger_handlers(get_logger(*args, **kwargs)) + + +def patch_traitlets_app_logs(klass): + """ + Patch an App's default log method for use in nose tests. + + This is for use on subclasses of tratilets.config.application.Application + and essentially removes handlers from the default logger, then sets it to + propagate so that nose can capture the logs. + """ + @default('log') + def new_default_log(self): + logger = super(klass, self)._log_default() + # clear log handlers and propagate to root for nose to capture + logger.propagate = True + logger.handlers = [] + return logger + klass._log_default = new_default_log diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/testing_utils/jupyter_env.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/testing_utils/jupyter_env.py new file mode 100644 index 00000000..1bb81fe9 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/testing_utils/jupyter_env.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +"""Functions for patching jupyter env vars & paths.""" + +from __future__ import ( + absolute_import, division, print_function, unicode_literals, +) + +import os +import shutil +import sys +import tempfile + +import jupyter_core.paths + +from jupyter_contrib_core.notebook_compat import nbextensions +from jupyter_contrib_core.testing_utils import stringify_env + +try: + from unittest.mock import patch +except ImportError: + from mock import patch # py2 + + +def make_dirs(test_dir, base_dir): + """Return a dict of root, config and data directory paths.""" + dirs = { + 'root': os.path.join(test_dir, base_dir), + 'conf': os.path.join(test_dir, base_dir, 'config'), + 'data': os.path.join(test_dir, base_dir, 'data'), + } + if not os.path.exists(dirs['root']): + os.makedirs(dirs['root']) + return dirs + + +def patch_jupyter_dirs(): + """ + Patch jupyter paths to use temporary directories. + + This just creates the patches and directories, caller is still + responsible for starting & stopping patches, and removing temp dir when + appropriate. + """ + test_dir = tempfile.mkdtemp(prefix='jupyter_') + jupyter_dirs = {name: make_dirs(test_dir, name) for name in ( + 'user_home', 'env_vars', 'system', 'sys_prefix', 'custom', 'server')} + jupyter_dirs['root'] = test_dir + + for name in ('notebook', 'runtime'): + d = jupyter_dirs['server'][name] = os.path.join( + test_dir, 'server', name) + if not os.path.exists(d): + os.makedirs(d) + + # patch relevant environment variables + jupyter_patches = [] + jupyter_patches.append( + patch.dict('os.environ', stringify_env({ + 'HOME': jupyter_dirs['user_home']['root'], + 'JUPYTER_CONFIG_DIR': jupyter_dirs['env_vars']['conf'], + 'JUPYTER_DATA_DIR': jupyter_dirs['env_vars']['data'], + 'JUPYTER_RUNTIME_DIR': jupyter_dirs['server']['runtime'], + }))) + + # patch jupyter path variables in various modules + # find the appropriate modules to patch according to compat. + # Should include either + # notebook.nbextensions + # or + # jupyter_contrib_core.notebook_compat._compat.nbextensions + modules_to_patch = set([ + jupyter_core.paths, + sys.modules[nbextensions._get_config_dir.__module__], + sys.modules[nbextensions._get_nbextension_dir.__module__], + ]) + path_patches = dict( + SYSTEM_CONFIG_PATH=[jupyter_dirs['system']['conf']], + ENV_CONFIG_PATH=[jupyter_dirs['sys_prefix']['conf']], + SYSTEM_JUPYTER_PATH=[jupyter_dirs['system']['data']], + ENV_JUPYTER_PATH=[jupyter_dirs['sys_prefix']['data']], + ) + for mod in modules_to_patch: + applicable_patches = { + attrname: newval for attrname, newval in path_patches.items() + if hasattr(mod, attrname)} + jupyter_patches.append( + patch.multiple(mod, **applicable_patches)) + + def remove_jupyter_dirs(): + """Remove all temporary directories created.""" + shutil.rmtree(test_dir) + + return jupyter_patches, jupyter_dirs, remove_jupyter_dirs diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/DESCRIPTION.rst b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/DESCRIPTION.rst new file mode 100644 index 00000000..5e95d84b --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/DESCRIPTION.rst @@ -0,0 +1,19 @@ + +Contains a collection of extensions that add functionality to the Jupyter +notebook. These extensions are mostly written in Javascript, and are loaded +locally in the browser. + +Read +`the documentation `_ +for more information. + +The +`jupyter-contrib repository `_ +is maintained independently by a group of users and developers, and is not +officially related to the Jupyter development team. + +The maturity of the provided extensions varies, so please check +`the repository issues page `_ +if you encounter any problems, and create a new issue if needed! + + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/INSTALLER b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/METADATA b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/METADATA new file mode 100644 index 00000000..24e6567f --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/METADATA @@ -0,0 +1,60 @@ +Metadata-Version: 2.0 +Name: jupyter-contrib-nbextensions +Version: 0.5.1 +Summary: A collection of Jupyter nbextensions. +Home-page: https://github.com/ipython-contrib/jupyter_contrib_nbextensions.git +Author: ipython-contrib and jupyter-contrib developers +Author-email: jupytercontrib@gmail.com +License: BSD +Download-URL: https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tarball/0.5.1 +Keywords: IPython,Jupyter,notebook +Platform: Any +Classifier: Development Status :: 1 - Planning +Classifier: Intended Audience :: End Users/Desktop +Classifier: Intended Audience :: Science/Research +Classifier: License :: OSI Approved :: BSD License +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: JavaScript +Classifier: Programming Language :: Python +Classifier: Topic :: Utilities +Provides-Extra: test +Requires-Dist: ipython-genutils +Requires-Dist: jupyter-contrib-core (>=0.3.3) +Requires-Dist: jupyter-core +Requires-Dist: jupyter-highlight-selected-word (>=0.1.1) +Requires-Dist: jupyter-latex-envs (>=1.3.8) +Requires-Dist: jupyter-nbextensions-configurator (>=0.4.0) +Requires-Dist: nbconvert (>=4.2) +Requires-Dist: notebook (>=4.0) +Requires-Dist: pyyaml +Requires-Dist: tornado +Requires-Dist: traitlets (>=4.1) +Requires-Dist: lxml +Provides-Extra: test +Requires-Dist: nbformat; extra == 'test' +Requires-Dist: nose; extra == 'test' +Requires-Dist: pip; extra == 'test' +Requires-Dist: requests; extra == 'test' +Provides-Extra: test +Requires-Dist: mock; python_version == "2.7" and extra == 'test' + + +Contains a collection of extensions that add functionality to the Jupyter +notebook. These extensions are mostly written in Javascript, and are loaded +locally in the browser. + +Read +`the documentation `_ +for more information. + +The +`jupyter-contrib repository `_ +is maintained independently by a group of users and developers, and is not +officially related to the Jupyter development team. + +The maturity of the provided extensions varies, so please check +`the repository issues page `_ +if you encounter any problems, and create a new issue if needed! + + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/RECORD b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/RECORD new file mode 100644 index 00000000..76f8d7ca --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/RECORD @@ -0,0 +1,426 @@ +../../Scripts/jupyter-contrib-nbextension.exe,sha256=RYQV4JbQFhRIoHY06k-o3KvJ9-lFSYW8ekjipJx2kHo,106415 +jupyter_contrib_nbextensions-0.5.1.data/scripts/jupyter-contrib-nbextension,sha256=Kbjz7srIIhUeqt5m3KLALT9p4f7S26l_Dz9NvHCAlWE,107 +jupyter_contrib_nbextensions-0.5.1.dist-info/DESCRIPTION.rst,sha256=R_R-BcDs29TFSq4yhBeiA9sNTP5pDx3BNenq6t0xgow,741 +jupyter_contrib_nbextensions-0.5.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +jupyter_contrib_nbextensions-0.5.1.dist-info/METADATA,sha256=A2BseMc9_b0Aoy7gbfkdorSfo3i7mUJxcI4rJvD5kyU,2307 +jupyter_contrib_nbextensions-0.5.1.dist-info/RECORD,, +jupyter_contrib_nbextensions-0.5.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +jupyter_contrib_nbextensions-0.5.1.dist-info/WHEEL,sha256=kdsN-5OJAZIiHN-iO4Rhl82KyS0bDWf4uBwMbkNafr8,110 +jupyter_contrib_nbextensions-0.5.1.dist-info/entry_points.txt,sha256=YMyu5iwWL9JzEpCJKOn43CjyUGyhvi6sHtZVTeELYZk,616 +jupyter_contrib_nbextensions-0.5.1.dist-info/metadata.json,sha256=uAtSOZV8QOe1OQXG1LDNjEYcGNnKwtUteYYlT4Ujk-w,2298 +jupyter_contrib_nbextensions-0.5.1.dist-info/top_level.txt,sha256=GZJKugWyvBhBZTPWBBWjboHOeBBxAoZoE1C1fcYB8AA,29 +jupyter_contrib_nbextensions/__init__.py,sha256=DdiAEnJh85tvoAW-JBzDE4ZpWjvec6RTIwE03y-WYDA,1048 +jupyter_contrib_nbextensions/__pycache__/__init__.cpython-37.pyc,, +jupyter_contrib_nbextensions/__pycache__/application.cpython-37.pyc,, +jupyter_contrib_nbextensions/__pycache__/install.cpython-37.pyc,, +jupyter_contrib_nbextensions/__pycache__/migrate.cpython-37.pyc,, +jupyter_contrib_nbextensions/application.py,sha256=D3eh-RSe9FdGjqQxm-LxiyiVNxg_o5unY3RLe7U-QQ0,9678 +jupyter_contrib_nbextensions/config_scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +jupyter_contrib_nbextensions/config_scripts/__pycache__/__init__.cpython-37.pyc,, +jupyter_contrib_nbextensions/config_scripts/__pycache__/highlight_html_cfg.cpython-37.pyc,, +jupyter_contrib_nbextensions/config_scripts/__pycache__/highlight_latex_cfg.cpython-37.pyc,, +jupyter_contrib_nbextensions/config_scripts/highlight_html_cfg.py,sha256=X221HQIEmX4o54irbFszW4RFJGtRuQ5wBJYHV-62iik,649 +jupyter_contrib_nbextensions/config_scripts/highlight_latex_cfg.py,sha256=VSKETyAs4je9N0C5IChbduU7A21ZiRL4ds8Ha37DEuo,706 +jupyter_contrib_nbextensions/install.py,sha256=2LLH2OXQxoAq0RLyt5hbxR0XV6rcfN0r6EmSxxgKtLs,9383 +jupyter_contrib_nbextensions/migrate.py,sha256=Emo-d-WMG4ktdU7dQJrmTC88DRNhlEFFj56W_LAXI9U,10905 +jupyter_contrib_nbextensions/nbconvert_support/__init__.py,sha256=qroYvVr5bmeG6gYBrcXGnsdoHqRlbBD2bQa31Ibi30A,1211 +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/__init__.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/collapsible_headings.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/embedhtml.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/execute_time.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/exporter_inliner.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/js_highlight.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/nbTranslate.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/pp_highlighter.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/pre_codefolding.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/pre_embedimages.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/pre_pymarkdown.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/pre_svg2pdf.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/__pycache__/toc2.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbconvert_support/collapsible_headings.py,sha256=gfdNnqFNZCei00JZISZPgWsHyexq6ADJ5cfG9VvgDqE,1738 +jupyter_contrib_nbextensions/nbconvert_support/embedhtml.py,sha256=_6hopAsUe_0denmbnbXxIZpCaQIs7vSh16Jd9d29Y6A,3624 +jupyter_contrib_nbextensions/nbconvert_support/execute_time.py,sha256=mFIKj7olTfi6_NWRoKQIyWvWmA1eycSJ5o_JVHhpfMU,1451 +jupyter_contrib_nbextensions/nbconvert_support/exporter_inliner.py,sha256=ag_p-n0LcXaBkcdUA36Gf8z1Gn6M5idcpBTvf0GhhNE,1563 +jupyter_contrib_nbextensions/nbconvert_support/js_highlight.py,sha256=ss-W2wMV18_VkASNNg9V7aX2BvoEoikjSsnco29fCCA,5910 +jupyter_contrib_nbextensions/nbconvert_support/nbTranslate.py,sha256=3icpvJHatZbfYGr3QnUpfDzCKkt7nYvQiJaL5cBw__g,6773 +jupyter_contrib_nbextensions/nbconvert_support/pp_highlighter.py,sha256=p5BhLbEZygMS748bAZS8_TM3uR-Hc_Xnt21ddmRfc28,6484 +jupyter_contrib_nbextensions/nbconvert_support/pre_codefolding.py,sha256=mmUIEZI45DbzipxkXBL2gcFuuT3q3QzJTsCBVOdwlgE,4449 +jupyter_contrib_nbextensions/nbconvert_support/pre_embedimages.py,sha256=jnyKtPWzddL_aWMVjF_BkMRbg-GHoFYuBJJMqBHbwOg,5940 +jupyter_contrib_nbextensions/nbconvert_support/pre_pymarkdown.py,sha256=wqdYxKLLZ7ZssREhzwO63pW0d1ZUiTzhg6ahoTc69UU,1564 +jupyter_contrib_nbextensions/nbconvert_support/pre_svg2pdf.py,sha256=oWylxNVspS-nbzKGiwyzSjSDO1wcHbVs2FqaMqfZlcM,6733 +jupyter_contrib_nbextensions/nbconvert_support/toc2.py,sha256=KKeONX6kzfDJLi9EJ3RbRx8yUGXvJ7aufnTBX186Tik,1842 +jupyter_contrib_nbextensions/nbextensions/addbefore/addbefore.yaml,sha256=MpIR3vf35RydH_Jlif5bqbe67iWZCXaAFtOOTd1YPko,193 +jupyter_contrib_nbextensions/nbextensions/addbefore/icon.png,sha256=_8MPoV8_r96O2M6_xxcAmC5oculCGyLQ3z6QnjmSGf8,5712 +jupyter_contrib_nbextensions/nbextensions/addbefore/main.js,sha256=v88tEL4YtzlYhkKRBVYH6pkJfvD0PJytuAPmqhIXo4w,1632 +jupyter_contrib_nbextensions/nbextensions/addbefore/readme.md,sha256=Hu8cJu_eF2PViNRo99OaMM-O-yziyXN6iI0V2Ps9akI,455 +jupyter_contrib_nbextensions/nbextensions/autosavetime/README.md,sha256=vPaNpObj-YG17joFKL3UhBAUp9wK6tKeNQxj7586Qls,499 +jupyter_contrib_nbextensions/nbextensions/autosavetime/autosavetime.yaml,sha256=NJcOF7vMdNPc9CIt5Ud5fvY5EAie0Kga2bI9eWjWT0c,748 +jupyter_contrib_nbextensions/nbextensions/autosavetime/icon.png,sha256=J2QlWOq-ZrwLCnSMrnn7CvNvQn1ISq-C3DvqtPnc9ac,17906 +jupyter_contrib_nbextensions/nbextensions/autosavetime/main.js,sha256=djI0ngp7s1ZpF2iyY5S0DKUcO1fM2m7dWbzuKBQdktU,2419 +jupyter_contrib_nbextensions/nbextensions/autoscroll/README.md,sha256=QP-3Cn9FF2PcgqIC1e3B8dIF66LcgOS91Lg0GNQER30,647 +jupyter_contrib_nbextensions/nbextensions/autoscroll/autoscroll.yaml,sha256=6zfsAKvd1fGHgqtOVsY68XvVpNQZA11d8dZtx_wF76Q,949 +jupyter_contrib_nbextensions/nbextensions/autoscroll/icon.png,sha256=pQf4Pc9pccyx8WqbQab3f6VYt6_OFJ0kFZ7BEyYgNK4,32733 +jupyter_contrib_nbextensions/nbextensions/autoscroll/main.js,sha256=jy29MZ8Fk5CpcUNILQt1N_H3X1Mc-7q6tWbpJhg4xNw,4249 +jupyter_contrib_nbextensions/nbextensions/cell_filter/README.md,sha256=XNNw6VjjKqUzCsEXVZhYOERkuTD_5zAp80DVeE88khA,165 +jupyter_contrib_nbextensions/nbextensions/cell_filter/cell_filter.js,sha256=YX6qyiHCHiIORqhFmlwVdDrhqN_Q1KbSAd3zuIKE89o,6093 +jupyter_contrib_nbextensions/nbextensions/cell_filter/cell_filter.yml,sha256=qwGirdFNBC_0yhO9zXEY_W-JVztsXFqQvO9VqodsGhM,269 +jupyter_contrib_nbextensions/nbextensions/code_font_size/README.md,sha256=E_QEp_y-QUs6KwmHvPxnouMpXfSBk0auoFVtDTxrJgI,154 +jupyter_contrib_nbextensions/nbextensions/code_font_size/code_font_size.js,sha256=arAgyPMfPmNNl9MidfC0K4MX5T2OHtqyn6o20IYdrPA,2816 +jupyter_contrib_nbextensions/nbextensions/code_font_size/code_font_size.yaml,sha256=9suNBiqzORFsaVm56ObfQ_IMgw8082dgzNa5Wis2ur4,267 +jupyter_contrib_nbextensions/nbextensions/code_prettify/2to3.js,sha256=6zHLV_wcLpY1vvYT2_ftvib_on2Joh3ND-qiv7Zo_Ho,1853 +jupyter_contrib_nbextensions/nbextensions/code_prettify/2to3.yaml,sha256=llzthZtWc2-DwzhZde4QKPR_1phCZzACbsODALKfbHo,2149 +jupyter_contrib_nbextensions/nbextensions/code_prettify/README.md,sha256=MxFGD0VT8u-dDu00aNToiEKKZNaXCCHUZawFqgCRC10,12570 +jupyter_contrib_nbextensions/nbextensions/code_prettify/README_2to3.md,sha256=K9XjYcWcYsTzso9rgUEXlLF4DEyb3Ya5ju2jySHhjSg,4988 +jupyter_contrib_nbextensions/nbextensions/code_prettify/README_autopep8.md,sha256=DLyNa5kby1On6u8Iywa8hX3uQ7AXVh1tyJS2HMd5dJY,4792 +jupyter_contrib_nbextensions/nbextensions/code_prettify/README_code_prettify.md,sha256=ZDOoNhb7jXAZLRkBa3Km3ZopwNG9gYWI_vlSE2cblEw,11772 +jupyter_contrib_nbextensions/nbextensions/code_prettify/README_isort.md,sha256=Rg8ZA1uD_AFBlqFatL4Coo6y7tHargWviuB3EJPgPBA,1988 +jupyter_contrib_nbextensions/nbextensions/code_prettify/autopep8.js,sha256=VWYOLCdHAmJMPfZXBwVIwlnq4ytGneD87gYQlhqIAj0,1104 +jupyter_contrib_nbextensions/nbextensions/code_prettify/autopep8.yaml,sha256=cHroxq9ge-8g0ZVPwj4t-fssZZVooKWawKWic-Sv-XU,1836 +jupyter_contrib_nbextensions/nbextensions/code_prettify/code_prettify.js,sha256=7uRvK6mHoSiLIENRteaVa_1BU7ps020UQnDbkpCX8YY,2178 +jupyter_contrib_nbextensions/nbextensions/code_prettify/code_prettify.yaml,sha256=PlAsd_TFiapujUNkOJeu_SdMbjiXL_OJbzhyiB67cG0,2522 +jupyter_contrib_nbextensions/nbextensions/code_prettify/demo-R.gif,sha256=pSCDEcCtd-ncxIEVoGbMPtLTIy7UTwsjRsIYep8xfME,234783 +jupyter_contrib_nbextensions/nbextensions/code_prettify/demo-jv.gif,sha256=G3y8lmyL2uxgsrc8xAOHvoIS0AR09TZG5QqWM8NpNjM,121795 +jupyter_contrib_nbextensions/nbextensions/code_prettify/demo-py.gif,sha256=Bqj6EAcRoaOqekJX4tEcmzvt9e82thAPw-zUkBHvk-Y,89830 +jupyter_contrib_nbextensions/nbextensions/code_prettify/demo_2to3.gif,sha256=VBY6Df4ZHj0gMzIMd-xnXJO-nsG35_GYsQLuCDdkgNk,121036 +jupyter_contrib_nbextensions/nbextensions/code_prettify/isort.js,sha256=06bJOeWLsdT6q_cypeS8iz1AfFLHrjIcbzQ_TgyheeM,1390 +jupyter_contrib_nbextensions/nbextensions/code_prettify/isort.yaml,sha256=_Z6AZupHe88BPawRLa95kw2CHuvxVSzYCM43yfetAHM,1351 +jupyter_contrib_nbextensions/nbextensions/code_prettify/kernel_exec_on_cell.js,sha256=3_C2JnCyFQeGfkT-QK34JorkH9To4Uxh3cHYhpa6KeE,15294 +jupyter_contrib_nbextensions/nbextensions/codefolding/codefolding.yaml,sha256=r6To7xQorccwS6AuF7WcY3tHqaPvRQiMXhBU_vgxzKs,516 +jupyter_contrib_nbextensions/nbextensions/codefolding/codefolding_editor.png,sha256=kqlfdFbKKiLBFZ9xpjjc7__-6L9aX3cuSAzmNm2e7Fk,23095 +jupyter_contrib_nbextensions/nbextensions/codefolding/codefolding_editor.yaml,sha256=0F3B-cBrg5kDCuhvyVLrbMejtFABTuwfN6fvMXN8LAc,568 +jupyter_contrib_nbextensions/nbextensions/codefolding/codefolding_firstline_folded.png,sha256=FjXw0LiG-OzcAK9sd4cEA65nXgXqpSfAjZec3h5jpsI,6159 +jupyter_contrib_nbextensions/nbextensions/codefolding/codefolding_firstline_unfolded.png,sha256=I9ua0Zxaf8Wzce5of2XRkYdWP2DYGEabnWtxqugkabI,7418 +jupyter_contrib_nbextensions/nbextensions/codefolding/codefolding_indent_folded_1.png,sha256=UJrzG6hyuv6oebXtMLTtbOp7f8M2sdWQ1c9C0zz_5d8,7837 +jupyter_contrib_nbextensions/nbextensions/codefolding/codefolding_indent_folded_2.png,sha256=aDp7WuZJOYYVX7nG92lCr76SKBK8ZeXI0VcJbe462CI,4135 +jupyter_contrib_nbextensions/nbextensions/codefolding/codefolding_indent_unfolded.png,sha256=iW6U0hvnvS3blQ7z2Zhi9-EGnX3HNQ8_tBlWCBdE0v8,12170 +jupyter_contrib_nbextensions/nbextensions/codefolding/edit.js,sha256=7bcKbT27WDxb5jDewmmC4e6wgusMRFPycdOo8BbjH7A,90 +jupyter_contrib_nbextensions/nbextensions/codefolding/firstline-fold.js,sha256=tuMEOd6QSn-8tC2rIG41YqXs2pc_Rl-2Z4EjVI7C5r8,496 +jupyter_contrib_nbextensions/nbextensions/codefolding/foldgutter.css,sha256=yRcjwmUySpFK-9Nl1ztqv1_hD8dp_P14WSwwP70Fx4A,44 +jupyter_contrib_nbextensions/nbextensions/codefolding/icon.png,sha256=p8s9BTpOffg_GhMv-0YbBqv2GrYiGA7_cUKJOq608QE,15419 +jupyter_contrib_nbextensions/nbextensions/codefolding/magic-fold.js,sha256=xf8iaOH4nQjoWDjOUDxhTYWizQe8JXjKOiswdUpWUwg,501 +jupyter_contrib_nbextensions/nbextensions/codefolding/magic-folded.png,sha256=fAZmhkiamle1reKfvoTf4ycMui9TnngB5w0RbLhaZrw,15877 +jupyter_contrib_nbextensions/nbextensions/codefolding/magic-unfolded.png,sha256=b9JXmzYRle8ipqpNlDI8tror46BGUzgfSmJbcqorfyw,21858 +jupyter_contrib_nbextensions/nbextensions/codefolding/main.js,sha256=J1Ms0SwLcQncQyV7D-ByprIgVcZh2kc-rjI7gAj-hzU,9792 +jupyter_contrib_nbextensions/nbextensions/codefolding/readme.md,sha256=jyAjX9pPJ_Da_Qlx-364xEd7l-b9_R44JgBdg6MZPTA,2589 +jupyter_contrib_nbextensions/nbextensions/codemirror_mode_extensions/codemirror_mode_extensions.yaml,sha256=YLz4bFEming7zFKchdhvb6imr9pdf_Q_Upic_jGIhGQ,255 +jupyter_contrib_nbextensions/nbextensions/codemirror_mode_extensions/main.js,sha256=KkebW8vL6X3b8OPbO5RCIBF9oojq1-8wVOuMAn0wYSw,289 +jupyter_contrib_nbextensions/nbextensions/collapsible_headings/collapsible_headings.yaml,sha256=hCMTcdHPL7aDEUShnyBPUvzgf47AjRw5MjIv_aPtQ0U,4490 +jupyter_contrib_nbextensions/nbextensions/collapsible_headings/icon.png,sha256=aidE5FcfcnTrAMjryC5Y4mka_6grYjq0ZQXNVJjVT4U,20316 +jupyter_contrib_nbextensions/nbextensions/collapsible_headings/main.css,sha256=djDaQMWEvN0Biz_vkI6dTwIRpRQkTXdV0mjTnq7qh7o,3158 +jupyter_contrib_nbextensions/nbextensions/collapsible_headings/main.js,sha256=ogtInrp5cskY7aPs2oicH46N_OhiLgR6KfGjRS9DZ-8,35446 +jupyter_contrib_nbextensions/nbextensions/collapsible_headings/readme.md,sha256=T_9qkASPamokZmRTu3K7t5tq_0FDycE9kLKx1Qcf4rA,5391 +jupyter_contrib_nbextensions/nbextensions/collapsible_headings/screenshot.png,sha256=sJdyVqYt2CGZ7Kw_mZbRFGJPN9V8z3dhCjXyDOwAr7U,209015 +jupyter_contrib_nbextensions/nbextensions/comment-uncomment/comment-uncomment.yaml,sha256=HaL82hkY-1LmYSHxKL04jW0nrpZrC-FJU6o5ggrNYi0,495 +jupyter_contrib_nbextensions/nbextensions/comment-uncomment/icon.png,sha256=TESGQxX0xy4LfPpdSBCk2BWKZ5bp9cP4M2b0xY9JJXs,32613 +jupyter_contrib_nbextensions/nbextensions/comment-uncomment/main.js,sha256=2GcATYpAMUHodwBaHzIshbwQcag00PIl0zZZpaZjmGQ,1873 +jupyter_contrib_nbextensions/nbextensions/comment-uncomment/readme.md,sha256=tbBZaGNqsoxRwT3dPUEcNxg93Ltow0pHFSljXXjzhO0,306 +jupyter_contrib_nbextensions/nbextensions/contrib_nbextensions_help_item/README.md,sha256=u4eYZFUUdUXdQQNJe9XMitxmiSw-0YP71AWTkW0nxDg,280 +jupyter_contrib_nbextensions/nbextensions/contrib_nbextensions_help_item/contrib_nbextensions_help_item.yaml,sha256=FxCmO2hK9Tgw6r87fPUXQTJt0PrwKBRH2kT54eZf4wY,320 +jupyter_contrib_nbextensions/nbextensions/contrib_nbextensions_help_item/main.js,sha256=xLCxL3oSpImxOVzOMYqd7rN9MxkHni_OaN5VC16FjmU,1120 +jupyter_contrib_nbextensions/nbextensions/css_selector/css/compact.css,sha256=BGM5ZJKjZIam_BVhu_lKH-ieJ7C_SSY3srW7qGu_Zzo,115624 +jupyter_contrib_nbextensions/nbextensions/css_selector/css/dark.css,sha256=jlnkNKXdrDTx7p9YpnDRH8vWqIgMi-K07nBFWulNfvg,190164 +jupyter_contrib_nbextensions/nbextensions/css_selector/css/duck.css,sha256=vWMFVdd9V2wvmStm11wiGdUVGB0lPWERwemyOtfbktE,115723 +jupyter_contrib_nbextensions/nbextensions/css_selector/css/xkcd.css,sha256=SR2cO0KtAZaWriXD21tJhKFMscr2FqVR4SVy5p-RvcU,796 +jupyter_contrib_nbextensions/nbextensions/css_selector/main.js,sha256=lES8J3ioxx-DnbOsKT_XeG0RiwlHcNzOHeZqtQUzPlA,2740 +jupyter_contrib_nbextensions/nbextensions/datestamper/icon.png,sha256=eMArxw68rPLGyAXghbFPHDybH3SdjJQF_nsaVZMrva4,33575 +jupyter_contrib_nbextensions/nbextensions/datestamper/main.js,sha256=cIaAbUMYVU-IfMhZdV77xwjvwih6rMsoN2TVfDnbjXw,1284 +jupyter_contrib_nbextensions/nbextensions/datestamper/main.yaml,sha256=TpKW2bv8Ha0X9zuGOmPj1NeXqVi12KtM1gOnM5PNZso,216 +jupyter_contrib_nbextensions/nbextensions/datestamper/readme.md,sha256=KjaWZxMlv1ZM3KYCvxxV7fFBi8YbeW8znNA-X-CT8Ps,122 +jupyter_contrib_nbextensions/nbextensions/equation-numbering/button.png,sha256=cAGs893-CTfpLJ4u3xSIduAJAoptgHfQqLSt5Bla8Jc,4612 +jupyter_contrib_nbextensions/nbextensions/equation-numbering/icon.png,sha256=77idzmP0KvmOfzGDk4qpIDvbAYl9sojGuT6ShGvaFRs,2124 +jupyter_contrib_nbextensions/nbextensions/equation-numbering/info.yaml,sha256=k_i81mC86VfPGQaglIP1Zb_twBlK0dACWwKQsGMid-A,225 +jupyter_contrib_nbextensions/nbextensions/equation-numbering/main.js,sha256=wPtvrAIcx-PRFU1LRYHHgomH6qS6KvbIJKuZsCjuuPo,1247 +jupyter_contrib_nbextensions/nbextensions/equation-numbering/readme.md,sha256=TOcLvmOcOMKltrlP4i8O5Q2SveRV3spCkFdHVDhTw0E,664 +jupyter_contrib_nbextensions/nbextensions/execute_time/ExecuteTime.css,sha256=BMbWaq1AGMUYfop6O8BwqikdD3Y-f6EDxFTS0rVST64,110 +jupyter_contrib_nbextensions/nbextensions/execute_time/ExecuteTime.js,sha256=nxWmzsdSHq6qmcmN8APNRmmMR2n5z41CdWpLQOnJv7U,12273 +jupyter_contrib_nbextensions/nbextensions/execute_time/ExecuteTime.yaml,sha256=st8dB60KYDHz_TPQie57EWDfqwmkLT4Jt-RVNzjLLp0,2544 +jupyter_contrib_nbextensions/nbextensions/execute_time/execution-timings-box.png,sha256=XEA9ZT-IFc-_RFvQ_88-rNsFxO22Ob0qJTaldv4eDJ8,132052 +jupyter_contrib_nbextensions/nbextensions/execute_time/execution-timings-menu.png,sha256=Vj15V0cwAN8eXPESOIrtgp-5RGCzSgDz2ezRNCA31zA,84333 +jupyter_contrib_nbextensions/nbextensions/execute_time/icon.png,sha256=sCsYU_sE7fL3pD_Y2r6D5q0_hueEiAbCf56SarZ9GOo,35837 +jupyter_contrib_nbextensions/nbextensions/execute_time/readme.md,sha256=vhriFmA-jeYhv7W1I7pSitDxFJPW6MuS64sfwGdMtlA,7910 +jupyter_contrib_nbextensions/nbextensions/execution_dependencies/README.md,sha256=fTi61YOcXFpX8TgIGulZLCjH_lIMbzN3xrLCwf44ZUY,2340 +jupyter_contrib_nbextensions/nbextensions/execution_dependencies/execution_dependencies.js,sha256=jqRb8OiMwgZUk-yBDjh9V2rgdh91t5TKs59RTQzii4U,9549 +jupyter_contrib_nbextensions/nbextensions/execution_dependencies/execution_dependencies.yml,sha256=YeL2PD1kKuRJW6QVh9LhA60hVhKDC8JO2KLeZg52ky0,406 +jupyter_contrib_nbextensions/nbextensions/exercise/exercise.yaml,sha256=RI4JjswznQhsCp3KJmiXG65Qqdj_pONq98KnVp70WZ4,755 +jupyter_contrib_nbextensions/nbextensions/exercise/history.md,sha256=SNiX66pBaZFWfv7bL3Ur9S7vAVaGynvS9HozFo5bEZY,1364 +jupyter_contrib_nbextensions/nbextensions/exercise/icon.png,sha256=cCoMIKzore8yDqLTF5MGs8RRHctbXbuUcm336uVUuis,15750 +jupyter_contrib_nbextensions/nbextensions/exercise/image.gif,sha256=dtnRWtD3_L5aF4rZ-RoUfDl8G6TFUe5t97b52NdS2cM,259578 +jupyter_contrib_nbextensions/nbextensions/exercise/main.css,sha256=NnJvc7yzDVmqA5FSb_fnMnRkKrc_fgIqdTL7J-Yv5tE,273 +jupyter_contrib_nbextensions/nbextensions/exercise/main.js,sha256=t4GFTEB3L6QQ-b3hKU-4MqfKZEvMglOMhnH0MEMon24,6319 +jupyter_contrib_nbextensions/nbextensions/exercise/readme.md,sha256=c5xMiEEoMp8u-IPdJItPHZbwA51cmtGMcBF-dJuhp6U,2902 +jupyter_contrib_nbextensions/nbextensions/exercise2/exercise2.yaml,sha256=UAt-mZuezZiM5K4OXghcPmGkspqOOv79uy9q7T_A8dM,756 +jupyter_contrib_nbextensions/nbextensions/exercise2/icon.png,sha256=a2CZV3aTaOnOfTzzoJQxu7gH4PBxJ7NFB8rdA0tCo6I,11906 +jupyter_contrib_nbextensions/nbextensions/exercise2/image.gif,sha256=dtnRWtD3_L5aF4rZ-RoUfDl8G6TFUe5t97b52NdS2cM,259578 +jupyter_contrib_nbextensions/nbextensions/exercise2/main.css,sha256=T79ml0tvNH7IwNfGaTrUBjeeUPOqhdVU3Vi6pgHFR6M,1651 +jupyter_contrib_nbextensions/nbextensions/exercise2/main.js,sha256=6BqVCLQK-EwUVFcg1_fGdq9LIBZDGtmFPOfjdU1kdvs,5901 +jupyter_contrib_nbextensions/nbextensions/exercise2/readme.md,sha256=kOI721y7t2uEBpTPnVVpjH7CrzwRtAhd5SFannhOeoA,2904 +jupyter_contrib_nbextensions/nbextensions/export_embedded/export_embedded.yaml,sha256=del4TE0L1zWQ_kqCigbGmIfGiKBpmw4alh-xE2-XHx0,173 +jupyter_contrib_nbextensions/nbextensions/export_embedded/icon.png,sha256=aDh1Hb-psVkur8FhmNQ97BEUEPCBM40GV5kUogEbvD4,30335 +jupyter_contrib_nbextensions/nbextensions/export_embedded/main.js,sha256=Z-ZdUyGmQcWbToWgQAvSKTVQlToboloTc7sYhsTN9pg,1598 +jupyter_contrib_nbextensions/nbextensions/export_embedded/readme.md,sha256=PpTIG7bFFcMURPz9OLYW8tMmBNDEXh4rEucXW9ahnX4,493 +jupyter_contrib_nbextensions/nbextensions/freeze/config.yaml,sha256=P6CME7Pl-5jSGbeQhlifsKIdCJsTwFf3FdGg5_xcoXc,452 +jupyter_contrib_nbextensions/nbextensions/freeze/icon.png,sha256=nyDLhOxXerQFWuZwmt9T6Lw1KEj4K8g_JMOuK8o-plo,11100 +jupyter_contrib_nbextensions/nbextensions/freeze/main.js,sha256=kJ3TQrgcsIZHkbdovEpiynwgPI-cCIhGnwOJxmnH3Mo,7032 +jupyter_contrib_nbextensions/nbextensions/freeze/readme.md,sha256=u5_cZJR-jcxbjIcaOyM_RM_wXBhUKnCFdGtYYdk_EKQ,830 +jupyter_contrib_nbextensions/nbextensions/gist_it/gist_it.yaml,sha256=R2UnRn8VxCi7GIuuAGcoHl8-IZA0Q6yZVLennTRljuE,976 +jupyter_contrib_nbextensions/nbextensions/gist_it/icon.png,sha256=8GPC8X77PPa7yKyCWNlyP9TTmZjULchhD7eytjOoXHc,23735 +jupyter_contrib_nbextensions/nbextensions/gist_it/main.js,sha256=JLDq_Cj-xcU4yxMiSwFaKZqOfwRIrE7_e3yRzrdbO70,17781 +jupyter_contrib_nbextensions/nbextensions/gist_it/readme.md,sha256=gDDnK0K3KDjcVf9yjxPUrJyI_wHPfuoDOorePbAT_FU,2300 +jupyter_contrib_nbextensions/nbextensions/help_panel/help_panel.css,sha256=SR9Rxi0Xj95IJuxCjDcPG6R-KTGMTWl9zIU7BdtFb6A,873 +jupyter_contrib_nbextensions/nbextensions/help_panel/help_panel.js,sha256=WSSTnwIqurKZF9c4flfHEUwobeBxOLnWHqjfm_wwVpo,8938 +jupyter_contrib_nbextensions/nbextensions/help_panel/help_panel.yaml,sha256=_snsJSbNJ6VYFLjMeqjV53LxY8XgvatNXg1mu31LOM0,401 +jupyter_contrib_nbextensions/nbextensions/help_panel/help_panel_ext.png,sha256=DdQq8IsrIXegcBWTHSa_kry7PnfJaaDKaE2XDcZfMF8,488419 +jupyter_contrib_nbextensions/nbextensions/help_panel/help_panel_ext_fullscreen.png,sha256=TNny0Vn1k7NI-908mU2QnKY9U3k8ZpsvC3UCb4nMpus,304127 +jupyter_contrib_nbextensions/nbextensions/help_panel/icon.png,sha256=zRnIbUJtqKmSEdz9bOCOgUOOSWWGS8PyRYtUuAu6O_w,19451 +jupyter_contrib_nbextensions/nbextensions/help_panel/img/handle-v.png,sha256=aNen47qw5wbOmgCb9raGGfWyHrRLmnbDU9_C_yqa-vY,196 +jupyter_contrib_nbextensions/nbextensions/help_panel/readme.md,sha256=NGI1YGfJx_gj1KBZYTqdfPvn_wyQtQULa_9r-_aSsb4,520 +jupyter_contrib_nbextensions/nbextensions/hide_header/README.md,sha256=NeVusgi7ewvmu2JBK1ASW13SF76RWpNk9AhxTdUGjkY,107 +jupyter_contrib_nbextensions/nbextensions/hide_header/hide_header.yaml,sha256=yFZ-iQHTH68bb0x7acG6NHsMjin_r6UJ5Qc-4cn3yW0,317 +jupyter_contrib_nbextensions/nbextensions/hide_header/main.js,sha256=Aci489sEjEv80eXnRUk2cgJeS16MwZ9OuItDKn-Cs3M,1896 +jupyter_contrib_nbextensions/nbextensions/hide_input/hide-input.yaml,sha256=XRaN-czrf97XZ6SHWZDnHcOIghWrdPfWLl_c9cEWW5M,184 +jupyter_contrib_nbextensions/nbextensions/hide_input/icon.png,sha256=Cso6ktLe4rHwvGlP6AoCGDcGnCHmJwPCDgwdq3XqjvM,21721 +jupyter_contrib_nbextensions/nbextensions/hide_input/main.js,sha256=NM00cBLowsAZ1jp73vUufg3W1Qwg86A9Hambx8xEuFw,1750 +jupyter_contrib_nbextensions/nbextensions/hide_input/readme.md,sha256=_WyB-N-9m0Ls4msUVU8HCNTZVYwa3RHGMvCfUMA5G70,1683 +jupyter_contrib_nbextensions/nbextensions/hide_input_all/hide_input_all.yaml,sha256=FN1RotZ4Yh99fQ_eFtB9rt7De3442-8j_JG_8V7EKaY,182 +jupyter_contrib_nbextensions/nbextensions/hide_input_all/hide_input_all_hide.png,sha256=WC4QpIVO_c-pV56snJKERqOBY63Iz50WsStcZDjrD80,29979 +jupyter_contrib_nbextensions/nbextensions/hide_input_all/hide_input_all_show.png,sha256=8JX4sDgIJ5FLq26QYvNa-s543XMtx8fCeIIEBnZQADg,77728 +jupyter_contrib_nbextensions/nbextensions/hide_input_all/icon.png,sha256=j04REzpEZb05eKni64lprGMcMJb6Df4m-kIJyprDKTw,21917 +jupyter_contrib_nbextensions/nbextensions/hide_input_all/main.js,sha256=wHkgO4MXqRvwedVOg5sJazCnjOHW2oGxcnN33t2spzs,1746 +jupyter_contrib_nbextensions/nbextensions/hide_input_all/readme.md,sha256=-2ftk4dP7yMNV9A92V2ACc6EJKv-UPd15iHZUjRJscM,1365 +jupyter_contrib_nbextensions/nbextensions/highlighter/demo_highlighter.html,sha256=h4xl-WUACZXoCYftSUb5mCOSleReRwKYKz5xcCyWJpY,191800 +jupyter_contrib_nbextensions/nbextensions/highlighter/demo_highlighter.ipynb,sha256=59eSPiJY692oY5TqjcoPr3OZqtJAGkw6bH-DbqBLMNs,3298 +jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.html,sha256=Go-HglVA46hHjCAlU4V9OVoXdtEeTztF0WEPIKUOCSg,198455 +jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.ipynb,sha256=TWdDIM_fCuwvjnfyGo8F2pr_WEi91aO5kBwYpCNPCDo,8521 +jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.pdf,sha256=BkIB-Jg5I7cTLDq2beTcjuzQw5nzdlQ6C-VIPYl6T7A,116458 +jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.tex,sha256=NytCKcWOilnfwF8gpkHREBe-OLKvBEOP31CGgLvLNlM,20676 +jupyter_contrib_nbextensions/nbextensions/highlighter/highlighter.css,sha256=3pJT0JLS_FxfgrDu9YPlMh8bQTB193AwiuJw_gE7BE4,246 +jupyter_contrib_nbextensions/nbextensions/highlighter/highlighter.js,sha256=5m9pdQncTdg1h63f4vVnv4XzH1NgFKUq8FhSHKDa7hg,11220 +jupyter_contrib_nbextensions/nbextensions/highlighter/highlighter.yaml,sha256=VsgbYaXMm0OHAyZ3xa8hLdHAJJ83-IfkXoVhHMnZCs8,196 +jupyter_contrib_nbextensions/nbextensions/highlighter/icon.png,sha256=DuJelAVKjNFUBbDHJYfehozsn8xVWqzfWVKGFBOFyPA,48481 +jupyter_contrib_nbextensions/nbextensions/highlighter/image.gif,sha256=T_78XkPLaVHzTc2C_wiZ5uKJ9sv63qf_hTmdZSVYpIQ,270930 +jupyter_contrib_nbextensions/nbextensions/highlighter/readme.md,sha256=KvIj7RaV7tffYGj7xyB4KFyUBdq97jsZzqKcDZVB8io,1781 +jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.html,sha256=Lw4aZnKF42J-S3ZmN4qwCqCUJE7Tv7ECG4MJP1C9rZM,190362 +jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.ipynb,sha256=Wm2fKmEppJbnF3J6PkVph9ia_1j3zPD7NjVHg-qXcjM,2496 +jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.pdf,sha256=lpn83A2sAbDV30GmThucKvPAaaPhoLGIIZAXgDXQyKw,68588 +jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.tex,sha256=uOSFP0zmgGk9Ml2RLSH4m1081N2hZmPtN5kUDKFHhdM,13868 +jupyter_contrib_nbextensions/nbextensions/hinterland/README.md,sha256=NmfX_LHSbezJiK79BhYAPx5DTj7WdkXawbinu56ij7k,2199 +jupyter_contrib_nbextensions/nbextensions/hinterland/hinterland.js,sha256=JDqODOKOj8hL_rr5qKr6rw8pvjnrg8toIrmLaUPV1bg,5521 +jupyter_contrib_nbextensions/nbextensions/hinterland/hinterland.yaml,sha256=_XUBgUliqfuZNizOSvcubE1RC2a13M1tQZS5tVg3DVI,3034 +jupyter_contrib_nbextensions/nbextensions/init_cell/README.md,sha256=MHesYfjRVDpivYLBNGo9h3uTV-b4M5B1I0eTj8p7Rck,1525 +jupyter_contrib_nbextensions/nbextensions/init_cell/cell_toolbar_menu.png,sha256=ljKq0cqlglwAPSsxzvNAPAnwqS-ejhCcLvnkDhQfpMg,44518 +jupyter_contrib_nbextensions/nbextensions/init_cell/icon.png,sha256=JGdz1lnBJmfKMhBjBn5C5jezX90SeC7mqHqncYlgWk4,26545 +jupyter_contrib_nbextensions/nbextensions/init_cell/init_cell.yaml,sha256=5FnONqSCOi5QTzVnQM5d_pRnsdKze_IrFK4TQHeeuaw,579 +jupyter_contrib_nbextensions/nbextensions/init_cell/main.js,sha256=U1i_T2NUgne_Jh1T1u6hNwx-He5OzPeqFba6D9h57hY,5736 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/README.md,sha256=3_1OywtgXRXwfceURI2PusD8FE4kfuQ_9Ck8mfI9g1M,4908 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/icon.png,sha256=0AsUecOKf9ibqHRmBDlcAq-F1Y6KY2EXu6w8LII9BCM,36773 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/keyboard_shortcut_editor.yaml,sha256=_XxpyJAWwfU631atS1iCV67zjApB7WjUKF027-rc0fY,543 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/kse_components.js,sha256=0gmB2gLwq71ouiMuQ1jL80Giw9RbiKmiOaqVKOHc6cM,9755 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/main.css,sha256=2xmHvToqx-dAhCwtrQGsZ1eEg5lZBa1sKf2NyNVekAw,541 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/main.js,sha256=5aj8SpFka_dDO5yjrgoVKstNLOPxdgWRn3vV1OI4kxg,22128 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/quickhelp_shim.js,sha256=34jFmmruVM1EtsrYjQ6LZWIOs2b72y35_CIxk8vn5lA,5860 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/readme_add_new_link.png,sha256=jrlKG2hYh0g0Kc4pUX0YWd-HmNomoy5wcYjqSWiHP9Q,91588 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/readme_add_new_select_action.png,sha256=4idBHAY3txDSdwR6ig2_OOGV5HZkQ1olp4Vbe3QIL1s,233793 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/readme_comma.png,sha256=XWFHgHQnIWLUPRhyoobK9NaHIGbWDWiuq9DRrjzFiQs,107724 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/readme_conflict.png,sha256=yMbCDPmy5kAE0-A_mPqjNrrzTPHyXZLyEtvfaesTaoQ,89818 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/readme_dropdown.png,sha256=tSwHQFNUHtyyn-nGxxRL1BlN6JnvcAO-6x8yGJLAw0M,92811 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/readme_menu_item.png,sha256=d3DS-KpeCkajBUmlqI61MSlm5eCj7OC2-SSn18PVAdg,123510 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/readme_reset_disabled.png,sha256=w7jw7uTfv9Rp3dZMHgYkBaAvZiUMQdbglBB6YY8acjE,100648 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/readme_shortcut_editor_blank.png,sha256=YnF9stuLHFT7DtF_aH6DELY-eAfEkZ5P6j17H36RcSk,74777 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/readme_shortcut_editor_success.png,sha256=Zqf5bJCkNPqGwD9tCji9W-3vy7Hz-PngZ6KnL7ea9i0,79437 +jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/readme_undefined_key.png,sha256=iu074PAHCfN8czJABIvMEgwNPVP1rVccwScBNrv_u_0,102150 +jupyter_contrib_nbextensions/nbextensions/limit_output/icon.png,sha256=1AMtBhE2ulp6dbdUxVKFOwBMGX1FzZrRZ42kV8Vd5YM,9784 +jupyter_contrib_nbextensions/nbextensions/limit_output/limit-output.yaml,sha256=qDc8OXuDYFgMAMdYHmZ2BnCAjHeWbQBpl62NQPnilf4,967 +jupyter_contrib_nbextensions/nbextensions/limit_output/main.js,sha256=ULLu_vYEiYmOFQCiqFlmeLPJDcZxNCIOZ3BaNR01b8I,5885 +jupyter_contrib_nbextensions/nbextensions/limit_output/readme.md,sha256=aVpPvojeED-d9UVzgPNskbhw8_EcePDFembaTzqRdmk,1654 +jupyter_contrib_nbextensions/nbextensions/livemdpreview/livemdpreview.js,sha256=sAtazAuH_hVjLAHB5TBgA7L_Bu6bf8Hm9Y728W2wZYs,3464 +jupyter_contrib_nbextensions/nbextensions/livemdpreview/livemdpreview.yml,sha256=BjCG7tjFnrAfMoR9iygEYTGmQw9vpEcXPuvwNYifdpw,742 +jupyter_contrib_nbextensions/nbextensions/load_tex_macros/icon.png,sha256=TComH8gG0nNXlGP3KjH-lCw6I_3KZmfCc02VkiAM2ak,5735 +jupyter_contrib_nbextensions/nbextensions/load_tex_macros/load_tex_macros.yaml,sha256=OYd2IH0wpZwfXUGdhQhlvXO5dex1WeeAU4ZCVAa98y8,251 +jupyter_contrib_nbextensions/nbextensions/load_tex_macros/main.js,sha256=r8zg3Bdzb24ulbXWJ_LcoIbPxK46W8AJGz5BPtYYmPw,1377 +jupyter_contrib_nbextensions/nbextensions/load_tex_macros/readme.md,sha256=5X7EoUCfokOnkj5G0MCj17_2cG_s7agdt531z6r6ByU,475 +jupyter_contrib_nbextensions/nbextensions/move_selected_cells/README.md,sha256=3RuSusg9wtFbvaKM3qPkmy5ZeRryg_qilV5jfgBRz88,831 +jupyter_contrib_nbextensions/nbextensions/move_selected_cells/main.js,sha256=L65JIAx2NnnfTssmjw0IeRcfoKG8EgZBI9RN4njB26s,3270 +jupyter_contrib_nbextensions/nbextensions/move_selected_cells/move_selected_cells.yaml,sha256=ZtolFYw7UPePt4cxrOMTEqALyLsljyu8f2vYfqewT04,193 +jupyter_contrib_nbextensions/nbextensions/navigation-hotkeys/hotkeys.yaml,sha256=2K7L5xfGNG4RIzjh9ggKFfk18V5AqCOYTZPMD5YSMjk,765 +jupyter_contrib_nbextensions/nbextensions/navigation-hotkeys/icon.png,sha256=Ju2QGidzSDh06H3kBFPmAEzDZTDLJaRaTgy7HqBGlnM,29922 +jupyter_contrib_nbextensions/nbextensions/navigation-hotkeys/main.js,sha256=muaUxrBpSjDXzmoiuuZaj3tvX8P_8DPJ5j9g5oGAMuw,8663 +jupyter_contrib_nbextensions/nbextensions/navigation-hotkeys/readme.md,sha256=VT7ZpuvDLEUZiFlExbGAbe-clyH3ubTtnOz_l0CEsWQ,993 +jupyter_contrib_nbextensions/nbextensions/nbTranslate/README.md,sha256=ZeLFaJVsoIWY2WQRl-vMmHql1crCxbiBsP8klB0mt-4,3690 +jupyter_contrib_nbextensions/nbextensions/nbTranslate/demo1.gif,sha256=1ajJDYN1o6T7Yt7jdt6RKBuWx2FtN2Puq6nMHU-cH5w,2341673 +jupyter_contrib_nbextensions/nbextensions/nbTranslate/demo2.gif,sha256=wnreryupBVZlAsPzGfHQHlmjaDx3OS2JDCSkUyOWiEw,3099913 +jupyter_contrib_nbextensions/nbextensions/nbTranslate/languages.js,sha256=mj7Ly3at_eb87yPfPsYmo4lUN6trovSYnNCt0ApPZnE,2489 +jupyter_contrib_nbextensions/nbextensions/nbTranslate/main.js,sha256=vrlMJKxMR2WfZghjQDtlxQ8As0VBp3qTFZvknlgNOiE,4830 +jupyter_contrib_nbextensions/nbextensions/nbTranslate/mutils.js,sha256=OSgxuu2SohYVTfnsWoNyRZbYGNvpIfMnmQH3mIijbX8,8367 +jupyter_contrib_nbextensions/nbextensions/nbTranslate/nbTranslate.js,sha256=FuGV8C6JSaUwPkkIFq-f0rzMT_aLu4E739CW17gkETI,23055 +jupyter_contrib_nbextensions/nbextensions/nbTranslate/nbTranslate.yaml,sha256=VN9eJIrMmIlFMI1LohFoJnkHj3ol0K91F5iYMC3dJg8,1475 +jupyter_contrib_nbextensions/nbextensions/notify/notification.png,sha256=7snskKqnp3qxcmDqXxQIe8msLb5RgbvXSP9zamYqErg,30035 +jupyter_contrib_nbextensions/nbextensions/notify/notify.js,sha256=YKCMCzS65HGsuRt9HObkPYeNZrPiibYfVIEXbI9zGDI,6341 +jupyter_contrib_nbextensions/nbextensions/notify/notify.mp3,sha256=HdIIg0vEBqAZTtwX4Oa09-z2fF2PDEPfJYCXdHmJSws,13945 +jupyter_contrib_nbextensions/nbextensions/notify/notify.yaml,sha256=dUa4a98Q9ZIl_55Vz_xsZisyDOmZulx_vEoJsHOHn64,549 +jupyter_contrib_nbextensions/nbextensions/notify/readme.md,sha256=eeyk9aXEa7oL81BtqfRG2T_fkfV_K_N2BVgMsLGzF7Y,2817 +jupyter_contrib_nbextensions/nbextensions/printview/icon.png,sha256=HgrsFA9H2pF1-jEaix1TfXyM9Wixq-BtdQ2S_5aykgQ,3552 +jupyter_contrib_nbextensions/nbextensions/printview/main.js,sha256=9pMNdVACRRc8EvVxT2vI8ayAJ_Iv51P8--0IzanRjzU,2226 +jupyter_contrib_nbextensions/nbextensions/printview/printview-button.png,sha256=9IaI8tbUs61znbP1nmWDQUgQA9P7KjHgLnjajoEHRAA,18982 +jupyter_contrib_nbextensions/nbextensions/printview/printview.yaml,sha256=ZQTBgGx7461WbHd2TbTKHDXtz2_7dMAIhtdI48kkjCo,485 +jupyter_contrib_nbextensions/nbextensions/printview/readme.md,sha256=ALmgiW9TtjWHWOR5RPHXtN7V5TyWFzo-mLEnsOc0pzQ,1946 +jupyter_contrib_nbextensions/nbextensions/python-markdown/main.css,sha256=xV0sv78ISSSVfGfP3l-YrS9JXlfPRdcVJtgZXM23674,43 +jupyter_contrib_nbextensions/nbextensions/python-markdown/main.js,sha256=mtsbBDFTvVWZ7qG9QJqV99Se0WZ6n0Z4serwK7XXv4I,9193 +jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown-post.png,sha256=PJ8N9IpIE-SiIW69VUJ82kWbsqLTyWghHeofbNvbLVE,37725 +jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown-pre.png,sha256=UT08-uU6Btu4bwTDZs9Mxi4MYJjKsrYDL3JHTHfzF0o,19639 +jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown.png,sha256=3bvMYEm4OysXahJrF24T3AQUORhyq8KnF9GT6XLYOd4,20996 +jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown.yaml,sha256=5zFspC4Eu6_Fpj87-SbmcRrjMK9WGw5Fzh_M3EZ5rS4,229 +jupyter_contrib_nbextensions/nbextensions/python-markdown/readme.md,sha256=SxpYy965PgC3PSziVxuKGceQ5clpjTVtpfU2BgwzNB8,3127 +jupyter_contrib_nbextensions/nbextensions/python-markdown/trusted.png,sha256=8MYFNX4D9hXnui5z-1FojMl6nLNcp82sxYxJOldauIg,10464 +jupyter_contrib_nbextensions/nbextensions/python-markdown/untrusted.png,sha256=oQRnipa-qrPoU5yxwZ5h6tHf1-u_pwqEGg5_RSQMItg,9548 +jupyter_contrib_nbextensions/nbextensions/qtconsole/README.md,sha256=2TV1msi3dXRObb-UGVgGOQ0OxmaoxoezJlj_5wLGw8s,73 +jupyter_contrib_nbextensions/nbextensions/qtconsole/qtconsole.js,sha256=FobESQS9quOKtLdM_tgooio3p8EqDtS7wMLDrCA8TTI,793 +jupyter_contrib_nbextensions/nbextensions/qtconsole/qtconsole.yaml,sha256=RI-WX7ySp-Zjd3xi4BX_UPmvImxM7hducG4vz5tIFWM,173 +jupyter_contrib_nbextensions/nbextensions/rubberband/icon.png,sha256=fUcxfq3pFFSr5JcDcAvyToPQcaEeUsFzYegxRqad4h0,57476 +jupyter_contrib_nbextensions/nbextensions/rubberband/main.css,sha256=bJ3nlZrQCZbdkABUmDk2LuWzkELYQapEc3829x7mZdY,181 +jupyter_contrib_nbextensions/nbextensions/rubberband/main.js,sha256=bwvz1QWefc2CgsFPNvLJKbK8KeCjYV3hihsvA5YP1S8,7657 +jupyter_contrib_nbextensions/nbextensions/rubberband/readme.md,sha256=TH-MgJ7GCVZxmqibDa1xGGHAljhVN_cjnyUpA0_pAF8,1174 +jupyter_contrib_nbextensions/nbextensions/rubberband/rubberband.yaml,sha256=ITSHK7gGhR44yx_FRae27HRruglLtl6Qhma-cnUKR_E,189 +jupyter_contrib_nbextensions/nbextensions/ruler/edit.js,sha256=oG8X6n8TCjd8b548jHF3f-fgVy95PpA4juR146oerks,78 +jupyter_contrib_nbextensions/nbextensions/ruler/icon.png,sha256=P8Iue4dc7BC7PNZ7isjkEfEJwjfXNaedmo0kHDFsFrc,3239 +jupyter_contrib_nbextensions/nbextensions/ruler/main.js,sha256=fK5EacOqjoGO6N0JkXRfXMIBNJ7kxHtVwH7ymeLaHO0,3815 +jupyter_contrib_nbextensions/nbextensions/ruler/readme.md,sha256=oQOS29hJz2e4UBZNkBZrI4P5hvQFckIX164dHOClngE,1793 +jupyter_contrib_nbextensions/nbextensions/ruler/ruler.yaml,sha256=gO4Lv27HOmabkmGsRUR-Mmp_i3HMKCrtA2i1Q50qudo,716 +jupyter_contrib_nbextensions/nbextensions/ruler/ruler_editor.yaml,sha256=aBViebTCqLJbomin3-Cm7NGS6agKng93xcQXe6SiT4U,605 +jupyter_contrib_nbextensions/nbextensions/runtools/annotations.odg,sha256=suDn68WMYqXvvYbpnueI53h2Shgvg9SfmNxV2qPWhP0,19785 +jupyter_contrib_nbextensions/nbextensions/runtools/cellstate.js,sha256=UR_jjdf-1yiZJ9jNJOgVTu45UuZWcqUdq-gvd4x9yYY,644 +jupyter_contrib_nbextensions/nbextensions/runtools/demo.gif,sha256=EARAoFXTqHEpjWgI8mC_9qf8HVEwxUNJRqBfesfW95c,723994 +jupyter_contrib_nbextensions/nbextensions/runtools/gutter.css,sha256=6dBom4jzfIStutmgGCTs_RcRF-2XvAjCbH5w3FXzCcE,42 +jupyter_contrib_nbextensions/nbextensions/runtools/icon.png,sha256=DZEBR960bf5GYJsSgmjVHM38I2icKxaA26rbWAJbOpA,12750 +jupyter_contrib_nbextensions/nbextensions/runtools/main.css,sha256=pxgAcUdiJ8X7ki66VtCLs989A2Kfqk0dXzlOPTGK6k0,743 +jupyter_contrib_nbextensions/nbextensions/runtools/main.js,sha256=s-hyNEgNoK0qtIgulWiYLGtyXs2STnrkJ3ujj-XjGC8,24380 +jupyter_contrib_nbextensions/nbextensions/runtools/readme.md,sha256=2yMtGsj3pN1r0XdBEimgVIqB2w803b9je9mAidfvqdw,3569 +jupyter_contrib_nbextensions/nbextensions/runtools/runtools.yaml,sha256=jRiRu7azFKaV9FW7xn_DYd7nKLQwj05RKKaTX7MQE7s,1580 +jupyter_contrib_nbextensions/nbextensions/runtools/runtools_execute.png,sha256=AupS7j7gpBeVZ-RiJLk34nZ1BblYQJ6i9fuFhQz83rQ,43869 +jupyter_contrib_nbextensions/nbextensions/runtools/runtools_lock.png,sha256=SPbCVDK3iZR-4maXv0N5QUuNpTQq7g22NUoAWLs4voA,15774 +jupyter_contrib_nbextensions/nbextensions/runtools/runtools_marker.png,sha256=fkZnMpEBrasNI6KsGIacynxSMbaygkgHsdIXZRU_wWU,23685 +jupyter_contrib_nbextensions/nbextensions/runtools/runtools_nb.png,sha256=kjxb9ChMPmGKYW3z03K8EdxvTV8S5Ygl7NUBdavkVsI,4075 +jupyter_contrib_nbextensions/nbextensions/runtools/runtools_show_hide.png,sha256=UD41JH_by7E9Ds_Wv11fMdLYSR6wOoFVaYJX7WSwd7g,25909 +jupyter_contrib_nbextensions/nbextensions/scratchpad/LICENSE,sha256=HV-RC-_hMC2tFU-w3p5xe_OqWbfPtABk5UdVQt4pWlA,1486 +jupyter_contrib_nbextensions/nbextensions/scratchpad/README.md,sha256=5ox-BYq0cRvI5rkNYBKcq4E-7rJBcgK7BPT6N_iRGF8,561 +jupyter_contrib_nbextensions/nbextensions/scratchpad/demo.gif,sha256=z7xjWdMsSwcv7qSdykiAp1xvSd1UxtFCJWWPc-DTric,1160320 +jupyter_contrib_nbextensions/nbextensions/scratchpad/main.js,sha256=HOZOt4aMxTzbQm89nPeAGiQOllrsN8HCZKAPLgOMlTU,4144 +jupyter_contrib_nbextensions/nbextensions/scratchpad/scratchpad.css,sha256=mSmmnq8n1fCjeiUVSwsDzpzH7yVGzITISYUutm3_5SU,571 +jupyter_contrib_nbextensions/nbextensions/scratchpad/scratchpad.yaml,sha256=4FJLDpajpRN2ORt-CeWV4Spi8zVakI_jDkaWCGxwCDg,161 +jupyter_contrib_nbextensions/nbextensions/scroll_down/config.yaml,sha256=fY9eXAwWsKd0BHsOjgGDkb26CFL5aLW_bH_FY-j_Z_g,295 +jupyter_contrib_nbextensions/nbextensions/scroll_down/icon.png,sha256=3aVc5lzv_boP-mfWdzLGy24leulLoLYnK4E_k0xunVY,20617 +jupyter_contrib_nbextensions/nbextensions/scroll_down/main.js,sha256=OiKg4jZPlAREuIEaZ_N5a6iRu-coSj-XptCp0FhE7A4,1695 +jupyter_contrib_nbextensions/nbextensions/scroll_down/readme.md,sha256=tBxnGtJeU3RrQOzpoqViHogeEzmQu2dvDeWQ7rjE0Vg,341 +jupyter_contrib_nbextensions/nbextensions/select_keymap/README.md,sha256=--GVJkDXdZMAQkkMINzEx748UskSfgH2JeXE6SUCrxE,681 +jupyter_contrib_nbextensions/nbextensions/select_keymap/main.js,sha256=NKv-gn7-WntukzId6j22ZX4U-53fOz2gsCjnZOCaY18,12237 +jupyter_contrib_nbextensions/nbextensions/select_keymap/select_keymap.png,sha256=xch45-X6q5XVyJyUq20LJFBFNgr6WRLLPE8aVg-EzzU,43352 +jupyter_contrib_nbextensions/nbextensions/select_keymap/select_keymap.yaml,sha256=diF0JtAnq9iI1b1oM5VleJ-rpZVz23ZA1CGill8bHwM,504 +jupyter_contrib_nbextensions/nbextensions/skill/README.md,sha256=EqtQAxLI2Msc89cJTuNDLhNRz5wplcih2fPZdqsYFO4,587 +jupyter_contrib_nbextensions/nbextensions/skill/main.js,sha256=YzFBDiIuXb2EvB7LQCOr6nMxYxrR2kShu7YlOAntYYg,429 +jupyter_contrib_nbextensions/nbextensions/skill/skill.js,sha256=yCdcwSmtncZoV4LoU19X0OljjjvDyCbvMZYgnowGhoc,134311 +jupyter_contrib_nbextensions/nbextensions/skill/skill.yaml,sha256=f_lASzosfAbMiMNgUBiy3J0l7oSJ10hLJmxtlrNiyCk,162 +jupyter_contrib_nbextensions/nbextensions/skip-traceback/icon.png,sha256=C5NU54liYWmx9aAKM8yTaC_HGDYY9RxCdjJFi1WeIek,4160 +jupyter_contrib_nbextensions/nbextensions/skip-traceback/main.js,sha256=GfoZW0vfDe0sa7KGI283AXE-OYgLHIXwMx_yKoSrUz0,8309 +jupyter_contrib_nbextensions/nbextensions/skip-traceback/readme.md,sha256=6BCN8NxYtFJYjmmexILwqchK-diwmbu_VBeH8LKLxDc,2365 +jupyter_contrib_nbextensions/nbextensions/skip-traceback/skip-traceback.png,sha256=C0j_INSeBaMc1NSD_ogn3I3mbr7MmHw7cdKkBxJ3YQM,19138 +jupyter_contrib_nbextensions/nbextensions/skip-traceback/skip-traceback.yaml,sha256=ClQltOy7_O8MgDbixJRjrFUgA1obuOKvzRfLrTlj5rw,1272 +jupyter_contrib_nbextensions/nbextensions/skip-traceback/traceback.png,sha256=mCKrtPk9-z85I9hzEC49Edioho3JxnOjk8J8lqCo8nE,59231 +jupyter_contrib_nbextensions/nbextensions/snippets/README.md,sha256=uKIM-UO3rhkiF5YDCONZs-38V0nnxWKz-WCQ0z5RfJM,1852 +jupyter_contrib_nbextensions/nbextensions/snippets/main.js,sha256=-ovJPzUwOO99BjRuubMa2Fov1_68C6LUA9jt_pxjA88,2521 +jupyter_contrib_nbextensions/nbextensions/snippets/snippets-demo.gif,sha256=ov12CvVRqYawKZZREQ-nfXeuLZt3MrUrKI9WlFUiHU8,430716 +jupyter_contrib_nbextensions/nbextensions/snippets/snippets.json,sha256=8trMsO_t7uEk3yEsBEvq3t3j5luir_xRDHLLUKYMr30,407 +jupyter_contrib_nbextensions/nbextensions/snippets/snippets.yaml,sha256=PSCbBP_Sx4MzQ3N-FvBi9BVa3V-xTq_43WVX064G5iw,188 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/config.yaml,sha256=vBa-CLUTuLaw5SPm8I3kfOGmsFxGT82p5TUKhlQMDIo,3927 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/examples_for_custom.js,sha256=xUit6Tgu2tD0BI4fHyuYQsDBeL0ND1Irc84NZ3z3cys,8255 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/main.js,sha256=D2sb0DBCyBokfHIuiYA91N-NgPAIqiQ9PdoXTdJUVZE,10543 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/readme.md,sha256=PxRCXXh1ZMpa6t9kPgPMNqBYWbWqcc0Q7bGT9O7brGo,29359 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/screenshot1.png,sha256=4MgwUF8ONx0XHZBgYC4gWn6XkB7O3LLPdsu-jede1os,549596 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/screenshot2.png,sha256=FFltRxn-VpoLBqcYZpitlTBGcj__NKxAgMX5yvSL4Q0,478926 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/screenshot3.png,sha256=JEW1NMo2kCsok1K5a0AUrAqQL8hnVpMQkHXbDa14e5E,402696 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_menu.css,sha256=JQjLwEZlAtK153mUI8aA4ou3NLVUzy1BC_XGyIHS9Gc,1848 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenu_markdown.js,sha256=z-Ao1Kls8WDE6UHWItaQCaaHmtzbDUSOlgotphbT6Lw,2863 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenu_python.js,sha256=fY3rsxKangoiotYeu57KS8D4JjOK6aNvTuSf6Df7cH4,718 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/astropy.js,sha256=KHvZx5aMYYvu4UwAWz_CN26oXxBOSxfC9iDrSWWyi7U,6702 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/h5py.js,sha256=5gO4CN2C4cmgcYDjqenGJNtBN2BSiq1GUbDdbBgfa_o,886 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/matplotlib.js,sha256=idj5j4iuYpHisIaM594HhYPuK_mw5Kam5FC4uSPUEEg,8282 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/numba.js,sha256=9zM80ZaP_8DGAlmHUTRWrmQd2KWsDXUhmEjtUHQS_FE,1481 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/numpy.js,sha256=Ypv39YsNz27rKE-r7CsoGgEEHccrL0JJECxcwtiWVnw,29733 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/numpy_polynomial.js,sha256=ZHUC7quJxBf0UhaszNYRR0h-55fGy0pbeqUKJjMCp4g,3638 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/numpy_ufuncs.js,sha256=K7ZxrzZn8KkOblpRU_wPzqkdhFY76gyqwQMZ3T_D6ow,35530 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/pandas.js,sha256=uEYb0vALDRAdwxnF9WHzziUmsPKDRmTSB46vLaQL0tI,5560 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/python.js,sha256=HivFerNG10P_qUXE3Zyzp2xDcn1vZVLubOZ4Qy7JQ2g,9117 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/python_regex.js,sha256=byuRuGZYZDz32wfWcueW6i8mb0FWY_L2SsTC2QE9Jvw,11298 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/scipy.js,sha256=MvmWFRb7-EXUrrz1WJ742gSBhdq6gGdevgaF2VNtQeY,31620 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/scipy_constants.js,sha256=dC0X_DDPbkMFKR4EfwnEFV0OJ_hS5bXIQIGKdFB4fsU,103938 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/scipy_special.js,sha256=ua5K7L5rpLyhK5I5iLK8vabYo3ICPHMQBNAcNoEsIrU,76141 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/sympy.js,sha256=P2ilZP0uOpb814IYekQHpYPi20SQwapWcmcnSvfsCMM,34425 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/sympy_assumptions.js,sha256=9royuX29ax34k5xOoQeseT0uYkoLRFCFt8JfgTCYx3k,2643 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/snippets_submenus_python/sympy_functions.js,sha256=R9395MGdKHxLxM3hn-DFygpXsY0rWWTg7K-lJBYsOUs,25192 +jupyter_contrib_nbextensions/nbextensions/snippets_menu/thumbnail.png,sha256=o9fqmU7JwllPkmfS7lqh6NIV3WDSUzZ0VxtX2idbtok,141685 +jupyter_contrib_nbextensions/nbextensions/spellchecker/README.md,sha256=hgQ0uxKJTkBfeitmY-8WRIC2bpvHJwIbXNdGw4X2kDM,4422 +jupyter_contrib_nbextensions/nbextensions/spellchecker/__pycache__/download_new_dict.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbextensions/spellchecker/config.yaml,sha256=s8YbdF6bxL9KcWmMmb3XF8gHyQTjnJWdC_UdmkEqOWQ,1005 +jupyter_contrib_nbextensions/nbextensions/spellchecker/download_new_dict.py,sha256=Z7YueTQBguO-oul5IqKgTW4s1wmwopaIqwf0anSj2FM,1254 +jupyter_contrib_nbextensions/nbextensions/spellchecker/main.css,sha256=2hQNeFbcEDLWLfUYQbtVeofQXFQ04sxeo_lQk6xuD5E,244 +jupyter_contrib_nbextensions/nbextensions/spellchecker/main.js,sha256=Z21BKeiTmrcYT9_Djt2_P3YiigFdrxLeaOA__Z3krXA,6110 +jupyter_contrib_nbextensions/nbextensions/spellchecker/screenshot.png,sha256=njxGUXbbx0t7zqESTvVxF-4jZcjywKpdchLOcqigqkI,25608 +jupyter_contrib_nbextensions/nbextensions/spellchecker/typo/LICENSE.txt,sha256=BdpfojyzzyqPL9St-eB11gI1-vSC9L5EdmIiElRbLaU,1674 +jupyter_contrib_nbextensions/nbextensions/spellchecker/typo/typo.js,sha256=hz5Qli7gofpHb1vwpqpbeOh1R8YWzMCABwKYJg3LVpw,21170 +jupyter_contrib_nbextensions/nbextensions/splitcell/icon.png,sha256=r7hhWR4P4iBp_2ZHOeZpwV0990jCkyQ5bFMXURLLUZU,6382 +jupyter_contrib_nbextensions/nbextensions/splitcell/readme.md,sha256=cx10KVK3mYjT1wywEGEGzzCJR9ehomyXYPlSZEVYAcs,118 +jupyter_contrib_nbextensions/nbextensions/splitcell/splitcell.js,sha256=hAHyxGB7zqZnJKVWXVqRiRiQFd1wM1Psrhi9YgIZGAA,2666 +jupyter_contrib_nbextensions/nbextensions/splitcell/splitcell.yaml,sha256=NKfIirN-t6AfIJBTUOPfmfXqF8d4kpWUhx72GzztrT4,198 +jupyter_contrib_nbextensions/nbextensions/table_beautifier/README.md,sha256=gfd9FCQ0qonFQRZH-uWuysPOMvgOQzzzOylduDwiGOI,108 +jupyter_contrib_nbextensions/nbextensions/table_beautifier/main.css,sha256=57avNUy34vc05UECpmhk8QNwE9wwqolR5GvzMp2GXAg,1196 +jupyter_contrib_nbextensions/nbextensions/table_beautifier/main.js,sha256=xcdXEQcFYjwPz7-Ey4uJEQestgqC8VHS-HEdTZeGN1I,2048 +jupyter_contrib_nbextensions/nbextensions/table_beautifier/table_beautifier.yaml,sha256=eHCr8B_Hf1XFkspLL4feFbsGdlwFnbBzReg71GGJ2t0,195 +jupyter_contrib_nbextensions/nbextensions/toc2/README.md,sha256=tBdMgRGjlHrB7v0YrzHrGTJwVo5BuWfq2J9-uHBKQf0,11008 +jupyter_contrib_nbextensions/nbextensions/toc2/demo.gif,sha256=GRiWIHEGMMYHO8n7BkZOazt_qoXQnqUvpw2APZz7pYc,3485814 +jupyter_contrib_nbextensions/nbextensions/toc2/demo2.gif,sha256=EQB7I3R6AXIMZL16vRyCIu8NvQL5jX7f2L6yb25fPAw,420511 +jupyter_contrib_nbextensions/nbextensions/toc2/demo3.gif,sha256=3qBWMmq6GtOnlpWNUFwIejltU0klWvc9nMxTKnqvDIg,88268 +jupyter_contrib_nbextensions/nbextensions/toc2/demo_dark.png,sha256=uGT3d8vRpU10h7f5zbRoLPlk5mxghZucdI0F_nnoF-Y,77531 +jupyter_contrib_nbextensions/nbextensions/toc2/icon.png,sha256=qnWTfoW5YTF-qrH76cE6Q_3Wq32_zptFcj8lvKn56fo,25717 +jupyter_contrib_nbextensions/nbextensions/toc2/image.png,sha256=R_FwSMg0K7VwkvUSHmP_JMkXXKfbB2DxmWctnAXWhiI,35639 +jupyter_contrib_nbextensions/nbextensions/toc2/main.css,sha256=aoReDx6BocITvIiC9HWd2B84C-kT2aDbB0xwH0Hkico,3751 +jupyter_contrib_nbextensions/nbextensions/toc2/main.js,sha256=TwzguuR1S_6vDzX8YBnlmweOWvYNAKVtmeEtIITyk6M,8131 +jupyter_contrib_nbextensions/nbextensions/toc2/toc2.js,sha256=WiuOhNZFfE8C5Tur3TDL8UzOFVvjAdCBHj6HfRvvWb0,35209 +jupyter_contrib_nbextensions/nbextensions/toc2/toc2.yaml,sha256=KK1qvic8ipzK8UhMSYx4irVbOG0UPnh_sGy4Acx19eA,3572 +jupyter_contrib_nbextensions/nbextensions/toggle_all_line_numbers/icon.png,sha256=GKC3pmRy9Kfp5pZXoSC6e9GCo-g6yAnvBi8cAShb-sE,29356 +jupyter_contrib_nbextensions/nbextensions/toggle_all_line_numbers/main.js,sha256=_4jiibrgG1Fv9xQEI_D8zV3OeykMXcvBczHDtPV2gXQ,2609 +jupyter_contrib_nbextensions/nbextensions/toggle_all_line_numbers/main.yaml,sha256=vXKugGVG_bZInPEToYSbWATaCybzpF_X3C9uaz3hLZk,504 +jupyter_contrib_nbextensions/nbextensions/toggle_all_line_numbers/readme.md,sha256=YP84oLg3vtjDb6owwMibxxcIKOnJzQgHCay1gX_BxXo,177 +jupyter_contrib_nbextensions/nbextensions/tree-filter/demo.gif,sha256=CLous2zEK81D6I-7wmt6p2e7-d5lTosCMh13mmG8sPE,222667 +jupyter_contrib_nbextensions/nbextensions/tree-filter/index.js,sha256=4eHmaekpv4X3GEe3PGOe9nHikkbHoxGAzEUSsjsAhrw,4214 +jupyter_contrib_nbextensions/nbextensions/tree-filter/readme.md,sha256=J6BYV62mn1njO0XOjRgk3emWk3dntdhx4qlo0JNc3Xw,237 +jupyter_contrib_nbextensions/nbextensions/tree-filter/tree-filter.yaml,sha256=J434qpk_X0B50snK9CvPog3Pny9IPA9Y_pmYMSMGXJ8,340 +jupyter_contrib_nbextensions/nbextensions/varInspector/README.md,sha256=6xcrz09Yw1Fo7WdVW2F5NWKxXckLC-4XzFuZcO9EoEM,2854 +jupyter_contrib_nbextensions/nbextensions/varInspector/__pycache__/var_list.cpython-37.pyc,, +jupyter_contrib_nbextensions/nbextensions/varInspector/demo.gif,sha256=Nmy1FnRUabvCGKdXmGuC7Jy5LHUPbN3zMplBFapxxR8,705345 +jupyter_contrib_nbextensions/nbextensions/varInspector/icon.png,sha256=0IV3ZbBkesUQyQ2GVARNCAxuVFDZLknjDdv5MMYH74E,9557 +jupyter_contrib_nbextensions/nbextensions/varInspector/jquery.tablesorter.min.js,sha256=Qu834FiMpsNuakUchQ2zzjGJllvnMHtAhJFksZ4LL-A,41811 +jupyter_contrib_nbextensions/nbextensions/varInspector/main.css,sha256=P0IOjL0PGvEZz7OaydR7GXdAa6iJ_fGiJ-fT5A92bNM,2477 +jupyter_contrib_nbextensions/nbextensions/varInspector/main.js,sha256=_nzKbfWYULuzjh6AL-nmNslINfvfFt8B8JjbsQJqci8,20119 +jupyter_contrib_nbextensions/nbextensions/varInspector/tablesorter_LICENSE.txt,sha256=-95ADqb_71YpfqeqwjHtL0bqwWsyaXrc_e8LBazZwto,1080 +jupyter_contrib_nbextensions/nbextensions/varInspector/varInspector.yaml,sha256=B6AfSYnj4_9IOgTPyV237c2D1J_LpDNEWN_dikTTwT8,1559 +jupyter_contrib_nbextensions/nbextensions/varInspector/var_list.py,sha256=ds8ge6T7Nz4aUqyiSOswvKz3boJAsnLoHXiYI1qpCIg,1530 +jupyter_contrib_nbextensions/nbextensions/varInspector/var_list.r,sha256=Hy0ln7MjWqALPq8KEDdO6cXSxGtCzWEuLBRJanbJQ6o,710 +jupyter_contrib_nbextensions/nbextensions/zenmode/README.md,sha256=rqorOwXr97EVnIfl6veyqu_0yLnEEz4vUe9v5-8yI-E,89 +jupyter_contrib_nbextensions/nbextensions/zenmode/images/back1.jpg,sha256=-btTTjCcJzfZTxZ2hkDciZuxUfuEdQm6B4f_xjboaVo,297914 +jupyter_contrib_nbextensions/nbextensions/zenmode/images/back11.jpg,sha256=scOkWFgy-McVRoqAPNASetFx6AWqm_OamNnZc_ZGMS4,433805 +jupyter_contrib_nbextensions/nbextensions/zenmode/images/back12.jpg,sha256=vMbVKNdkKuNltgXFMw4GRqfM3oveELZSLWh_8PauJro,332399 +jupyter_contrib_nbextensions/nbextensions/zenmode/images/back2.jpg,sha256=EQe3uYJPg3clCC3WohT7HzGZ7n7msRvxUPwrZafWDLE,189571 +jupyter_contrib_nbextensions/nbextensions/zenmode/images/back21.jpg,sha256=m6LID_pDh8dfcNO2nUQSBm3npVd52sI8hFuqpVFy2rc,318671 +jupyter_contrib_nbextensions/nbextensions/zenmode/images/back22.jpg,sha256=3EhIkE9S4Ys-kUP-rUw-bd2qDUFcY0OVFbrytB7bICQ,258565 +jupyter_contrib_nbextensions/nbextensions/zenmode/images/back3.jpg,sha256=xOLru3Xd6Ph14r_mKHfMZt7qeJ3Mpz5b25-katm0AzY,66940 +jupyter_contrib_nbextensions/nbextensions/zenmode/images/ipynblogo0.png,sha256=oMI6piRrWhjlvUZTCTQztEoYjoOnt9m0q0bk7-QUb7A,24862 +jupyter_contrib_nbextensions/nbextensions/zenmode/images/ipynblogo1.png,sha256=adKpJud0CMdeCxlrSUGzWSQ-XIxRy3nN5H8zvs9tSHg,215078 +jupyter_contrib_nbextensions/nbextensions/zenmode/main.css,sha256=xAp-mz9aRUj8bkJeuPHuTv6sh1bo8TiD2tghG7zopno,553 +jupyter_contrib_nbextensions/nbextensions/zenmode/main.js,sha256=ohd2yxF40WfWtkyDYnkRp0rPuqr6GQGqHSx4RvusDNY,7017 +jupyter_contrib_nbextensions/nbextensions/zenmode/zenmode.yaml,sha256=VSmVhnFNNKQuXPr0sR4k_iwmoooQ0pbUeJOpT4S1FsM,862 +jupyter_contrib_nbextensions/templates/collapsible_headings.tpl,sha256=rTKto-1r16avJC91lR45D-0UhpvJcKEFab3tsnpecpk,500 +jupyter_contrib_nbextensions/templates/highlighter.tpl,sha256=3MIqmqmqfMOCL5_kRQgIpiZnRrJ-tcFga17-GHNe-EM,161 +jupyter_contrib_nbextensions/templates/highlighter.tplx,sha256=zHsqwTLKdIVGEtXUVgObBuoRyl1fXngNRxPH7lGG_dA,1422 +jupyter_contrib_nbextensions/templates/inliner.tpl,sha256=IYlDnjI_-nYqaXLaKoyYZ85JUVfVbDPxlG3wUIZ0vdE,327 +jupyter_contrib_nbextensions/templates/nbextensions.tpl,sha256=6klByxD0vP_46EGxjY4g0IUgfcFNFLMB4GBGPVcEQOg,525 +jupyter_contrib_nbextensions/templates/nbextensions.tplx,sha256=1u9YrCWhk-3wHP9lWxFn8BTRWmBunIhl1rnU1p6hFZ0,2096 +jupyter_contrib_nbextensions/templates/printviewlatex.tplx,sha256=KH93pF9vaqNh8DiDUOsymrigCNVvlKlxa4ke6GbqZXw,1230 +jupyter_contrib_nbextensions/templates/toc2.tpl,sha256=GsZxlm1rpzIDNYh75NPVr0v6x1W5tzZ0A8NTpxXNOts,1111 diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/REQUESTED b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/REQUESTED new file mode 100644 index 00000000..e69de29b diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/WHEEL b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/WHEEL new file mode 100644 index 00000000..7332a419 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.30.0) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/entry_points.txt b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/entry_points.txt new file mode 100644 index 00000000..a9af699b --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/entry_points.txt @@ -0,0 +1,12 @@ +[console_scripts] +jupyter-contrib-nbextension = jupyter_contrib_nbextensions.application:main + +[jupyter_contrib_core.app.subcommands] +nbextension = jupyter_contrib_nbextensions.application:jupyter_contrib_core_app_subcommands + +[nbconvert.exporters] +html_ch = jupyter_contrib_nbextensions.nbconvert_support.collapsible_headings:ExporterCollapsibleHeadings +html_embed = jupyter_contrib_nbextensions.nbconvert_support.embedhtml:EmbedHTMLExporter +html_toc = jupyter_contrib_nbextensions.nbconvert_support.toc2:TocExporter +selectLanguage = jupyter_contrib_nbextensions.nbconvert_support.nbTranslate:NotebookLangExporter + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/metadata.json b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/metadata.json new file mode 100644 index 00000000..50c1b807 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/metadata.json @@ -0,0 +1 @@ +{"classifiers": ["Development Status :: 1 - Planning", "Intended Audience :: End Users/Desktop", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: JavaScript", "Programming Language :: Python", "Topic :: Utilities"], "download_url": "https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tarball/0.5.1", "extensions": {"python.commands": {"wrap_console": {"jupyter-contrib-nbextension": "jupyter_contrib_nbextensions.application:main"}}, "python.details": {"contacts": [{"email": "jupytercontrib@gmail.com", "name": "ipython-contrib and jupyter-contrib developers", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://github.com/ipython-contrib/jupyter_contrib_nbextensions.git"}}, "python.exports": {"console_scripts": {"jupyter-contrib-nbextension": "jupyter_contrib_nbextensions.application:main"}, "jupyter_contrib_core.app.subcommands": {"nbextension": "jupyter_contrib_nbextensions.application:jupyter_contrib_core_app_subcommands"}, "nbconvert.exporters": {"html_ch": "jupyter_contrib_nbextensions.nbconvert_support.collapsible_headings:ExporterCollapsibleHeadings", "html_embed": "jupyter_contrib_nbextensions.nbconvert_support.embedhtml:EmbedHTMLExporter", "html_toc": "jupyter_contrib_nbextensions.nbconvert_support.toc2:TocExporter", "selectLanguage": "jupyter_contrib_nbextensions.nbconvert_support.nbTranslate:NotebookLangExporter"}}}, "extras": ["test"], "generator": "bdist_wheel (0.30.0)", "keywords": ["IPython", "Jupyter", "notebook"], "license": "BSD", "metadata_version": "2.0", "name": "jupyter-contrib-nbextensions", "platform": "Any", "run_requires": [{"requires": ["ipython-genutils", "jupyter-contrib-core (>=0.3.3)", "jupyter-core", "jupyter-highlight-selected-word (>=0.1.1)", "jupyter-latex-envs (>=1.3.8)", "jupyter-nbextensions-configurator (>=0.4.0)", "lxml", "nbconvert (>=4.2)", "notebook (>=4.0)", "pyyaml", "tornado", "traitlets (>=4.1)"]}, {"extra": "test", "requires": ["nbformat", "nose", "pip", "requests"]}, {"environment": "python_version == \"2.7\"", "extra": "test", "requires": ["mock"]}], "summary": "A collection of Jupyter nbextensions.", "version": "0.5.1"} \ No newline at end of file diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/top_level.txt b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/top_level.txt new file mode 100644 index 00000000..c70b86bd --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions-0.5.1.dist-info/top_level.txt @@ -0,0 +1 @@ +jupyter_contrib_nbextensions diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/__init__.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/__init__.py new file mode 100644 index 00000000..c03a6c7c --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/__init__.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- + +import os + +import jupyter_nbextensions_configurator + +__version__ = '0.5.1' + + +def _jupyter_server_extension_paths(): + """Magically-named function for jupyter extension installations.""" + return [] + + +def _jupyter_nbextension_paths(): + """Magically-named function for jupyter extension installations.""" + nbextension_dirs = [ + os.path.join(os.path.dirname(__file__), 'nbextensions')] + specs = jupyter_nbextensions_configurator.get_configurable_nbextensions( + nbextension_dirs=nbextension_dirs) + + return [dict( + section=nbext['Section'], + # src is a directory in which we assume the require file resides. + # the path is relative to the package directory + src=os.path.join( + 'nbextensions', + os.path.dirname(nbext['require']) + ), + # directory in the `nbextension/` namespace + dest=os.path.dirname(nbext['require']), + # _also_ in the `nbextension/` namespace + require=nbext['require'], + ) for nbext in specs] diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/application.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/application.py new file mode 100644 index 00000000..90b1fd0f --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/application.py @@ -0,0 +1,258 @@ +# -*- coding: utf-8 -*- +"""App to install/remove jupyter_contrib_nbextensions.""" + +from __future__ import print_function, unicode_literals + +import copy +import sys + +from jupyter_contrib_core.notebook_compat.nbextensions import ArgumentConflict +from jupyter_core.application import JupyterApp +from tornado.log import LogFormatter +from traitlets import Bool, Unicode, default + +import jupyter_contrib_nbextensions +from jupyter_contrib_nbextensions.install import ( + NotebookRunningError, install, toggle_install_config, toggle_install_files, + uninstall, +) +from jupyter_contrib_nbextensions.migrate import migrate + + +class BaseContribNbextensionsApp(JupyterApp): + """Base class for jupyter_contrib_nbextensions apps.""" + + version = jupyter_contrib_nbextensions.__version__ + + _log_formatter_cls = LogFormatter + + @default('log_datefmt') + def _log_datefmt_default(self): + """Exclude date from timestamp.""" + return "%H:%M:%S" + + @default('log_format') + def _log_format_default(self): + """Override default log format to include time.""" + return ('%(color)s[' + '%(levelname)1.1s %(asctime)s %(name)s' + ']%(end_color)s ' + '%(message)s') + + +class BaseContribNbextensionsInstallApp(BaseContribNbextensionsApp): + """Install/Uninstall jupyter_contrib_nbextensions.""" + + aliases = { + 'prefix': 'BaseContribNbextensionsInstallApp.prefix', + 'nbextensions': 'BaseContribNbextensionsInstallApp.nbextensions_dir', + } + flags = { + 'debug': JupyterApp.flags['debug'], + 'user': ({ + 'BaseContribNbextensionsInstallApp': {'user': True}}, + 'Perform the operation for the current user' + ), + 'system': ({ + 'BaseContribNbextensionsInstallApp': { + 'user': False, 'sys_prefix': False}}, + 'Perform the operation system-wide' + ), + 'sys-prefix': ( + {'BaseContribNbextensionsInstallApp': {'sys_prefix': True}}, + 'Use sys.prefix as the prefix for installing' + ), + # below flags apply only to nbextensions, not server extensions + 'overwrite': ( + {'BaseContribNbextensionsInstallApp': {'overwrite': True}}, + 'Force overwrite of existing nbextension files, ' + 'regardless of modification time' + ), + 'symlink': ( + {'BaseContribNbextensionsInstallApp': {'symlink': True}}, + 'Create symlinks for nbextensions instead of copying files' + ), + 'skip-running-check': ( + {'BaseContribNbextensionsInstallApp': + {'skip_running_check': True}}, + 'Perform actions even if notebook server(s) are already running' + ), + 'perform-running-check': ( + {'BaseContribNbextensionsInstallApp': + {'skip_running_check': False}}, + 'Only perform actions if no notebook server(s) are running' + ), + } + + _conflicting_flagsets = [['--user', '--system', '--sys-prefix'], ] + + user = Bool(False, config=True, help='Whether to do a user install') + sys_prefix = Bool(False, config=True, + help='Use the sys.prefix as the prefix') + + # settings pertaining to nbextensions installation only + overwrite = Bool(False, config=True, + help='Force overwrite of existing nbextension files') + symlink = Bool(False, config=True, + help='Create symlinks instead of copying nbextension files') + prefix = Unicode( + '', config=True, + help='Installation prefix, currently only used for nbextensions') + nbextensions_dir = Unicode( + '', config=True, + help='Full path to nbextensions dir ' + '(consider instead using system, sys_prefix, prefix or user option)') + skip_running_check = Bool( + True, config=True, + help='Perform actions even if notebook server(s) are already running') + + def parse_command_line(self, argv=None): + """ + Overriden to check for conflicting flags + + Since notebook version doesn't do it very well + """ + for conflicting_flags in map(set, self._conflicting_flagsets): + if len(conflicting_flags.intersection(set(argv))) > 1: + raise ArgumentConflict( + 'cannot specify more than one of {}'.format( + ', '.join(conflicting_flags))) + return super(BaseContribNbextensionsInstallApp, + self).parse_command_line(argv) + + +BaseContribNbextensionsInstallApp.flags['s'] = ( + BaseContribNbextensionsInstallApp.flags['symlink']) + + +class InstallContribNbextensionsApp(BaseContribNbextensionsInstallApp): + """Install jupyter_contrib_nbextensions.""" + + _toggle_value = True # whether to install or uninstall + + flags = copy.deepcopy(BaseContribNbextensionsInstallApp.flags) + flags.update({ + 'only-config': ( + {'BaseContribNbextensionsInstallApp': {'only_config': True}}, + 'Edit config files, but do not install/remove nbextensions files' + ), + 'only-files': ( + {'BaseContribNbextensionsInstallApp': {'only_files': True}}, + 'Install/remove nbextensions files, but do not edit config files' + ), + }) + + _conflicting_flagsets = ( + BaseContribNbextensionsInstallApp._conflicting_flagsets + + ['--only-config', '--only-files']) + + only_config = Bool(False, config=True, help=( + 'Edit config files, but do not install/remove nbextensions files')) + only_files = Bool(False, config=True, help=( + 'Install/remove nbextensions files, but do not edit config files')) + + @property + def name(self): + return 'jupyter contrib nbextension {}'.format( + 'install' if self._toggle_value else 'uninstall') + + @property + def description(self): + return '{} jupyter_contrib_nbextensions.'.format( + 'Install' if self._toggle_value else 'Uninstall') + + def start(self): + """Perform the App's actions as configured.""" + if self.extra_args: + sys.exit('{} takes no extra arguments'.format(self.name)) + self.log.info('{} {}'.format(self.name, ' '.join(self.argv))) + kwargs = dict( + user=self.user, sys_prefix=self.sys_prefix, logger=self.log, + skip_running_check=self.skip_running_check) + kwargs_files = dict(**kwargs) + kwargs_files.update(dict( + prefix=self.prefix, nbextensions_dir=self.nbextensions_dir, + overwrite=self.overwrite, symlink=self.symlink)) + try: + if not self.only_config: + toggle_install_files(self._toggle_value, **kwargs_files) + if not self.only_files: + toggle_install_config(self._toggle_value, **kwargs) + except NotebookRunningError as err: + self.log.warn('Error: %s', err) + self.log.info( + 'To perform actions even while a notebook server is running,' + 'you may use the flag\n--skip-running-check') + raise + + +class UninstallContribNbextensionsApp(InstallContribNbextensionsApp): + """Uninstall jupyter_contrib_nbextensions.""" + _toggle_value = False + + +class MigrateContribNbextensionsApp(BaseContribNbextensionsInstallApp): + """ + Migrate config from an old pre-jupyter_contrib_nbextensions install. + + Neatly edits/removes config keys and/or files from installs of + ipython-contrib/IPython-notebook-extensions. + """ + name = 'jupyter contrib nbextension migrate' + description = ('Uninstall any old pre-jupyter_contrib_nbextensions install' + ' by removing old config keys and files.') + + def start(self): + """Perform the App's actions as configured.""" + self.log.info('{} {}'.format(self.name, ' '.join(self.argv))) + return migrate(logger=self.log) + + +class ContribNbextensionsApp(BaseContribNbextensionsApp): + """Main jupyter_contrib_nbextensions application.""" + + name = 'jupyter contrib nbextension' + description = ( + 'Install or uninstall all of jupyter_contrib_nbextensions.' + ) + examples = '\n'.join(['jupyter contrib nbextension ' + t for t in [ + 'install # {}'.format(install.__doc__), + 'uninstall # {}'.format(uninstall.__doc__), + 'migrate # {}'.format(migrate.__doc__), + ]]) + subcommands = dict( + install=(InstallContribNbextensionsApp, install.__doc__), + uninstall=(UninstallContribNbextensionsApp, uninstall.__doc__), + migrate=(MigrateContribNbextensionsApp, migrate.__doc__), + ) + + def start(self): + """Perform the App's functions as configured.""" + super(ContribNbextensionsApp, self).start() + + # The above should have called a subcommand and raised NoStart; if we + # get here, it didn't, so we should self.log.info a message. + subcmds = ', '.join(sorted(self.subcommands)) + sys.exit('Please supply at least one subcommand: {}'.format(subcmds)) + + +def jupyter_contrib_core_app_subcommands(): + """Return dict of subcommands for use by jupyter_contrib_core.""" + subcommands = dict( + nbextension=(ContribNbextensionsApp, + ContribNbextensionsApp.description) + ) + # alias with an 's' as well as without + subcommands['nbextensions'] = subcommands['nbextension'] + return subcommands + + +# ----------------------------------------------------------------------------- +# Main +# ----------------------------------------------------------------------------- + +main = ContribNbextensionsApp.launch_instance + + +if __name__ == '__main__': + main() diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/config_scripts/__init__.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/config_scripts/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/config_scripts/highlight_html_cfg.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/config_scripts/highlight_html_cfg.py new file mode 100644 index 00000000..775488f5 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/config_scripts/highlight_html_cfg.py @@ -0,0 +1,18 @@ +import os + +import jupyter_contrib_nbextensions.nbconvert_support + +jcnbe_dir = os.path.dirname(jupyter_contrib_nbextensions.__file__) +pp_mod_name = 'jupyter_contrib_nbextensions.nbconvert_support.pp_highlighter' + +c = get_config() # noqa +c.NbConvertApp.export_format = "html" +c.Exporter.template_path = [ + '.', + jupyter_contrib_nbextensions.nbconvert_support.templates_directory(), + os.path.join(jcnbe_dir, 'nbextensions', 'highlighter') +] +c.Exporter.preprocessors = [pp_mod_name + '.HighlighterPreprocessor'] +c.NbConvertApp.postprocessor_class = pp_mod_name + '.HighlighterPostProcessor' +# html +c.Exporter.template_file = 'highlighter.tpl' diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/config_scripts/highlight_latex_cfg.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/config_scripts/highlight_latex_cfg.py new file mode 100644 index 00000000..46530cbe --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/config_scripts/highlight_latex_cfg.py @@ -0,0 +1,20 @@ +import os + +import jupyter_contrib_nbextensions.nbconvert_support + +jcnbe_dir = os.path.dirname(jupyter_contrib_nbextensions.__file__) +pp_mod_name = 'jupyter_contrib_nbextensions.nbconvert_support.pp_highlighter' + +c = get_config() # noqa +c.NbConvertApp.export_format = "latex" +c.Exporter.template_path = [ + '.', + jupyter_contrib_nbextensions.nbconvert_support.templates_directory(), + os.path.join(jcnbe_dir, 'nbextensions', 'highlighter') +] +c.Exporter.preprocessors = [pp_mod_name + '.HighlighterPreprocessor'] +c.NbConvertApp.postprocessor_class = pp_mod_name + '.HighlighterPostProcessor' +# latex +c.Exporter.template_file = 'highlighter.tplx' +# html +# c.Exporter.template_file = 'highlighter.tpl' diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/install.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/install.py new file mode 100644 index 00000000..920140ce --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/install.py @@ -0,0 +1,239 @@ +# -*- coding: utf-8 -*- +"""API to install/remove all jupyter_contrib_nbextensions.""" + +from __future__ import ( + absolute_import, division, print_function, unicode_literals, +) + +import errno +import os + +import jupyter_highlight_selected_word +import latex_envs +from jupyter_contrib_core.notebook_compat import nbextensions +from jupyter_nbextensions_configurator.application import ( + EnableJupyterNbextensionsConfiguratorApp, +) +from notebook.notebookapp import list_running_servers +from traitlets.config import Config +from traitlets.config.manager import BaseJSONConfigManager + +import jupyter_contrib_nbextensions.nbconvert_support + + +class NotebookRunningError(Exception): + pass + + +def notebook_is_running(runtime_dir=None): + """Return true if a notebook process appears to be running.""" + try: + return bool(next(list_running_servers(runtime_dir=runtime_dir))) + except StopIteration: + return False + + +def toggle_install(install, user=False, sys_prefix=False, overwrite=False, + symlink=False, prefix=None, nbextensions_dir=None, + logger=None, skip_running_check=False): + """Install or remove all jupyter_contrib_nbextensions files & config.""" + _err_on_running(skip_running_check=skip_running_check) + _check_conflicting_kwargs(user=user, sys_prefix=sys_prefix, prefix=prefix, + nbextensions_dir=nbextensions_dir) + toggle_install_files( + install, user=user, sys_prefix=sys_prefix, overwrite=overwrite, + symlink=symlink, prefix=prefix, nbextensions_dir=nbextensions_dir, + logger=logger, skip_running_check=skip_running_check) + toggle_install_config( + install, user=user, sys_prefix=sys_prefix, logger=logger, + skip_running_check=skip_running_check) + + +def toggle_install_files(install, user=False, sys_prefix=False, logger=None, + overwrite=False, symlink=False, prefix=None, + nbextensions_dir=None, skip_running_check=False): + """Install/remove jupyter_contrib_nbextensions files.""" + _err_on_running(skip_running_check=skip_running_check) + kwargs = dict(user=user, sys_prefix=sys_prefix, prefix=prefix, + nbextensions_dir=nbextensions_dir) + _check_conflicting_kwargs(**kwargs) + kwargs['logger'] = logger + if logger: + logger.info( + '{} jupyter_contrib_nbextensions nbextension files {} {}'.format( + 'Installing' if install else 'Uninstalling', + 'to' if install else 'from', + 'jupyter data directory')) + component_nbext_packages = [ + jupyter_contrib_nbextensions, + jupyter_highlight_selected_word, + latex_envs, + ] + for mod in component_nbext_packages: + if install: + nbextensions.install_nbextension_python( + mod.__name__, overwrite=overwrite, symlink=symlink, **kwargs) + else: + nbextensions.uninstall_nbextension_python(mod.__name__, **kwargs) + + +def toggle_install_config(install, user=False, sys_prefix=False, + skip_running_check=False, logger=None): + """Install/remove contrib nbextensions to/from jupyter_nbconvert_config.""" + _err_on_running(skip_running_check=skip_running_check) + _check_conflicting_kwargs(user=user, sys_prefix=sys_prefix) + config_dir = nbextensions._get_config_dir(user=user, sys_prefix=sys_prefix) + if logger: + logger.info( + '{} jupyter_contrib_nbextensions items {} config in {}'.format( + 'Installing' if install else 'Uninstalling', + 'to' if install else 'from', + config_dir)) + + # Configure the jupyter_nbextensions_configurator serverextension to load + if install: + configurator_app = EnableJupyterNbextensionsConfiguratorApp( + user=user, sys_prefix=sys_prefix, logger=logger) + configurator_app.start() + nbextensions.enable_nbextension( + 'notebook', 'contrib_nbextensions_help_item/main', + user=user, sys_prefix=sys_prefix, logger=logger) + else: + nbconf_cm = BaseJSONConfigManager( + config_dir=os.path.join(config_dir, 'nbconfig')) + for require, section in { + 'contrib_nbextensions_help_item/main': 'notebook'}.items(): + if logger: + logger.info('- Disabling {}'.format(require)) + logger.info( + '-- Editing config: {}'.format( + nbconf_cm.file_name(section))) + nbconf_cm.update(section, {'load_extensions': {require: None}}) + + # Set extra template path, pre- and post-processors for nbconvert + cm = BaseJSONConfigManager(config_dir=config_dir) + config_basename = 'jupyter_nbconvert_config' + config = cm.get(config_basename) + # avoid warnings about unset version + config.setdefault('version', 1) + if logger: + logger.info( + u'- Editing config: {}'.format(cm.file_name(config_basename))) + + # Set extra template path, pre- and post-processors for nbconvert + if logger: + logger.info('-- Configuring nbconvert template path') + # our templates directory + _update_config_list(config, 'Exporter.template_path', [ + '.', + jupyter_contrib_nbextensions.nbconvert_support.templates_directory(), + ], install) + # our preprocessors + if logger: + logger.info('-- Configuring nbconvert preprocessors') + proc_mod = 'jupyter_contrib_nbextensions.nbconvert_support' + _update_config_list(config, 'Exporter.preprocessors', [ + proc_mod + '.CodeFoldingPreprocessor', + proc_mod + '.PyMarkdownPreprocessor', + ], install) + if logger: + logger.info( + u'- Writing config: {}'.format(cm.file_name(config_basename))) + _set_managed_config(cm, config_basename, config, logger=logger) + + +def install(user=False, sys_prefix=False, prefix=None, nbextensions_dir=None, + logger=None, overwrite=False, symlink=False, + skip_running_check=False): + """Install all jupyter_contrib_nbextensions files & config.""" + return toggle_install( + True, user=user, sys_prefix=sys_prefix, prefix=prefix, + nbextensions_dir=nbextensions_dir, logger=logger, + overwrite=overwrite, symlink=symlink, + skip_running_check=skip_running_check) + + +def uninstall(user=False, sys_prefix=False, prefix=None, nbextensions_dir=None, + logger=None, skip_running_check=False): + """Uninstall all jupyter_contrib_nbextensions files & config.""" + return toggle_install( + False, user=user, sys_prefix=sys_prefix, prefix=prefix, + nbextensions_dir=nbextensions_dir, logger=logger, + skip_running_check=skip_running_check) + +# ----------------------------------------------------------------------------- +# Private API +# ----------------------------------------------------------------------------- + + +def _err_on_running(skip_running_check=False, runtime_dir=None): + if skip_running_check: + return + try: + srv = next(list_running_servers(runtime_dir=runtime_dir)) + except StopIteration: + return + + raise NotebookRunningError(""" +Will not configure while a Jupyter notebook server appears to be running. +At least this server appears to be running: + + {} + +Note that the json file indicating that this server is running may +be stale, see + + https://github.com/jupyter/notebook/issues/2829 + +for further details. +""".format(srv)) + + +def _check_conflicting_kwargs(**kwargs): + if sum(map(bool, kwargs.values())) > 1: + raise nbextensions.ArgumentConflict( + "Cannot specify more than one of {}.\nBut recieved {}".format( + ', '.join(kwargs.keys()), + ', '.join(['{}={}'.format(k, v) + for k, v in kwargs.items() if v]))) + + +def _set_managed_config(cm, config_basename, config, logger=None): + """Write config owned by the given config manager, removing if empty.""" + config_path = cm.file_name(config_basename) + msg = 'config file {}'.format(config_path) + if len(config) > ('version' in config): + if logger: + logger.info('-- Writing updated {}'.format(msg)) + # use set to ensure removed keys get removed + cm.set(config_basename, config) + else: + if logger: + logger.info('-- Removing now-empty {}'.format(msg)) + try: + os.remove(config_path) + except OSError as ex: + if ex.errno != errno.ENOENT: + raise + + +def _update_config_list(config, list_key, values, insert): + """ + Add or remove items as required to/from a config value which is a list. + + This exists in order to avoid clobbering values other than those which we + wish to add/remove, and to neatly remove a list when it ends up empty. + """ + section, list_key = list_key.split('.') + conf_list = config.setdefault(section, Config()).setdefault(list_key, []) + list_alteration_method = 'append' if insert else 'remove' + for val in values: + if (val in conf_list) != insert: + getattr(conf_list, list_alteration_method)(val) + if not insert: + # remove empty list + if len(conf_list) == 0: + config[section].pop(list_key) + # remove empty section + if len(config[section]) == 0: + config.pop(section) diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/migrate.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/migrate.py new file mode 100644 index 00000000..a9d8b9ca --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/migrate.py @@ -0,0 +1,286 @@ +# -*- coding: utf-8 -*- +""" +Functions to remove old installs, and migrate to newer module names. + +This may change or disappear at any time, so don't rely on it! +""" + +import errno +import io +import os +import shutil +import tempfile + +from jupyter_core.paths import jupyter_config_dir, jupyter_data_dir +from notebook.services.config import ConfigManager as FrontendConfigManager +from traitlets.config import Config +from traitlets.config.manager import BaseJSONConfigManager + +from jupyter_contrib_nbextensions.install import ( + _set_managed_config, _update_config_list, +) + + +def _migrate_require_paths(logger=None): + """Migrate require paths from old to new values.""" + if logger: + logger.info('- Migrating require paths from old to new locations') + + mappings = { + 'notebook': [ + ('config/config_menu/main', 'nbextensions_configurator/config_menu/main'), # noqa: E501 + ('skill/skill', 'skill/main'), + ('yapf_ext/yapf_ext', 'code_prettify/code_prettify'), + ] + [(req, req.split('/', 1)[1]) for req in [ + 'codemirrormode/skill/skill', + 'publishing/gist_it/main', + 'publishing/printview/main', + 'styling/table_beautifier/main', + 'styling/zenmode/main', + 'usability/autosavetime/main', + 'usability/autoscroll/main', + 'usability/chrome-clipboard/main', + 'usability/code_font_size/code_font_size', + 'usability/codefolding/main', + 'usability/collapsible_headings/main', + 'usability/comment-uncomment/main', + 'usability/datestamper/main', + 'usability/dragdrop/main', + 'usability/equation-numbering/main', + 'usability/execute_time/ExecuteTime', + 'usability/exercise/main', + 'usability/exercise2/main', + 'usability/freeze/main', + 'usability/help_panel/help_panel', + 'usability/hide_input/main', + 'usability/hide_input_all/main', + 'usability/highlighter/highlighter', + 'usability/hinterland/hinterland', + 'usability/init_cell/main', + 'usability/keyboard_shortcut_editor/main', + 'usability/latex_envs/latex_envs', + 'usability/limit_output/main', + 'usability/move_selected_cells/main', + 'usability/navigation-hotkeys/main', + 'usability/notify/notify', + 'usability/python-markdown/main', + 'usability/qtconsole/qtconsole', + 'usability/rubberband/main', + 'usability/ruler/main', + 'usability/runtools/main', + 'usability/scratchpad/main', + 'usability/search-replace/main', + 'usability/skip-traceback/main', + 'usability/spellchecker/main', + 'usability/splitcell/splitcell', + 'usability/toc2/main', + 'usability/toggle_all_line_numbers/main', + ]], + 'tree': [ + ('usability/tree-filter/index', 'tree-filter/index'), + ] + } + + fecm = FrontendConfigManager() + for section in mappings: + conf = fecm.get(section) + load_extensions = conf.get('load_extensions', {}) + for old, new in mappings[section]: + status = load_extensions.pop(old, None) + if status is not None: + if logger: + logger.debug('-- Migrating {!r} -> {!r}'.format(old, new)) + load_extensions[new] = status + fecm.set(section, conf) + + +def _uninstall_pre_config(logger=None): + """Undo config settings inserted by an old installation.""" + # for application json config files + cm = BaseJSONConfigManager(config_dir=jupyter_config_dir()) + + # ------------------------------------------------------------------------- + # notebook json config + config_basename = 'jupyter_notebook_config' + config = Config(cm.get(config_basename)) + config_path = cm.file_name(config_basename) + if config and logger: + logger.info('- Removing old config values from {}'.format(config_path)) + to_remove = ['nbextensions'] + # remove from notebook >= 4.2 key nbserver_extensions + section = config.get('NotebookApp', Config()) + server_extensions = section.get('nbserver_extensions', {}) + for se in to_remove: + server_extensions.pop(se, None) + if len(server_extensions) == 0: + section.pop('nbserver_extensions', None) + # and notebook < 4.2 key server_extensions + _update_config_list( + config, 'NotebookApp.server_extensions', to_remove, False) + _update_config_list(config, 'NotebookApp.extra_template_paths', [ + os.path.join(jupyter_data_dir(), 'templates'), + ], False) + _set_managed_config(cm, config_basename, config, logger) + + # ------------------------------------------------------------------------- + # nbconvert json config + config_basename = 'jupyter_nbconvert_config' + config = Config(cm.get(config_basename)) + if config and logger: + logger.info('- Removing old config values from {}'.format(config_path)) + _update_config_list(config, 'Exporter.template_path', [ + '.', os.path.join(jupyter_data_dir(), 'templates'), + ], False) + _update_config_list(config, 'Exporter.preprocessors', [ + 'pre_codefolding.CodeFoldingPreprocessor', + 'pre_pymarkdown.PyMarkdownPreprocessor', + ], False) + section = config.get('NbConvertApp', {}) + old_postproc_classes = [ + 'post_embedhtml.EmbedPostProcessor', + 'jupyter_contrib_nbextensions.nbconvert_support.EmbedPostProcessor', + 'jupyter_contrib_nbextensions.nbconvert_support.post_embedhtml.EmbedPostProcessor', # noqa: E501 + ] + if section.get('postprocessor_class') in old_postproc_classes: + section.pop('postprocessor_class', None) + if len(section) == 0: + config.pop('NbConvertApp', None) + _set_managed_config(cm, config_basename, config, logger) + + # ------------------------------------------------------------------------- + # Remove old config lines from .py configuration files + for config_basename in ('jupyter_notebook_config.py', + 'jupyter_nbconvert_config.py'): + py_config_path = os.path.join(jupyter_config_dir(), config_basename) + if not os.path.isfile(py_config_path): + continue + if logger: + logger.info( + '-- Removing now-empty config file {}'.format(py_config_path)) + with io.open(py_config_path, 'r') as f: + lines = f.readlines() + marker = '#--- nbextensions configuration ---' + marker_inds = [ii for ii, l in enumerate(lines) if l.find(marker) >= 0] + if len(marker_inds) >= 2: + lines = lines[0:marker_inds[0]] + lines[marker_inds[1] + 1:] + if [l for l in lines if l.strip]: + with io.open(py_config_path, 'w') as f: + f.writelines(lines) + else: + if logger: + logger.info( + 'Removing now-empty config file {}'.format( + py_config_path)) + try: + os.remove(py_config_path) + except OSError as ex: + if ex.errno != errno.ENOENT: + raise + + +def _uninstall_pre_files(logger=None): + """ + Remove any files recorded from a previous installation. + + Rather than actually deleting, this function copies everything to a + temporary directory without explicit cleanup, in case a user wants to try + manual recovery at some point. + + The OS can then handle actual removal from the temp directory as and when + it chooses to. + """ + data_dir = jupyter_data_dir() + + bom_pref = 'ipython-contrib-IPython-notebook-extensions-' + bom_path = os.path.join(data_dir, bom_pref + 'installed_files.txt') + + if not os.path.exists(bom_path): + if logger: + logger.info('- No list of previously-installed files at {}'.format( + bom_path)) + return + elif logger: + logger.info( + '- Removing previously-installed files listed in {}'.format( + bom_path)) + + deleted_to = tempfile.mkdtemp(prefix=bom_pref) + if logger: + logger.info( + '-- Files will be copied to the temp directory {}'.format( + deleted_to)) + + with open(bom_path, 'r') as bom_file: + for src in bom_file.readlines(): + src = src.rstrip('\n').rstrip('\r') + if os.path.exists(src): + if logger: + logger.info(' ' + src) + dest = os.path.join( + deleted_to, os.path.relpath(src, data_dir)) + dest_dir = os.path.dirname(dest) + if not os.path.exists(dest_dir): + os.makedirs(dest_dir) + shutil.move(src, dest) + # remove empty directories + allowed_errnos = (errno.ENOTDIR, errno.ENOTEMPTY, errno.ENOENT) + while len(src) > len(data_dir): + src = os.path.dirname(src) + try: + os.rmdir(src) + except OSError as ex: + if ex.errno not in allowed_errnos: + raise + break + else: + if logger: + logger.info(' ' + src) + os.remove(bom_path) + return deleted_to + + +def _uninstall_pre_pip(logger=None): + """Uninstall the old package name from pip.""" + old_pkg_name = 'Python-contrib-nbextensions' + try: + import pip + except ImportError: + pass + logger.info(( + "- Couldn't import pip, so can't attempt to " + "pip uninstall the old package name {}").format(old_pkg_name)) + else: + installed_pkg_names = [ + pkg.project_name for pkg in pip.get_installed_distributions()] + if old_pkg_name not in installed_pkg_names: + return + if logger: + logger.info('- Uninstalling old package name from pip: {}'.format( + old_pkg_name)) + try: + pip.main(['uninstall', '-y', old_pkg_name]) + except SystemExit: + pass + + +def migrate(logger=None): + """Remove an old (pre-jupyter_contrib_nbextensions) install.""" + _migrate_require_paths(logger=logger) + _uninstall_pre_files(logger=logger) + _uninstall_pre_config(logger=logger) + _uninstall_pre_pip(logger=logger) + + +def main(): + """Allow for running module as a script.""" + import logging + logger = logging.getLogger('jupyter_contrib_nbextensions.migrate.main') + logger.info( + 'Retiring pre-jupyter_contrib_nbextensions IPython-notebook-extensions' + ) + migrate(logger) + + +if __name__ == '__main__': # pragma: no cover + """Run module as a script.""" + main() diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/__init__.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/__init__.py new file mode 100644 index 00000000..71f826a3 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/__init__.py @@ -0,0 +1,37 @@ +"""Classes and functions provided for use with nbconvert.""" + +import os + +from .collapsible_headings import ExporterCollapsibleHeadings +from .embedhtml import EmbedHTMLExporter +from .execute_time import ExecuteTimePreprocessor +from .exporter_inliner import ExporterInliner +from .nbTranslate import NotebookLangExporter +from .pp_highlighter import HighlighterPostProcessor, HighlighterPreprocessor +from .pre_codefolding import CodeFoldingPreprocessor +from .pre_embedimages import EmbedImagesPreprocessor +from .pre_pymarkdown import PyMarkdownPreprocessor +from .pre_svg2pdf import SVG2PDFPreprocessor +from .toc2 import TocExporter + +__all__ = [ + 'templates_directory', + 'CodeFoldingPreprocessor', + 'EmbedHTMLExporter', + 'ExecuteTimePreprocessor', + 'ExporterCollapsibleHeadings', + 'ExporterInliner', + 'HighlighterPostProcessor', + 'HighlighterPreprocessor', + 'EmbedImagesPreprocessor', + 'NotebookLangExporter', + 'PyMarkdownPreprocessor', + 'SVG2PDFPreprocessor', + 'TocExporter', +] + + +def templates_directory(): + """Return path to the jupyter_contrib_nbextensions nbconvert templates.""" + return os.path.join( + os.path.dirname(os.path.dirname(__file__)), 'templates') diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/collapsible_headings.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/collapsible_headings.py new file mode 100644 index 00000000..7e6bcf52 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/collapsible_headings.py @@ -0,0 +1,53 @@ +"""Nbconvert exporter to inline css & js for collapsible_headings.""" + +import json +import os + +from notebook.services.config import ConfigManager + +from jupyter_contrib_nbextensions import __file__ as contrib_init + +from .exporter_inliner import ExporterInliner + + +class ExporterCollapsibleHeadings(ExporterInliner): + """ + HTMLExporter which inlines the collapsible_headings nbextension. + + Export collapsible_headings nbextension functionality to html + by inlining relevant css and js content. + + Example usage:: + + jupyter nbconvert --to html_ch FILE.ipynb + """ + + def __init__(self, *args, **kwargs): + super(ExporterCollapsibleHeadings, self).__init__(*args, **kwargs) + + self.inliner_resources['css'].append(""" +/* no local copies of fontawesome fonts in basic templates, so use cdn */ +@import url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css) +""") # noqa: E501 + + ch_dir = os.path.join( + os.path.dirname(contrib_init), 'nbextensions', + 'collapsible_headings') + + with open(os.path.join(ch_dir, 'main.css'), 'r') as f: + self.inliner_resources['css'].append(f.read()) + + with open(os.path.join(ch_dir, 'main.js'), 'r') as f: + self.inliner_resources['js'].append(f.read()) + + cm = ConfigManager() + collapsible_headings_options = cm.get('notebook').get( + 'collapsible_headings', {}) + self.inliner_resources['js'].append(""" +$(document).ready(function () { + require(['nbextensions/collapsible_headings/main'], function (ch) { + ch.set_collapsible_headings_options(%s); + ch.refresh_all_headings(); + }); +}); +""" % json.dumps(collapsible_headings_options)) diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/embedhtml.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/embedhtml.py new file mode 100644 index 00000000..c36861f0 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/embedhtml.py @@ -0,0 +1,99 @@ +"""Embed graphics into HTML Exporter class""" + +import base64 +import os + +from ipython_genutils.ipstruct import Struct +from nbconvert.exporters.html import HTMLExporter + +try: + from urllib.request import urlopen # py3 +except ImportError: + from urllib2 import urlopen + + +class EmbedHTMLExporter(HTMLExporter): + """ + :mod:`nbconvert` Exporter which embeds graphics as base64 into html. + + Convert to HTML and embed graphics (pdf, svg and raster images) in the HTML + file. + + Example usage:: + + jupyter nbconvert --to html_embed mynotebook.ipynb + """ + + def replfunc(self, node): + """Replace source url or file link with base64 encoded blob.""" + url = node.attrib["src"] + imgformat = url.split('.')[-1] + b64_data = None + prefix = None + + if url.startswith('data'): + return # Already in base64 Format + + self.log.info("try embedding url: %s, format: %s" % (url, imgformat)) + + if url.startswith('http'): + b64_data = base64.b64encode(urlopen(url).read()).decode("utf-8") + elif url.startswith('attachment'): + imgname = url.split(':')[1] + available_formats = self.attachments[imgname] + # get the image based on the configured image type priority + for imgformat in self.config.NbConvertBase.display_data_priority: + if imgformat in available_formats.keys(): + b64_data = self.attachments[imgname][imgformat] + prefix = "data:%s;base64," % imgformat + if b64_data is None: + raise ValueError("""Could not find attachment for image '%s' + in notebook""" % imgname) + else: + filename = os.path.join(self.path, url) + with open(filename, 'rb') as f: + b64_data = base64.b64encode(f.read()).decode("utf-8") + + if prefix is None: + if imgformat == "svg": + prefix = "data:image/svg+xml;base64," + elif imgformat == "pdf": + prefix = "data:application/pdf;base64," + else: + prefix = "data:image/" + imgformat + ';base64,' + + node.attrib["src"] = prefix + b64_data + + def from_notebook_node(self, nb, resources=None, **kw): + # The parent nbconvert_support module imports this module, and + # nbconvert_support is imported as part of our install scripts, and + # other fairly basic stuff. + # By keeping lxml import in this method, we can still import this + # module even if lxml isn't available, or is missing dependencies, etc. + # In this way, problems with lxml should only bother people who are + # actually trying to *use* this. + import lxml.etree as et + output, resources = super( + EmbedHTMLExporter, self).from_notebook_node(nb, resources) + + self.path = resources['metadata']['path'] + + # Get attachments + self.attachments = Struct() + for cell in nb.cells: + if 'attachments' in cell.keys(): + self.attachments += cell['attachments'] + + # Parse HTML and replace tags with the embedded data + parser = et.HTMLParser() + root = et.fromstring(output, parser=parser) + nodes = root.findall(".//img") + for n in nodes: + self.replfunc(n) + + # Convert back to HTML + embedded_output = et.tostring(root.getroottree(), + method="html", + encoding='unicode') + + return embedded_output, resources diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/execute_time.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/execute_time.py new file mode 100644 index 00000000..53b920db --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/execute_time.py @@ -0,0 +1,40 @@ +""" +Module containing a preprocessor tto execute code cells, updating time metadata +""" + +from datetime import datetime + +from nbconvert.preprocessors.execute import ExecutePreprocessor + +try: + # notebook >= 5.0.0-rc1 + import notebook._tz as nbtz +except ImportError: + # notebook < 5.0.0-rc1 + import notebook.services.contents.tz as nbtz + + +class ExecuteTimePreprocessor(ExecutePreprocessor): + """ + Executes all the cells in a notebook, updating their ExecuteTime metadata. + """ + + def run_cell(self, cell, cell_index, *args, **kwargs): + before = datetime.utcnow() + exec_reply, outs = super(ExecuteTimePreprocessor, self).run_cell( + cell, cell_index, *args, **kwargs) + + if exec_reply.get('msg_type', '') == 'execute_reply': + ets = cell.setdefault('metadata', {}).setdefault('ExecuteTime', {}) + if 'started' in exec_reply.get('metadata', {}): + # started value should is already a string, so don't isoformat + ets['start_time'] = exec_reply['metadata']['started'] + else: + # attempt to fallback to datetime obj for execution request msg + ets['start_time'] = exec_reply.get( + 'parent_header', {}).get('date', before).isoformat() + ets['end_time'] = ( + exec_reply.get('header', {}).get('date') or nbtz.utcnow() + ).isoformat() + + return exec_reply, outs diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/exporter_inliner.py b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/exporter_inliner.py new file mode 100644 index 00000000..cad61073 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbconvert_support/exporter_inliner.py @@ -0,0 +1,46 @@ +"""Nbconvert exporter to inline css & js for collapsible_headings.""" + +from __future__ import print_function + +from nbconvert.exporters.html import HTMLExporter +from traitlets import Dict + + +class ExporterInliner(HTMLExporter): + + inliner_resources = Dict( + {'css': [], 'js': []}, config=True, + help='css and js scripts to wrap in html '); + return Jupyter.notebook.config.loaded.then(initialize); + } + + return { + load_ipython_extension: load_ipython_extension + }; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input/hide-input.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input/hide-input.yaml new file mode 100644 index 00000000..5c95f840 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input/hide-input.yaml @@ -0,0 +1,7 @@ +Type: IPython Notebook Extension +Compatibility: 3.x, 4.x, 5.x +Main: main.js +Name: Hide input +Icon: icon.png +Description: "toggle display of selected code cell's input" +Link: readme.md diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input/icon.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input/icon.png new file mode 100644 index 00000000..a9bcbeac Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input/icon.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input/main.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input/main.js new file mode 100644 index 00000000..c921c716 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input/main.js @@ -0,0 +1,54 @@ +// Adds a button to hide the input part of the currently selected cells + +define([ + 'jquery', + 'base/js/namespace', + 'base/js/events' +], function( + $, + Jupyter, + events +) { + "use strict"; + + var toggle_selected_input = function () { + // Find the selected cell + var cell = Jupyter.notebook.get_selected_cell(); + // Toggle visibility of the input div + cell.element.find("div.input").toggle('slow'); + cell.metadata.hide_input = ! cell.metadata.hide_input; + }; + + var update_input_visibility = function () { + Jupyter.notebook.get_cells().forEach(function(cell) { + if (cell.metadata.hide_input) { + cell.element.find("div.input").hide(); + } + }) + }; + + var load_ipython_extension = function() { + + // Add a button to the toolbar + $(Jupyter.toolbar.add_buttons_group([ + Jupyter.keyboard_manager.actions.register({ + help : 'Toggle selected cell input display', + icon : 'fa-chevron-up', + handler: function() { + toggle_selected_input(); + setTimeout(function() { $('#btn-hide-input').blur(); }, 500); + } + }, 'toggle-cell-input-display', 'hide_input') + ])).find('.btn').attr('id', 'btn-hide-input'); + // Collapse all cells that are marked as hidden + if (Jupyter.notebook !== undefined && Jupyter.notebook._fully_loaded) { + // notebook already loaded. Update directly + update_input_visibility(); + } + events.on("notebook_loaded.Notebook", update_input_visibility); + }; + + return { + load_ipython_extension : load_ipython_extension + }; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input/readme.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input/readme.md new file mode 100644 index 00000000..83a224fd --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input/readme.md @@ -0,0 +1,51 @@ +Hide Input +========== + +This extension allows hiding of an individual codecell in a notebook. This can +be achieved by clicking on the toolbar button: + +![](icon.png) + + +Internals +--------- + +The codecell hiding state is stored in the metadata `cell.metadata.hide_input`. +If it is set to `true`, the codecell will be hidden on reload. + + +Exporting with nbconvert +------------------------ + +See also the general docs for exporting using nbconvert at +[jupyter-contrib-nbextensions.readthedocs.io](https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/). + +To export a notebook with hidden cell inputs using nbconvert, you need to use a +custom template. +The required template is supplied as part of +`jupyter_contrib_nbextensions.nbconvert_support`, or you can roll your own +using the provided ones as examples. Again, see the docs linked above for more +information. + +The `nbextensions.tpl` template is provided in the +`jupyter_contrib_nbextensions.nbconvert_support` templates directory (see the +docs mentioned above for how to find it) + +To use, add the template to your `nbconvert` call: + + jupyter nbconvert --template=nbextensions --to=html my_notebook.ipynb + +The nbextensions template will respect the `cell.metadata.hide_input` flag, and +filter the cell's output prompt (the bit that looks like `Out[27]:`). +The filter is only used for html output, not for PDF or LaTeX output. + +If you want to _keep_ the cell output prompt, you will have to remove the lines + + {% block output_group -%} + {%- if cell.metadata.hide_output or nb.metadata.hide_input -%} + {%- else -%} + {{ super() }} + {%- endif -%} + {% endblock output_group %} + +in the `nbextensions.tpl` file. diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/hide_input_all.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/hide_input_all.yaml new file mode 100644 index 00000000..ec413205 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/hide_input_all.yaml @@ -0,0 +1,7 @@ +Type: IPython Notebook Extension +Compatibility: 3.x 4.x 5.x +Main: main.js +Name: Hide input all +Description: "toggle display of all code cells' inputs" +Icon: icon.png +Link: readme.md diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/hide_input_all_hide.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/hide_input_all_hide.png new file mode 100644 index 00000000..a15486a9 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/hide_input_all_hide.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/hide_input_all_show.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/hide_input_all_show.png new file mode 100644 index 00000000..8d7e0309 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/hide_input_all_show.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/icon.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/icon.png new file mode 100644 index 00000000..28a7fd2a Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/icon.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/main.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/main.js new file mode 100644 index 00000000..ff1b51ef --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/main.js @@ -0,0 +1,59 @@ +// toggle display of all code cells' inputs + +define([ + 'jquery', + 'base/js/namespace', + 'base/js/events' +], function( + $, + Jupyter, + events +) { + "use strict"; + + function set_input_visible(show) { + Jupyter.notebook.metadata.hide_input = !show; + + if (show) $('div.input').show('slow'); + else $('div.input').hide('slow'); + + var btn = $('#toggle_codecells'); + btn.toggleClass('active', !show); + + var icon = btn.find('i'); + icon.toggleClass('fa-eye', show); + icon.toggleClass('fa-eye-slash', !show); + $('#toggle_codecells').attr( + 'title', (show ? 'Hide' : 'Show') + ' codecell inputs'); + } + + function toggle() { + set_input_visible($('#toggle_codecells').hasClass('active')); + } + + function initialize () { + set_input_visible(Jupyter.notebook.metadata.hide_input !== true); + } + + var load_ipython_extension = function() { + $(Jupyter.toolbar.add_buttons_group([ + Jupyter.keyboard_manager.actions.register({ + help : 'Hide codecell inputs', + icon : 'fa-eye', + handler: function() { + toggle(); + setTimeout(function() { $('#toggle_codecells').blur(); }, 500); + } + }, 'hide-codecell-inputs', 'hide_input_all'), + ])).find('.btn').attr('id', 'toggle_codecells'); + if (Jupyter.notebook !== undefined && Jupyter.notebook._fully_loaded) { + // notebook_loaded.Notebook event has already happened + initialize(); + } + events.on('notebook_loaded.Notebook', initialize); + }; + + return { + load_ipython_extension : load_ipython_extension + }; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/readme.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/readme.md new file mode 100644 index 00000000..bd1704b9 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hide_input_all/readme.md @@ -0,0 +1,44 @@ +Hide all Input +============== +This extension allows hiding all codecells of a notebook. This can be achieved by clicking on the button toolbar: + +![](icon.png) + +Typically, all codecells are shown with their corresponding output: + +![](hide_input_all_show.png) + +Clicking on the "Toggle codecell display" toolbar button hides all codecells: + +![](hide_input_all_hide.png) + + +Internals +--------- + +The codecell hiding state is stored in the metadata `IPython.notebook.metadata.hide_input`. +If it is set to `true`, all codecells will be hidden on reload. + +The `nbextensions.tpl` template is provided in the +`jupyter_contrib_nbextensions.nbconvert_support` templates directory (see the +docs mentioned above for how to find it) + +To use, add the template to your `nbconvert` call: + + jupyter nbconvert --template=nbextensions --to=html my_notebook.ipynb + +The nbextensions template will respect the `nb.metadata.hide_input` flag, and +filter the cell's output prompt (the bit that looks like `Out[27]:`). +The filter is only used for html output, not for PDF or LaTeX output. + +If you want to _keep_ the cell output prompt, you will have to remove the lines + + {% block output_group -%} + {%- if cell.metadata.hide_output or nb.metadata.hide_input -%} + {%- else -%} + {{ super() }} + {%- endif -%} + {% endblock output_group %} + +in the `nbextensions.tpl` file. + \ No newline at end of file diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/demo_highlighter.html b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/demo_highlighter.html new file mode 100644 index 00000000..1eb24b2c --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/demo_highlighter.html @@ -0,0 +1,257 @@ + + + +demo_highlighter + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+

The highlighter extension:

    +
  • Firstable, the extension provides several toolbar buttons for highlighting a selected text within a markdown cell. Three different `color schemes' are provided, which can be easily customized in the \textit{stylesheet} highlighter.css. The last button enables to remove all highlightings in the current cell.
  • +
  • This works both when the cell is rendered and when the cell is in edit mode;
  • +
  • In both modes, it is possible to highlight formatted portions of text (In rendered mode, since the selected text loose its formatting, an heuristic is applied to find the best alignment with the actual text)
  • +
  • When no text is selected, the whole cell is highlighted;
  • +
  • The extension also provides two keyboard shortcuts (Alt-G and Alt-H) which fire the highlighting of the selected text.
  • +
  • Highlights can be preserved when exporting to html or to LaTeX -- details are provided in export_highlights
  • +
+

+

Installation:

The extension can be installed with the nice UI available on jupyter_contrib_nbextensions website, which also allows to enable/disable the extension.

+

You may also install the extension from the original repo: issue

+
jupyter nbextension install https://rawgit.com/jfbercher/small_nbextensions/master/highlighter.zip  --user
+
+

at the command line.

+

Testing:

Use a code cell with

+
%%javascript
+require("base/js/utils").load_extensions("highlighter/highlighter")
+
+

Automatic load

You may also automatically load the extension for any notebook via

+
jupyter nbextension enable highlighter/highlighter
+
+ +
+
+
+
+
+
In [2]:
+
+
+
%%javascript
+require("base/js/utils").load_extensions("highlighter/highlighter")
+
+ +
+
+
+ +
+
+ + +
+ + +
+ +
+ +
+ +
+
+ +
+
+
+ + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/demo_highlighter.ipynb b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/demo_highlighter.ipynb new file mode 100644 index 00000000..24819669 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/demo_highlighter.ipynb @@ -0,0 +1,103 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## The highlighter extension:\n", + "\n", + "- Firstable, the extension provides several toolbar buttons for highlighting a selected text _within a markdown cell_. Three different \\`color schemes' are provided, which can be easily customized in the \\textit{stylesheet} `highlighter.css`. The last button enables to remove all highlightings in the current cell. \n", + "- This works both when the cell is _rendered_ and when the cell is in edit mode; \n", + "- In both modes, it is possible to highlight formatted portions of text (In rendered mode, since the selected text loose its formatting, an heuristic is applied to find the best alignment with the actual text)\n", + "- When no text is selected, the whole cell is highlighted; \n", + "- The extension also provides two keyboard shortcuts (Alt-G and Alt-H) which fire the highlighting of the selected text. \n", + "- Highlights can be preserved when exporting to html or to LaTeX -- details are provided in [export_highlights](export_highlights.ipynb)\n", + "\n", + "\n", + "![](image.gif)\n", + "\n", + "## Installation:\n", + "\n", + "The extension can be installed with the nice UI available on jupyter_contrib_nbextensions website, which also allows to enable/disable the extension. \n", + "\n", + "You may also install the extension from the original repo: issue\n", + "```bash\n", + "jupyter nbextension install https://rawgit.com/jfbercher/small_nbextensions/master/highlighter.zip --user\n", + "\n", + "```\n", + "at the command line.\n", + "\n", + "### Testing: \n", + "\n", + "Use a code cell with\n", + "```javascript\n", + "%%javascript\n", + "require(\"base/js/utils\").load_extensions(\"highlighter/highlighter\")\n", + "```\n", + "\n", + "### Automatic load\n", + "You may also automatically load the extension for any notebook via\n", + "```bash\n", + "jupyter nbextension enable highlighter/highlighter\t\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "require(\"base/js/utils\").load_extensions(\"highlighter/highlighter\")" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%%javascript\n", + "require(\"base/js/utils\").load_extensions(\"highlighter/highlighter\")" + ] + } + ], + "metadata": { + "interactive_sols": { + "cbx_id": 1 + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3+" + }, + "latex_envs": { + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 0 + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.html b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.html new file mode 100644 index 00000000..a6e174ec --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.html @@ -0,0 +1,360 @@ + + + +export_highlights + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+

Exporting the notebook

As suggested by @juhasch, it is interesting to keep the highlights when exporting the notebook to another format. We give and explain below some possibilities:

+ +
+
+
+
+
+
+
+
+

Short version

    +
  • Html export:
    jupyter nbconvert FILE  --config JUPYTER_DATA_DIR/extensions/highlight_html_cfg.py
    +
    +
  • +
  • LaTeX export:
    jupyter nbconvert FILE  --config JUPYTER_DATA_DIR/extensions/highlight_latex_cfg.py
    +
    +where JUPYTER_DATA_DIR can be found from the output of
    jupyter --paths
    +
    +eg ~/.local/share/jupyter in my case. Seems to be c:\users\NAME\AppData\Roaming\jupyter under Windows.
  • +
+

Examples can be found here: initial notebook, html version, pdf version (after an additional LaTeX $\rightarrow$ pdf compilation).

+ +
+
+
+
+
+
+
+
+

Html export

This is quite easy. Actually, highlight formatting embedded in markdown cells is preserved while converting with the standard

+
jupyter nbconvert file.ipynb
+
+

However, the css file is missing and must be added. Here we have several possibilities

+
    +
  • Embed the css within the notebook. For that, consider the last cell of the present notebook. This code reads the css file highlighter.css in the extension directory and displays the corresponding style. So doing the <style> ...</style> section will be present in the cell output and interpreted by the web browser. Drawbacks of this solution is that user still have to execute this cell and that the this is not language agnostic.
  • +
  • Use a template file to link or include the css file during conversion. Such a file is provided as templates/highlighter.tpl. It was choosen here to include the css content in the produced html file rather than linking it. This avoids the necessity to keep the css file with the html files.

    +
      +
    • This works directly if the css resides in the same directory as the file the user is attempting to convert --thus requires the user to copy highlighter.css in the current directory. Then the conversion is simply
      jupyter nbconvert file.ipynb --template highlighter
      +
      +
    • +
    +
  • +
  • It still remains two problems with this approach. First, it can be annoying to have to systematically copy the css file in the current directory. Second, the data within the html tags is not converted (and thus markdown remains unmodified). A solution is to use a pair of preprocessor/postprocessor that modify the html tags and enable the subsequent markdown to html converter to operate on the included data. Also, a config file is provided which redefines the template path to enable direct inclusion of the css file in the extension directory. Unfortunately, it seems that the full path to the config file has to be provided. This file resides in the extensions subdirectory of the jupyter_data_dir. The path can be found by looking at the output of

    +
    jupyter --paths
    +
    +

    Then the command to issue for converting the notebook to html is

    +
    jupyter nbconvert FILE  --config JUPYTER_DATA_DIR/extensions/highlight_html_cfg.py
    +
    +
  • +
+

For instance

+
jupyter nbconvert tst_highlights.ipynb  --config ~/.local/share/jupyter/extensions/highlight_html_cfg.py
+
+ +
+
+
+
+
+
+
+
+

LaTeX export

This is a bit more complicated since the direct conversion removes all html formatting present in markdown cells. Thus use again a preprocessor which runs before the markdown $\rightarrow$ LaTeX conversion. In turn, it appears that we also need to postprocess the result.

+

Three LaTeX commands, namely highlighta, highlightb, highlightc, and three environments highlightA, highlightB, highlightC are defined. Highlighting html markup is then transformed into the corresponding LaTeX commands and the text for completely highlighted cells is put in the adequate LaTeX environment.

+

Pre and PostProcessor classes are defined in the file pp_highlighter.py located in the extensions directory. A LaTeX template, that includes the necessary packages and the definitions of commands/environments is provides as highlighter.tplx in the template directory. +The template inherits from article.ltx. For more complex scenarios, typically if the latex template file has be customized, the user shall modify its template or inherit from his base template rather than from article.

+

Finally, a config file fixes the different options for the conversion. Then the command to issue is simply

+
jupyter nbconvert FILE  --config JUPYTER_DATA_DIR/extensions/highlight_latex_cfg.py
+
+

e.g.

+
jupyter nbconvert tst_highlights.ipynb  --config ~/.local/share/jupyter/extensions/highlight_latex_cfg.py
+
+ +
+
+
+
+
+
+
+
+

Configuring paths

For those who do not have taken the extension from the jupyter_contrib_nbextensions repository or have not configured extensions via its setup.py utility, a file set_paths.py is present in the extension directory (it is merely a verbatim copy of the relevant parts in setup.py). This file configure the paths to the templates and extension directories. It should be executed by something like

+
python3 set_paths.py
+
+

Additionaly, you may also have to execute mv_paths.py if you installed from the original repo via jupyter nbextension install ..

+
python3 mv_paths.py
+
+ +
+
+
+
+
+
+
+
+

Example for embedding the css within the notebook before conversion

+
+
+
+
+
+
In [18]:
+
+
+
from IPython.core.display import display, HTML
+from jupyter_core.paths import jupyter_config_dir, jupyter_data_dir
+import os
+csspath=os.path.join(jupyter_data_dir(),'nbextensions',
+                       'highlighter','highlighter.css')
+HTML('<style>'+open(csspath, "r").read()+'</style>')
+
+ +
+
+
+ +
+
+ + +
Out[18]:
+ +
+ +
+ +
+ +
+
+ +
+
+
+ + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.ipynb b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.ipynb new file mode 100644 index 00000000..4368b467 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.ipynb @@ -0,0 +1,201 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exporting the notebook\n", + "\n", + "As suggested by @juhasch, it is interesting to keep the highlights when exporting the notebook to another format. We give and explain below some possibilities:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Short version\n", + "- Html export:\n", + "```bash\n", + " jupyter nbconvert FILE --config JUPYTER_DATA_DIR/extensions/highlight_html_cfg.py \n", + "```\n", + "- LaTeX export:\n", + "```bash\n", + " jupyter nbconvert FILE --config JUPYTER_DATA_DIR/extensions/highlight_latex_cfg.py \n", + "```\n", + "where JUPYTER_DATA_DIR can be found from the output of\n", + "```bash\n", + " jupyter --paths\n", + "```\n", + "eg `~/.local/share/jupyter` in my case. Seems to be `c:\\users\\NAME\\AppData\\Roaming\\jupyter` under Windows. \n", + "\n", + "Examples can be found here: [initial notebook](tst_highlights.ipynb), [html version](tst_highlights.html), [pdf version](tst_highlights.pdf) (after an additional LaTeX $\\rightarrow$ pdf compilation). " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Html export\n", + "This is quite easy. Actually, highlight formatting embedded in markdown cells is preserved while converting with the standard\n", + "```bash\n", + "jupyter nbconvert file.ipynb\n", + "```\n", + "\n", + "However, the css file is missing and must be added. Here we have several possibilities\n", + "\n", + "- Embed the css *within* the notebook. For that, consider the last cell of the present notebook. This code reads the css file `highlighter.css` in the extension directory and displays the corresponding style. So doing the `` section will be present in the cell output and interpreted by the web browser. Drawbacks of this solution is that user still have to execute this cell and that the this is not language agnostic. \n", + "- Use a **template file** to link or include the css file during conversion. Such a file is provided as `templates/highlighter.tpl`. It was choosen here to *include* the css content in the produced html file rather than linking it. This avoids the necessity to keep the css file with the html files. \n", + " - This works directly if the css resides in the same directory as the file the user is attempting to convert --thus requires the user to copy `highlighter.css` in the current directory. Then the conversion is simply \n", + "```bash\n", + " jupyter nbconvert file.ipynb --template highlighter\n", + "```\n", + "\n", + "- It still remains two problems with this approach. First, it can be annoying to have to systematically copy the css file in the current directory. Second, the data within the html tags is not converted (and thus markdown remains unmodified). A solution is to use a pair of preprocessor/postprocessor that modify the html tags and enable the subsequent markdown to html converter to operate on the included data. Also, a config file is provided which redefines the template path to enable direct inclusion of the css file in the extension directory. Unfortunately, it seems that the *full path* to the config file has to be provided. This file resides in the extensions subdirectory of the jupyter_data_dir. The path can be found by looking at the output of\n", + "```bash\n", + " jupyter --paths\n", + "```\n", + "Then the command to issue for converting the notebook to html is\n", + "```bash\n", + " jupyter nbconvert FILE --config JUPYTER_DATA_DIR/extensions/highlight_html_cfg.py \n", + "```\n", + "\n", + "For instance\n", + "```bash\n", + "jupyter nbconvert tst_highlights.ipynb --config ~/.local/share/jupyter/extensions/highlight_html_cfg.py \n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## LaTeX export\n", + "This is a bit more complicated since the direct conversion removes all html formatting present in markdown cells. Thus use again a **preprocessor** which runs before the markdown $\\rightarrow$ LaTeX conversion. In turn, it appears that we also need to postprocess the result. \n", + "\n", + "Three LaTeX commands, namely *highlighta, highlightb, highlightc*, and three environments *highlightA, highlightB, highlightC* are defined. Highlighting html markup is then transformed into the corresponding LaTeX commands and the text for completely highlighted cells is put in the adequate LaTeX environment. \n", + "\n", + "Pre and PostProcessor classes are defined in the file `pp_highlighter.py` located in the `extensions` directory. A LaTeX template, that includes the necessary packages and the definitions of commands/environments is provides as `highlighter.tplx` in the template directory. \n", + "The template inherits from `article.ltx`. For more complex scenarios, typically if the latex template file has be customized, the user shall modify its template or inherit from his base template rather than from article. \n", + "\n", + "Finally, a config file fixes the different options for the conversion. Then the command to issue is simply \n", + "```bash\n", + " jupyter nbconvert FILE --config JUPYTER_DATA_DIR/extensions/highlight_latex_cfg.py \n", + "```\n", + "e.g. \n", + "```bash\n", + "jupyter nbconvert tst_highlights.ipynb --config ~/.local/share/jupyter/extensions/highlight_latex_cfg.py \n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Configuring paths\n", + "\n", + "For those who do not have taken the extension from the `jupyter_contrib_nbextensions` repository or have not configured extensions via its `setup.py` utility, a file `set_paths.py` is present in the extension directory (it is merely a verbatim copy of the relevant parts in setup.py). This file configure the paths to the `templates` and `extension` directories. It should be executed by something like\n", + "```bash\n", + "python3 set_paths.py\n", + "```\n", + "Additionaly, you may also have to execute `mv_paths.py` if you installed from the original repo via `jupyter nbextension install ..`\n", + "```bash\n", + "python3 mv_paths.py\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example for embedding the css within the notebook before conversion" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.core.display import display, HTML\n", + "from jupyter_core.paths import jupyter_config_dir, jupyter_data_dir\n", + "import os\n", + "csspath=os.path.join(jupyter_data_dir(),'nbextensions',\n", + " 'highlighter','highlighter.css')\n", + "HTML('')" + ] + } + ], + "metadata": { + "interactive_sols": { + "cbx_id": 1 + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3+" + }, + "latex_envs": { + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 0 + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.pdf b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.pdf new file mode 100644 index 00000000..eea7a587 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.pdf differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.tex b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.tex new file mode 100644 index 00000000..d08679b3 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/export_highlights.tex @@ -0,0 +1,457 @@ + +% Default to the notebook output style + + +% Inherit from the specified cell style. + + + + + + +\documentclass{article} + + + + + \usepackage{graphicx} % Used to insert images + \usepackage{adjustbox} % Used to constrain images to a maximum size + \usepackage{color} % Allow colors to be defined + \usepackage{enumerate} % Needed for markdown enumerations to work + \usepackage{geometry} % Used to adjust the document margins + \usepackage{amsmath} % Equations + \usepackage{amssymb} % Equations + \usepackage{eurosym} % defines \euro + \usepackage[mathletters]{ucs} % Extended unicode (utf-8) support + \usepackage[utf8x]{inputenc} % Allow utf-8 characters in the tex document + \usepackage{fancyvrb} % verbatim replacement that allows latex + \usepackage{grffile} % extends the file name processing of package graphics + % to support a larger range + % The hyperref package gives us a pdf with properly built + % internal navigation ('pdf bookmarks' for the table of contents, + % internal cross-reference links, web links for URLs, etc.) + \usepackage{hyperref} + \usepackage{longtable} % longtable support required by pandoc >1.10 + \usepackage{booktabs} % table support for pandoc > 1.12.2 + +\usepackage{color} +\usepackage{soul} +\usepackage[framemethod=tikz]{mdframed} + + + + + \definecolor{orange}{cmyk}{0,0.4,0.8,0.2} + \definecolor{darkorange}{rgb}{.71,0.21,0.01} + \definecolor{darkgreen}{rgb}{.12,.54,.11} + \definecolor{myteal}{rgb}{.26, .44, .56} + \definecolor{gray}{gray}{0.45} + \definecolor{lightgray}{gray}{.95} + \definecolor{mediumgray}{gray}{.8} + \definecolor{inputbackground}{rgb}{.95, .95, .85} + \definecolor{outputbackground}{rgb}{.95, .95, .95} + \definecolor{traceback}{rgb}{1, .95, .95} + % ansi colors + \definecolor{red}{rgb}{.6,0,0} + \definecolor{green}{rgb}{0,.65,0} + \definecolor{brown}{rgb}{0.6,0.6,0} + \definecolor{blue}{rgb}{0,.145,.698} + \definecolor{purple}{rgb}{.698,.145,.698} + \definecolor{cyan}{rgb}{0,.698,.698} + \definecolor{lightgray}{gray}{0.5} + + % bright ansi colors + \definecolor{darkgray}{gray}{0.25} + \definecolor{lightred}{rgb}{1.0,0.39,0.28} + \definecolor{lightgreen}{rgb}{0.48,0.99,0.0} + \definecolor{lightblue}{rgb}{0.53,0.81,0.92} + \definecolor{lightpurple}{rgb}{0.87,0.63,0.87} + \definecolor{lightcyan}{rgb}{0.5,1.0,0.83} + + % commands and environments needed by pandoc snippets + % extracted from the output of `pandoc -s` + \providecommand{\tightlist}{% + \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} + \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}} + % Add ',fontsize=\small' for more characters per line + \newenvironment{Shaded}{}{} + \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} + \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}} + \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} + \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} + \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} + \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} + \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} + \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}} + \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}} + \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} + \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}} + \newcommand{\RegionMarkerTok}[1]{{#1}} + \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} + \newcommand{\NormalTok}[1]{{#1}} + + % Define a nice break command that doesn't care if a line doesn't already + % exist. + \def\br{\hspace*{\fill} \\* } + % Math Jax compatability definitions + \def\gt{>} + \def\lt{<} + % Document parameters + \title{export\_highlights} + + +\author{} + + + + % Pygments definitions + +\makeatletter +\def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax% + \let\PY@ul=\relax \let\PY@tc=\relax% + \let\PY@bc=\relax \let\PY@ff=\relax} +\def\PY@tok#1{\csname PY@tok@#1\endcsname} +\def\PY@toks#1+{\ifx\relax#1\empty\else% + \PY@tok{#1}\expandafter\PY@toks\fi} +\def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{% + \PY@it{\PY@bf{\PY@ff{#1}}}}}}} +\def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}} + +\expandafter\def\csname PY@tok@gp\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PY@tok@no\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PY@tok@il\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@sx\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@kt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PY@tok@mo\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@sh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@bp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@gd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PY@tok@sb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@err\endcsname{\def\PY@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PY@tok@nd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PY@tok@gr\endcsname{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PY@tok@kd\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@s\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@cs\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@sd\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@ss\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@nn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@w\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PY@tok@kn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@sc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@s1\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@ge\endcsname{\let\PY@it=\textit} +\expandafter\def\csname PY@tok@cp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PY@tok@gh\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PY@tok@gi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PY@tok@vc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@si\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PY@tok@ow\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PY@tok@vg\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@sr\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PY@tok@cm\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@c\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@mi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@kc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@ne\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PY@tok@nf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@go\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PY@tok@m\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@mh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@nc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@mb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@se\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PY@tok@gt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PY@tok@nv\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@c1\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@kp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@s2\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@nb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@ni\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PY@tok@k\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@na\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PY@tok@o\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@mf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@nl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PY@tok@nt\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@gs\endcsname{\let\PY@bf=\textbf} +\expandafter\def\csname PY@tok@vi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@gu\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PY@tok@kr\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} + +\def\PYZbs{\char`\\} +\def\PYZus{\char`\_} +\def\PYZob{\char`\{} +\def\PYZcb{\char`\}} +\def\PYZca{\char`\^} +\def\PYZam{\char`\&} +\def\PYZlt{\char`\<} +\def\PYZgt{\char`\>} +\def\PYZsh{\char`\#} +\def\PYZpc{\char`\%} +\def\PYZdl{\char`\$} +\def\PYZhy{\char`\-} +\def\PYZsq{\char`\'} +\def\PYZdq{\char`\"} +\def\PYZti{\char`\~} +% for compatibility with earlier versions +\def\PYZat{@} +\def\PYZlb{[} +\def\PYZrb{]} +\makeatother + + + + + + + % Prevent overflowing lines due to hard-to-break entities + \sloppy + % Setup hyperref package + \hypersetup{ + breaklinks=true, % so long urls are correctly broken across lines + colorlinks=true, + urlcolor=blue, + linkcolor=darkorange, + citecolor=darkgreen, + } + % Slightly bigger margins than the latex defaults + + \geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in} + + + \newcommand{\highlighta}[1]{{\sethlcolor{yellow} \textcolor{red}{\hl{#1}}}} + \newcommand{\highlightb}[1]{{\sethlcolor{red} \textcolor{yellow}{\hl{#1}}}} + \newcommand{\highlightc}[1]{{\sethlcolor{green} \textcolor{yellow}{\hl{#1}}}} + \newenvironment{highlightA}{\begin{mdframed}[hidealllines=true,backgroundcolor=yellow!20]}{\end{mdframed}} + \newenvironment{highlightB}{\begin{mdframed}[hidealllines=true,backgroundcolor=red!20]}{\end{mdframed}} + \newenvironment{highlightC}{\begin{mdframed}[hidealllines=true,backgroundcolor=green!20]}{\end{mdframed}} + + +%\usepackage{foo} + + \begin{document} + + + \maketitle + + + + + \section{Exporting the notebook}\label{exporting-the-notebook} + +As suggested by @juhasch, it is interesting to keep the highlights when +exporting the notebook to another format. We give and explain below some +possibilities: + + \subsection{Short version}\label{short-version} + +\begin{itemize} +\item + Html export: + +\begin{Shaded} +\begin{Highlighting}[] + \KeywordTok{jupyter} \NormalTok{nbconvert FILE --config JUPYTER_DATA_DIR/extensions/highlight_html_cfg.py } +\end{Highlighting} +\end{Shaded} +\item + LaTeX export: + +\begin{Shaded} +\begin{Highlighting}[] + \KeywordTok{jupyter} \NormalTok{nbconvert FILE --config JUPYTER_DATA_DIR/extensions/highlight_latex_cfg.py } +\end{Highlighting} +\end{Shaded} + + where JUPYTER\_DATA\_DIR can be found from the output of + +\begin{Shaded} +\begin{Highlighting}[] + \KeywordTok{jupyter} \NormalTok{--paths} +\end{Highlighting} +\end{Shaded} + + eg \texttt{\textasciitilde{}/.local/share/jupyter} in my case. Seems + to be + \texttt{c:\textbackslash{}users\textbackslash{}NAME\textbackslash{}AppData\textbackslash{}Roaming\textbackslash{}jupyter} + under Windows. +\end{itemize} + +Examples can be found here: \href{tst_highlights.ipynb}{initial +notebook}, \href{tst_highlights.html}{html version}, +\href{tst_highlights.pdf}{pdf version} (after an additional LaTeX +\(\rightarrow\) pdf compilation). + + \subsection{Html export}\label{html-export} + +This is quite easy. Actually, highlight formatting embedded in markdown +cells is preserved while converting with the standard + +\begin{Shaded} +\begin{Highlighting}[] +\KeywordTok{jupyter} \NormalTok{nbconvert file.ipynb} +\end{Highlighting} +\end{Shaded} + +However, the css file is missing and must be added. Here we have several +possibilities + +\begin{itemize} +\item + Embed the css \emph{within} the notebook. For that, consider the last + cell of the present notebook. This code reads the css file + \texttt{highlighter.css} in the extension directory and displays the + corresponding style. So doing the + \texttt{\textless{}style\textgreater{}\ ...\textless{}/style\textgreater{}} + section will be present in the cell output and interpreted by the web + browser. Drawbacks of this solution is that user still have to execute + this cell and that the this is not language agnostic. +\item + Use a \textbf{template file} to link or include the css file during + conversion. Such a file is provided as + \texttt{templates/highlighter.tpl}. It was choosen here to + \emph{include} the css content in the produced html file rather than + linking it. This avoids the necessity to keep the css file with the + html files. +\item + This works directly if the css resides in the same directory as the + file the user is attempting to convert --thus requires the user to + copy \texttt{highlighter.css} in the current directory. Then the + conversion is simply + +\begin{Shaded} +\begin{Highlighting}[] + \KeywordTok{jupyter} \NormalTok{nbconvert file.ipynb --template highlighter} +\end{Highlighting} +\end{Shaded} +\item + It still remains two problems with this approach. First, it can be + annoying to have to systematically copy the css file in the current + directory. Second, the data within the html tags is not converted (and + thus markdown remains unmodified). A solution is to use a pair of + preprocessor/postprocessor that modify the html tags and enable the + subsequent markdown to html converter to operate on the included data. + Also, a config file is provided which redefines the template path to + enable direct inclusion of the css file in the extension directory. + Unfortunately, \highlighta{it seems that the \emph{full path} to + the config file has to be provided}. This file resides in the + extensions subdirectory of the jupyter\_data\_dir. The path can be + found by looking at the output of + +\begin{Shaded} +\begin{Highlighting}[] + \KeywordTok{jupyter} \NormalTok{--paths} +\end{Highlighting} +\end{Shaded} + + Then the command to issue for converting the notebook to html is + +\begin{Shaded} +\begin{Highlighting}[] + \KeywordTok{jupyter} \NormalTok{nbconvert FILE --config JUPYTER_DATA_DIR/extensions/highlight_html_cfg.py } +\end{Highlighting} +\end{Shaded} +\end{itemize} + +For instance + +\begin{Shaded} +\begin{Highlighting}[] +\KeywordTok{jupyter} \NormalTok{nbconvert tst_highlights.ipynb --config ~/.local/share/jupyter/extensions/highlight_html_cfg.py } +\end{Highlighting} +\end{Shaded} + + \subsection{LaTeX export}\label{latex-export} + +This is a bit more complicated since the direct conversion removes all +html formatting present in markdown cells. Thus use again a +\textbf{preprocessor} which runs before the markdown \(\rightarrow\) +LaTeX conversion. In turn, it appears that we also need to postprocess +the result. + +Three LaTeX commands, namely \emph{highlighta, highlightb, highlightc}, +and three environments \emph{highlightA, highlightB, highlightC} are +defined. Highlighting html markup is then transformed into the +corresponding LaTeX commands and the text for completely highlighted +cells is put in the adequate LaTeX environment. + +Pre and PostProcessor classes are defined in the file +\texttt{pp\_highlighter.py} located in the \texttt{extensions} +directory. A LaTeX template, that includes the necessary packages and +the definitions of commands/environments is provides as +\texttt{highlighter.tplx} in the template directory. The template +inherits from \texttt{article.ltx}. For more complex scenarios, +typically if the latex template file has be customized, the user shall +modify its template or inherit from his base template rather than from +article. + +Finally, a config file fixes the different options for the conversion. +Then the command to issue is simply + +\begin{Shaded} +\begin{Highlighting}[] + \KeywordTok{jupyter} \NormalTok{nbconvert FILE --config JUPYTER_DATA_DIR/extensions/highlight_latex_cfg.py } +\end{Highlighting} +\end{Shaded} + +e.g. + +\begin{Shaded} +\begin{Highlighting}[] +\KeywordTok{jupyter} \NormalTok{nbconvert tst_highlights.ipynb --config ~/.local/share/jupyter/extensions/highlight_latex_cfg.py } +\end{Highlighting} +\end{Shaded} + + \subsection{Configuring paths}\label{configuring-paths} + +\highlighta{For those who do not have taken the extension from the +\texttt{jupyter_contrib_nbextensions} repository or have not configured +extensions via its \texttt{setup.py} utility,} a file +\texttt{set\_paths.py} is present in the extension directory (it is +merely a verbatim copy of the relevant parts in setup.py). This file +configure the paths to the \texttt{templates} and \texttt{extension} +directories. It should be executed by something like + +\begin{Shaded} +\begin{Highlighting}[] +\KeywordTok{python3} \NormalTok{set_paths.py} +\end{Highlighting} +\end{Shaded} + +Additionaly, you may also have to execute \texttt{mv\_paths.py} if you +installed from the original repo via +\texttt{jupyter\ nbextension\ install\ ..} + +\begin{Shaded} +\begin{Highlighting}[] +\KeywordTok{python3} \NormalTok{mv_paths.py} +\end{Highlighting} +\end{Shaded} + + \subsection{Example for embedding the css within the notebook before +conversion}\label{example-for-embedding-the-css-within-the-notebook-before-conversion} + + \begin{Verbatim}[commandchars=\\\{\}] +>>> \PY{k+kn}{from} \PY{n+nn}{IPython}\PY{n+nn}{.}\PY{n+nn}{core}\PY{n+nn}{.}\PY{n+nn}{display} \PY{k}{import} \PY{n}{display}\PY{p}{,} \PY{n}{HTML} +... \PY{k+kn}{from} \PY{n+nn}{jupyter\PYZus{}core}\PY{n+nn}{.}\PY{n+nn}{paths} \PY{k}{import} \PY{n}{jupyter\PYZus{}config\PYZus{}dir}\PY{p}{,} \PY{n}{jupyter\PYZus{}data\PYZus{}dir} +... \PY{k+kn}{import} \PY{n+nn}{os} +... \PY{n}{csspath}\PY{o}{=}\PY{n}{os}\PY{o}{.}\PY{n}{path}\PY{o}{.}\PY{n}{join}\PY{p}{(}\PY{n}{jupyter\PYZus{}data\PYZus{}dir}\PY{p}{(}\PY{p}{)}\PY{p}{,}\PY{l+s}{\PYZsq{}}\PY{l+s}{nbextensions}\PY{l+s}{\PYZsq{}}\PY{p}{,} +... \PY{l+s}{\PYZsq{}}\PY{l+s}{highlighter}\PY{l+s}{\PYZsq{}}\PY{p}{,}\PY{l+s}{\PYZsq{}}\PY{l+s}{highlighter.css}\PY{l+s}{\PYZsq{}}\PY{p}{)} +... \PY{n}{HTML}\PY{p}{(}\PY{l+s}{\PYZsq{}}\PY{l+s}{\PYZlt{}style\PYZgt{}}\PY{l+s}{\PYZsq{}}\PY{o}{+}\PY{n+nb}{open}\PY{p}{(}\PY{n}{csspath}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{r}\PY{l+s}{\PYZdq{}}\PY{p}{)}\PY{o}{.}\PY{n}{read}\PY{p}{(}\PY{p}{)}\PY{o}{+}\PY{l+s}{\PYZsq{}}\PY{l+s}{\PYZlt{}/style\PYZgt{}}\PY{l+s}{\PYZsq{}}\PY{p}{)} + \end{Verbatim} + + + + \begin{verbatim} + + \end{verbatim} + + + + + % Add a bibliography block to the postdoc + + + + \end{document} diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/highlighter.css b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/highlighter.css new file mode 100644 index 00000000..7c55f504 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/highlighter.css @@ -0,0 +1,17 @@ +.mark { + background-color: yellow; + color: red; + display:inline-block; +} + +.burk { + background-color: red; + color: yellow; + display:inline-block; +} + +.girk { + background-color: lime; + color: red; + display:inline-block; +} diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/highlighter.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/highlighter.js new file mode 100644 index 00000000..ac249c6d --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/highlighter.js @@ -0,0 +1,348 @@ +/* +Three different highlighting schemes "mark"|"burk"|"girk" are defined in the css highlighter.css +The following functions highlight the selected text, according to the scheme chosen by a menu button. More precisely, they replace selected text, both in edit or command mode, by +a span tag with a given class and the selected text as data. +if no text is selected, then the whole cell is highlighted (using a div tag and a class corresponding to the chosen scheme). A function to remove all hihlightings is also provided. +*/ + +function removeFullCellHighlight(cell_text) { + cell_text = cell_text.replace(/
\n([\s\S]*?)<\/div><\/i>/g, function(w, g) { + return g + }) + return cell_text +} + +function fullCellHighlight(cell_text,scheme) { + cell_text=removeFullCellHighlight(cell_text); + return '
\n'+cell_text+'
<\/i>' +} + +function highlight(text,scheme) { + var scheme=scheme; + // replace by a span, wile preserving leading and trailing spaces + var rep=text.replace(/(\S[\S\s]*\S)/,function (w,internal_text){ + return ''+internal_text+''}) + return rep + //return ''+text+'' +} + + +function add_div(text) { + if (text.match(/^
([\S\s]*)<\/div>$/)==null) {return '
'+text+'
'} + else {return text} +} + +function rem_div(text) { + return text.replace(/^
([\S\s]*)<\/div>$/,function (w,g){return g}) +} + +function highlightInCmdMode(event, scheme) { + var cell = IPython.notebook.get_selected_cell() + var cm = IPython.notebook.get_selected_cell().code_mirror + var selectedText = window.getSelection().toString(); + var cell_text = cell.get_text(); + if (selectedText.length==0){ + cell_text=fullCellHighlight(cell_text,scheme); + } + else{ + var identifiedText = align(selectedText,cell_text); + cell_text = cell_text.replace(identifiedText,highlight(identifiedText,scheme)); + } + cell.set_text(cell_text); + cell.render(); + return false; +} + +function highlightInEditMode(event, scheme) { + var cell = IPython.notebook.get_selected_cell() + var cm = cell.code_mirror + var selectedText = cm.getSelection() + if (selectedText.length==0){ + var cell_text = cell.get_text(); + cell_text=fullCellHighlight(cell_text,scheme); + cell.set_text(cell_text); + } + else{ + cm.replaceSelection(highlight(selectedText,scheme)) + } + return false; +} + +function removeHighlights() { + var cell = IPython.notebook.get_selected_cell(); + var cell_text = removeFullCellHighlight(cell.get_text()); + cell_text = cell_text.replace(/([\s\S]*?)<\/span>/g, + function(w, g) {return g} +) + cell.set_text(cell_text) + cell.render(); +} + +//***************************************************************************************** +// Utilitary functions for finding a candidate corresponding text from an unformatted selection + +/* In case of text selection in rendered cells, the returned text retains no formatting +therefore, when looking for this text in the actual formatted text, we need to do a +kind of "fuzzy" alignment. Though there exists specialized libraries for such task, +we have developed here a simple heuristics that should work 90% of the time, +but the problem cannot get a perfect solution. +A first point is to replace special characters that could be interpreded with +a special meaning in regular expressions. Then the idea is to find the exact matches +on the longest substring from the beginning of text, then the longest substring +from the end of the text. Finally, given the locations of the two substring, +we extract the corresponding global match in the original text. +*/ +function escapeRegExp(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "#"); + // return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + return str +} + +// Extract the longest matching substring from the beginning of the text +function exsub_up(sub, text) { + for (k = 0; k <= sub.length; k++) { + if (text.match(sub.substr(0, k)) == null) { + k = k - 2 + break + } + } + return text.match(sub.substr(0, k + 1)) +} + +// Extract the longest matching substring from the end of the text +function exsub_down(sub, text) { + var L = sub.length + try { + for (k = 0; k <= sub.length; k++) { + tst = sub.substr(L - k - 1, L); + if (text.match(tst) == null) { + // console.log(tst) + k = k - 1 + break + } + } + return text.match(sub.substr(L - k - 1, L)) + } catch (e) { + console.log('Error', e) + return "" + } + +} + +// Function that tries to find the best match of the unformatted +// text in the formatted one. + +function align(tofind, text) { + + sub = escapeRegExp(tofind) + textModified = escapeRegExp(text) + //console.log(textModified.match(sub)) + if (textModified.match(sub) == null) { + a = exsub_up(sub, textModified) + b = exsub_down(sub, textModified) + return text.substr(a.index, b.index + b[0].length - a.index) + } else { + var tmpMatch = textModified.match(sub) + return text.substr(tmpMatch.index, tmpMatch[0].length) + } +} + + + +// ***************** Keyboard shortcuts ****************************** + +var add_cmd_shortcuts = { + 'Alt-g': { + help: 'highlight selected text', + help_index: 'ht', + handler: function(event) { + highlightInCmdMode("", mark); + return false; + } + }, + 'Alt-h': { + help: 'highlight selected text', + help_index: 'ht', + handler: function(event) { + highlightInCmdMode("", burk); + return false; + } + }, +}; + + +var add_edit_shortcuts = { + 'Alt-g': { + help: 'highlight selected text', + help_index: 'ht', + handler: function(event) { + var highlight = mark; + highlightInEditMode("", mark); + return false; + } + }, + 'Alt-h': { + help: 'highlight selected text', + help_index: 'ht', + handler: function(event) { + var highlight = burk; + highlightInEditMode("", burk); + return false; + } + }, +}; + + +//******Toolbar buttons ************************************************* + +function highlightText(scheme) { + var cell = IPython.notebook.get_selected_cell(); + var rendered = cell.rendered; + if (rendered) highlightInCmdMode("", scheme); + else highlightInEditMode("", scheme); +} + + +function build_toolbar () { +var test = ' ' + + +$("#maintoolbar-container").append(test); +$("#test").css({ + 'padding': '5px' +}); + +$("#submenu").hide(); // initially hide the submenu + +//buttons initial css -- shall check if this is really necessary +$("#higlighter_menu").css({ + 'padding': '2px 8px', + 'display': 'inline-block', + 'border': '1px solid', + 'border-color': '#cccccc', + 'font-weight': 'bold', + 'text-align': 'center', + 'vertical-align': 'middle', + 'margin-left': '0px', + 'margin-right': '0px' +}) + + +//Actions + + +$("#higlighter_menu") + .on('click', function() { + $("#submenu").toggle(); + $("#menu-hgl").toggleClass("fa-caret-right", "fa-caret-left") + }) + .attr('title', 'Highlight Selected Text'); + + +$("#b1") + .on('click', function() { + highlightText("burk") + }) + .on('mouseover', function() { + $("#b1").removeClass("btn btn-default").addClass("btn burk") + //.addClass("burk"); +}) //!! + .on('mouseout', function() { + $("#b1").addClass("btn btn-default") +}) + + +$("#b2") + .on('click', function() { + highlightText("mark") + }) + .on('mouseover', function() { + $("#b2").removeClass("btn btn-default").addClass("btn mark") +}) //!! + .on('mouseout', function() { + $("#b2").addClass("btn btn-default") +}) + +$("#b3") + .on('click', function() { + highlightText("girk") + }) + .on('mouseover', function() { + $(this).removeClass("btn btn-default").addClass("btn girk") +}) //!! + .on('mouseout', function() { + $(this).addClass("btn btn-default") +}) + + +$("#remove_highlights") + .on('click', function() { + removeHighlights() + }) + .attr('title', 'Remove highlightings in selected cell'); +} // end build_toolbar + +//******************************* MAIN FUNCTION ************************** + +define(["require", + 'base/js/namespace' +], function(requirejs, Jupyter) { + + var security = requirejs("base/js/security") + + var load_css = function(name) { + var link = document.createElement("link"); + link.type = "text/css"; + link.rel = "stylesheet"; + link.href = requirejs.toUrl(name); + document.getElementsByTagName("head")[0].appendChild(link); + + }; + + //Load_ipython_extension + var load_ipython_extension = requirejs(['base/js/namespace'], function(Jupyter) { + "use strict"; + if (Jupyter.version[0] < 3) { + console.log("This extension requires Jupyter or IPython >= 3.x") + return + } + + console.log("[highlighter] Loading highlighter.css"); + load_css('./highlighter.css') + + IPython.keyboard_manager.edit_shortcuts.add_shortcuts(add_edit_shortcuts); + IPython.keyboard_manager.command_shortcuts.add_shortcuts(add_cmd_shortcuts); + + build_toolbar(); + + var _on_reload = true; /* make sure cells render on reload */ + + //highlighter_init_cells(); /* initialize cells */ + + + /* on reload */ + $([Jupyter.events]).on('status_started.Kernel', function() { + + //highlighter_init_cells(); + console.log("[highlighter] reload..."); + _on_reload = false; + }) + + }); //end of load_ipython_extension function + + return { + load_ipython_extension: load_ipython_extension, + }; +}); //End of main function + +console.log("Loading ./highlighter.js"); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/highlighter.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/highlighter.yaml new file mode 100644 index 00000000..fdd56310 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/highlighter.yaml @@ -0,0 +1,7 @@ +Type: IPython Notebook Extension +Name: highlighter +Description: Enable to highlight select text in a markdown cell +Link: readme.md +Icon: icon.png +Main: highlighter.js +Compatibility: 3.x, 4.x, 5.x diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/icon.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/icon.png new file mode 100644 index 00000000..7c47f176 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/icon.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/image.gif b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/image.gif new file mode 100644 index 00000000..8a551ae1 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/image.gif differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/readme.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/readme.md new file mode 100644 index 00000000..cad658c5 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/readme.md @@ -0,0 +1,47 @@ +Highlighter +=========== + +- Firstable, the extension provides several toolbar buttons for highlighting a selected text _within a markdown cell_. Three different \`color schemes' are provided, which can be easily customized in the stylesheet `highlighter.css`. The last button enables to remove all highlightings in the current cell. +- This works both when the cell is _rendered_ and when the cell is in edit mode; +- In both modes, it is possible to highlight formatted portions of text (In rendered mode, since the selected text loose its formatting, an heuristic is applied to find the best alignment with the actual text) +- When no text is selected, the whole cell is highlighted; +- The extension also provides two keyboard shortcuts (Alt-G and Alt-H) which fire the highlighting of the selected text. +- Highlights can be preserved when exporting to html or to LaTeX -- details are provided in [export_highlights](https://rawgit.com/jfbercher/small_nbextensions/master/usability/highlighter/export_highlights.html) + + +![](image.gif) + + +Installation +------------ + +The extension can be installed with the nice UI available on jupyter_nbextensions_configurator website, which also allows to enable/disable the extension. + +You may also install the extension from the original repo: issue + +```bash +jupyter nbextension install https://rawgit.com/jfbercher/small_nbextensions/master/highlighter.zip --user +``` +at the command line. + + +Testing +------- + +Use a code cell with + +```python +%%javascript +require("base/js/utils").load_extensions("highlighter/highlighter") +``` + + +Automatic load +-------------- + +You may also automatically load the extension for any notebook via + +```bash +jupyter nbextension enable highlighter/highlighter +``` + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.html b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.html new file mode 100644 index 00000000..3e8dd5b6 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.html @@ -0,0 +1,218 @@ + + + +tst_highlights + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+

First cell

In the first cell, we highlight some words using the different schemes provided.

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus id lacus mauris. Etiam in dictum mauris. Morbi pharetra, mauris a feugiat consequat, est purus vulputate mauris, quis feugiat leo metus eu risus. Sed non luctus arcu. Donec eu ipsum justo. Praesent sit amet euismod orci. Nam eu turpis quis enim pulvinar blandit in eu justo. Vivamus nec libero ipsum. Nunc tempus, mi at vestibulum congue, lacus ante faucibus dolor, quis varius elit felis id ipsum. Vivamus at mi lorem. Integer quam massa, viverra et fermentum et, cursus faucibus nisl. Vestibulum sed est lacus. Morbi sit amet laoreet odio.

+ +
+
+
+
+
+
+
+
+

+

Second cell

The second cell is completely highlighted.

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus id lacus mauris. Etiam in dictum mauris. Morbi pharetra, mauris a feugiat consequat, est purus vulputate mauris, quis feugiat leo metus eu risus. Sed non luctus arcu. Donec eu ipsum justo. Praesent sit amet euismod orci. Nam eu turpis quis enim pulvinar blandit in eu justo. Vivamus nec libero ipsum. Nunc tempus, mi at vestibulum congue, lacus ante faucibus dolor, quis varius elit felis id ipsum. Vivamus at mi lorem. Integer quam massa, viverra et fermentum et, cursus faucibus nisl. Vestibulum sed est lacus. Morbi sit amet laoreet odio.

+ +
+
+
+
+
+ + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.ipynb b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.ipynb new file mode 100644 index 00000000..2f18bbc6 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.ipynb @@ -0,0 +1,60 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# First cell\n", + "\n", + "In the first cell, we highlight *some words* using the different schemes provided. \n", + "\n", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus id lacus mauris. Etiam in dictum mauris. Morbi pharetra, **mauris a feugiat consequat**, est purus vulputate mauris, quis feugiat leo metus eu risus. Sed non luctus arcu. Donec eu ipsum justo. Praesent sit amet euismod orci. Nam eu turpis quis enim pulvinar blandit in eu justo. Vivamus nec libero ipsum. Nunc tempus, mi at vestibulum congue, lacus ante faucibus dolor, quis varius elit felis id ipsum. Vivamus at mi lorem. Integer quam massa, viverra et fermentum et, cursus faucibus nisl. Vestibulum sed est lacus. Morbi sit amet laoreet odio.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "# Second cell\n", + "\n", + "The second cell is completely highlighted. \n", + "\n", + "\n", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus id lacus mauris. Etiam in dictum mauris. Morbi pharetra, mauris a feugiat consequat, est purus vulputate mauris, quis feugiat leo metus eu risus. Sed non luctus arcu. Donec eu ipsum justo. Praesent sit amet euismod orci. Nam eu turpis quis enim pulvinar blandit in eu justo. Vivamus nec libero ipsum. Nunc tempus, mi at vestibulum congue, lacus ante faucibus dolor, quis varius elit felis id ipsum. Vivamus at mi lorem. Integer quam massa, viverra et fermentum et, cursus faucibus nisl. Vestibulum sed est lacus. Morbi sit amet laoreet odio.
" + ] + } + ], + "metadata": { + "interactive_sols": { + "cbx_id": 1 + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3+" + }, + "latex_envs": { + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 0 + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.pdf b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.pdf new file mode 100644 index 00000000..8df38f38 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.pdf differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.tex b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.tex new file mode 100644 index 00000000..ec4cbc3d --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/highlighter/tst_highlights.tex @@ -0,0 +1,279 @@ + +% Default to the notebook output style + + +% Inherit from the specified cell style. + + + + + + +\documentclass{article} + + + + + \usepackage{graphicx} % Used to insert images + \usepackage{adjustbox} % Used to constrain images to a maximum size + \usepackage{color} % Allow colors to be defined + \usepackage{enumerate} % Needed for markdown enumerations to work + \usepackage{geometry} % Used to adjust the document margins + \usepackage{amsmath} % Equations + \usepackage{amssymb} % Equations + \usepackage{eurosym} % defines \euro + \usepackage[mathletters]{ucs} % Extended unicode (utf-8) support + \usepackage[utf8x]{inputenc} % Allow utf-8 characters in the tex document + \usepackage{fancyvrb} % verbatim replacement that allows latex + \usepackage{grffile} % extends the file name processing of package graphics + % to support a larger range + % The hyperref package gives us a pdf with properly built + % internal navigation ('pdf bookmarks' for the table of contents, + % internal cross-reference links, web links for URLs, etc.) + \usepackage{hyperref} + \usepackage{longtable} % longtable support required by pandoc >1.10 + \usepackage{booktabs} % table support for pandoc > 1.12.2 + +\usepackage{color} +\usepackage{soul} +\usepackage[framemethod=tikz]{mdframed} + + + + + \definecolor{orange}{cmyk}{0,0.4,0.8,0.2} + \definecolor{darkorange}{rgb}{.71,0.21,0.01} + \definecolor{darkgreen}{rgb}{.12,.54,.11} + \definecolor{myteal}{rgb}{.26, .44, .56} + \definecolor{gray}{gray}{0.45} + \definecolor{lightgray}{gray}{.95} + \definecolor{mediumgray}{gray}{.8} + \definecolor{inputbackground}{rgb}{.95, .95, .85} + \definecolor{outputbackground}{rgb}{.95, .95, .95} + \definecolor{traceback}{rgb}{1, .95, .95} + % ansi colors + \definecolor{red}{rgb}{.6,0,0} + \definecolor{green}{rgb}{0,.65,0} + \definecolor{brown}{rgb}{0.6,0.6,0} + \definecolor{blue}{rgb}{0,.145,.698} + \definecolor{purple}{rgb}{.698,.145,.698} + \definecolor{cyan}{rgb}{0,.698,.698} + \definecolor{lightgray}{gray}{0.5} + + % bright ansi colors + \definecolor{darkgray}{gray}{0.25} + \definecolor{lightred}{rgb}{1.0,0.39,0.28} + \definecolor{lightgreen}{rgb}{0.48,0.99,0.0} + \definecolor{lightblue}{rgb}{0.53,0.81,0.92} + \definecolor{lightpurple}{rgb}{0.87,0.63,0.87} + \definecolor{lightcyan}{rgb}{0.5,1.0,0.83} + + % commands and environments needed by pandoc snippets + % extracted from the output of `pandoc -s` + \providecommand{\tightlist}{% + \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} + \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}} + % Add ',fontsize=\small' for more characters per line + \newenvironment{Shaded}{}{} + \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} + \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}} + \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} + \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} + \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} + \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} + \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} + \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}} + \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}} + \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} + \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}} + \newcommand{\RegionMarkerTok}[1]{{#1}} + \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} + \newcommand{\NormalTok}[1]{{#1}} + + % Define a nice break command that doesn't care if a line doesn't already + % exist. + \def\br{\hspace*{\fill} \\* } + % Math Jax compatability definitions + \def\gt{>} + \def\lt{<} + % Document parameters + \title{tst\_highlights} + + +\author{} + + + + % Pygments definitions + +\makeatletter +\def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax% + \let\PY@ul=\relax \let\PY@tc=\relax% + \let\PY@bc=\relax \let\PY@ff=\relax} +\def\PY@tok#1{\csname PY@tok@#1\endcsname} +\def\PY@toks#1+{\ifx\relax#1\empty\else% + \PY@tok{#1}\expandafter\PY@toks\fi} +\def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{% + \PY@it{\PY@bf{\PY@ff{#1}}}}}}} +\def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}} + +\expandafter\def\csname PY@tok@mo\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@sc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@nl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PY@tok@nn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@nv\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@vc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@se\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PY@tok@gh\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PY@tok@k\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@kn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@sb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@no\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PY@tok@gu\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PY@tok@o\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@gd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PY@tok@vi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@s2\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@il\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@nd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PY@tok@cs\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@ge\endcsname{\let\PY@it=\textit} +\expandafter\def\csname PY@tok@go\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PY@tok@mb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@sh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@w\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PY@tok@gr\endcsname{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PY@tok@ss\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@cm\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@gs\endcsname{\let\PY@bf=\textbf} +\expandafter\def\csname PY@tok@kd\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@bp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@si\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PY@tok@ni\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PY@tok@c\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@kr\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@nb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@ow\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PY@tok@s\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@nf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@mh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@na\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PY@tok@gp\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PY@tok@gi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PY@tok@err\endcsname{\def\PY@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PY@tok@gt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PY@tok@cp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PY@tok@kc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@sr\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PY@tok@vg\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@kt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PY@tok@nt\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@ne\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PY@tok@sd\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@c1\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@s1\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@sx\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@mf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@mi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@m\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@nc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@kp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} + +\def\PYZbs{\char`\\} +\def\PYZus{\char`\_} +\def\PYZob{\char`\{} +\def\PYZcb{\char`\}} +\def\PYZca{\char`\^} +\def\PYZam{\char`\&} +\def\PYZlt{\char`\<} +\def\PYZgt{\char`\>} +\def\PYZsh{\char`\#} +\def\PYZpc{\char`\%} +\def\PYZdl{\char`\$} +\def\PYZhy{\char`\-} +\def\PYZsq{\char`\'} +\def\PYZdq{\char`\"} +\def\PYZti{\char`\~} +% for compatibility with earlier versions +\def\PYZat{@} +\def\PYZlb{[} +\def\PYZrb{]} +\makeatother + + + + + + + % Prevent overflowing lines due to hard-to-break entities + \sloppy + % Setup hyperref package + \hypersetup{ + breaklinks=true, % so long urls are correctly broken across lines + colorlinks=true, + urlcolor=blue, + linkcolor=darkorange, + citecolor=darkgreen, + } + % Slightly bigger margins than the latex defaults + + \geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in} + + + \newcommand{\highlighta}[1]{{\sethlcolor{yellow} \textcolor{red}{\hl{#1}}}} + \newcommand{\highlightb}[1]{{\sethlcolor{red} \textcolor{yellow}{\hl{#1}}}} + \newcommand{\highlightc}[1]{{\sethlcolor{green} \textcolor{yellow}{\hl{#1}}}} + \newenvironment{highlightA}{\begin{mdframed}[hidealllines=true,backgroundcolor=yellow!20]}{\end{mdframed}} + \newenvironment{highlightB}{\begin{mdframed}[hidealllines=true,backgroundcolor=red!20]}{\end{mdframed}} + \newenvironment{highlightC}{\begin{mdframed}[hidealllines=true,backgroundcolor=green!20]}{\end{mdframed}} + + +%\usepackage{foo} + + \begin{document} + + + \maketitle + + + + + \section{First cell}\label{first-cell} + +\highlighta{In the first cell, we highlight \emph{some words} +using the different schemes provided.} + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus id +lacus mauris. Etiam in dictum mauris. \highlightb{Morbi pharetra, +\textbf{mauris a feugiat consequat}, est purus vulputate mauris, quis +feugiat leo metus eu risus. Sed non luctus arcu.} Donec eu ipsum +justo. Praesent sit amet euismod orci. Nam eu turpis quis enim pulvinar +blandit in eu justo. Vivamus nec libero ipsum. Nunc tempus, mi at +vestibulum congue, lacus ante faucibus dolor, quis varius elit felis id +ipsum. \highlightc{Vivamus at mi lorem.} Integer quam massa, +viverra et fermentum et, cursus faucibus nisl. Vestibulum sed est lacus. +Morbi sit amet laoreet odio. + + \begin{highlightA} + +\section{Second cell}\label{second-cell} + +The second cell is completely highlighted. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus id +lacus mauris. Etiam in dictum mauris. Morbi pharetra, mauris a feugiat +consequat, \highlightb{est purus vulputate mauris,} quis +feugiat leo metus eu risus. Sed non luctus arcu. Donec eu ipsum justo. +Praesent sit amet euismod orci. Nam eu turpis quis enim pulvinar blandit +in eu justo. Vivamus nec libero ipsum. Nunc tempus, mi at vestibulum +congue, \highlightc{lacus ante faucibus dolor}, quis varius +elit felis id ipsum. Vivamus at mi lorem. Integer quam massa, viverra et +fermentum et, cursus faucibus nisl. Vestibulum sed est lacus. Morbi sit +amet laoreet odio. \end{highlightA} + + + % Add a bibliography block to the postdoc + + + + \end{document} diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hinterland/README.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hinterland/README.md new file mode 100644 index 00000000..5a33c75d --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hinterland/README.md @@ -0,0 +1,49 @@ +Hinterland +========== + +Enable code autocompletion menu for every keypress in a code cell, instead of +only calling it with tab. + +The nbextension adds an item to the help menu to turn auto-hinting on and off, +and offers some options for configuration: + + +Options +------- + +* `hinterland.hint_delay`: + delay in milliseconds between keypress & hint request. This is used to help + ensure that the character from the keypress is added to the CodeMirror editor + *before* the hint request checks the character preceding the cursor against + the regexes below. + +* `hinterland.enable_at_start`: + Whether to enable hinterland's continuous hinting when notebook is first + opened, or if false, only when selected from the help-menu item. + +* `hinterland.hint_inside_comments`: + Whether to request hints while typing code comments. Defaults to false. + +* `hinterland.exclude_regexp`: + A regular expression tested against the character before the cursor, which, + if a match occurs, prevents autocompletion from being triggered. This is + useful, for example, to prevent triggering autocomplete on a colon, which is + included by the default Completer.reinvoke pattern. If blank, no test is + performed. Note that the regex will be created without any flags, making it + case sensitive. + +* `hinterland.include_regexp`: + A regular expression tested against the character before the cursor, which + must match in order for autocompletion to be triggered. If left blank, the + value of the notebook's `Completer.reinvoke_re` parameter is used, which can + be modified by kernels, but defaults to `/[%0-9a-z._/\\:~-]/i`. Note that + although the `Completer.reinvoke_re` default is case insensitive by virtue of + its `/i` flag, any regex specified by the user will be created without any + flags, making it case sensitive. + +* `hinterland.tooltip_regexp`: + A regular expression tested against the character before the cursor, which if + it matches, causes a tooltip to be triggered, instead of regular + autocompletion. For python, this is useful for example for function calls, so + the default regex matches opening parentheses. Note that the regex will be + created without any flags, making it case sensitive. diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hinterland/hinterland.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hinterland/hinterland.js new file mode 100644 index 00000000..7fde2564 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hinterland/hinterland.js @@ -0,0 +1,194 @@ +define([ + 'module', + 'jquery', + 'base/js/namespace', + 'base/js/keyboard', + 'notebook/js/cell', + 'notebook/js/codecell', + 'notebook/js/completer', +], function ( + module, + $, + Jupyter, + keyboard, + cell, + codecell, + completer +) { + 'use strict'; + + var Cell = cell.Cell; + var CodeCell = codecell.CodeCell; + var Completer = completer.Completer; + + var log_prefix = '[' + module.id + ']'; + + // default config (updated on nbextension load) + var config = { + enable_at_start: true, + exclude_regexp: ':', + include_regexp: '', + tooltip_regexp: '\\(', + hint_delay: 20, + hint_inside_comments: false, + }; + // flag denoting whether hinting is enabled + var do_hinting; + + // ignore most specially-named keys + var specials = [ + keyboard.keycodes.enter, + keyboard.keycodes.esc, + keyboard.keycodes.backspace, + keyboard.keycodes.tab, + keyboard.keycodes.up, + keyboard.keycodes.down, + keyboard.keycodes.left, + keyboard.keycodes.right, + keyboard.keycodes.shift, + keyboard.keycodes.ctrl, + keyboard.keycodes.alt, + keyboard.keycodes.meta, + keyboard.keycodes.capslock, + keyboard.keycodes.space, + keyboard.keycodes.pageup, + keyboard.keycodes.pagedown, + keyboard.keycodes.end, + keyboard.keycodes.home, + keyboard.keycodes.insert, + keyboard.keycodes.delete, + keyboard.keycodes.numlock, + keyboard.keycodes.f1, + keyboard.keycodes.f2, + keyboard.keycodes.f3, + keyboard.keycodes.f4, + keyboard.keycodes.f5, + keyboard.keycodes.f6, + keyboard.keycodes.f7, + keyboard.keycodes.f8, + keyboard.keycodes.f9, + keyboard.keycodes.f10, + keyboard.keycodes.f11, + keyboard.keycodes.f12, + keyboard.keycodes.f13, + keyboard.keycodes.f14, + keyboard.keycodes.f15 + ]; + + /** + * copied from base/js/keyboard, since it isn't exported + * Return `true` if the event only contains modifiers keys. + * false otherwise + **/ + function only_modifier_event (event) { + var key = keyboard.inv_keycodes[event.which]; + return ( + (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) && + (key === 'alt'|| key === 'ctrl'|| key === 'meta'|| key === 'shift') + ); + } + + function patch_cell_keyevent () { + console.log(log_prefix, 'patching Cell.prototype.handle_codemirror_keyevent'); + var orig_handle_codemirror_keyevent = Cell.prototype.handle_codemirror_keyevent; + Cell.prototype.handle_codemirror_keyevent = function (editor, event) { + if (do_hinting && (this instanceof CodeCell) && !only_modifier_event(event)) { + // Tab completion. + this.tooltip.remove_and_cancel_tooltip(); + // don't attempt completion when selecting, or when using multicursor + if ( !editor.somethingSelected() && + editor.getSelections().length <= 1 && + !this.completer.visible && + specials.indexOf(event.keyCode) == -1) { + var cell = this; + // set a timeout to try to ensure that CodeMirror inserts + // the new key *before* the completion request happens + setTimeout(function () { + var cur = editor.getCursor(); + var pre_cursor = editor.getRange({ + line: cur.line, + ch: cur.ch - 1 + }, cur); + if ( pre_cursor !== '' && + (config.hint_inside_comments || editor.getTokenAt(cur).type !== "comment") && + (config.include_regexp.test(pre_cursor) || config.tooltip_regexp.test(pre_cursor)) && + !config.exclude_regexp.test(pre_cursor) ) { + if (config.tooltip_regexp.test(pre_cursor)) { + cell.tooltip.request(cell); + } + else { + cell.completer.startCompletion(); + cell.completer.autopick = false; + } + } + }, config.hint_delay); + } + } + return orig_handle_codemirror_keyevent.apply(this, arguments); + }; + } + + function set_hinterland_state (new_state) { + do_hinting = new_state; + $('.hinterland-toggle > .fa') + .toggleClass('fa-check', do_hinting); + console.log(log_prefix, 'continuous hinting', do_hinting ? 'on' : 'off'); + } + + function toggle_hinterland () { + set_hinterland_state(!do_hinting); + } + + function add_menu_item () { + if ($('#help_menu').find('.hinterland_toggle').length > 0) { + return; + } + var menu_item = $('
  • ') + .insertAfter('#keyboard_shortcuts'); + var menu_link = $('') + .text('Continuous hints') + .addClass('hinterland-toggle') + .attr('title', 'Provide continuous code hints') + .on('click', toggle_hinterland) + .appendTo(menu_item); + $('') + .addClass('fa menu-icon pull-right') + .prependTo(menu_link); + } + + function load_notebook_extension () { + + Jupyter.notebook.config.loaded.then(function on_success () { + $.extend(true, config, Jupyter.notebook.config.data.hinterland); + // special defaults: + // default include is taken from Completer, rather than the blank + if (config.include_regexp === '') { + config.include_regexp = Completer.reinvoke_re; + } + // now turn regexps loaded from config (which will be strings) into + // actual RegExp objects. + var regexp_names = ['exclude_regexp', 'include_regexp', 'tooltip_regexp']; + for (var ii=0; ii < regexp_names.length; ii++) { + if (config[regexp_names[ii]] === '') { + continue; + } + try { + config[regexp_names[ii]] = new RegExp(config[regexp_names[ii]]); + } + catch (err) { + console.warn(log_prefix, 'error parsing', regexp_names[ii] + ':', err); + } + } + }, function on_error (err) { + console.warn(log_prefix, 'error loading config:', err); + }).then(function on_success () { + patch_cell_keyevent(); + add_menu_item(); + set_hinterland_state(config.enable_at_start); + }); + } + + return { + load_ipython_extension : load_notebook_extension + }; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hinterland/hinterland.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hinterland/hinterland.yaml new file mode 100644 index 00000000..5e60c900 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/hinterland/hinterland.yaml @@ -0,0 +1,73 @@ +Type: Jupyter Notebook Extension +Main: hinterland.js +Name: Hinterland +Link: README.md +Description: | + Enable code autocompletion menu for every keypress in a code cell, instead of + only enabling it with tab +Compatibility: 4.x, 5.x +Parameters: +- name: hinterland.hint_delay + description: | + delay in milliseconds between keypress & hint request. This is used to help + ensure that the character from the keypress is added to the CodeMirror + editor *before* the hint request checks the character preceding the cursor + against the regexes below. + input_type: number + min: 1 + step: 1 + default: 20 +- name: hinterland.enable_at_start + description: | + Enable hinterland's continuous hinting when notebook is first opened, or + if false, only when selected from the help-menu item. + input_type: checkbox + default: true +- name: hinterland.hint_inside_comments + description: | + Whether to request hints while typing code comments. + input_type: checkbox + default: false +- name: hinterland.exclude_regexp + description: | + exclude_regexp: + A regular expression tested against the character before the cursor, which, + if a match occurs, prevents autocompletion from being triggered. + This is useful, for example, to prevent triggering autocomplete on a colon, + which is included by the default Completer.reinvoke pattern. + If blank, no test is performed. + Note that the regex will be created without any flags, making it case + sensitive. + input_type: text + # note that the YAML single-quoted string allows us to use the \ character + # without escaping it, similar to python's raw string syntax + default: ':' +- name: hinterland.include_regexp + description: | + include_regexp: + A regular expression tested against the character before the cursor, which + must match in order for autocompletion to be triggered. + If left blank, the value of the notebook's Completer.reinvoke_re parameter + is used, which can be modified by kernels, but defaults to + /[%0-9a-z._/\\:~-]/i. + Note that although the Completer.reinvoke_re default is case insensitive by + virtue of its /i flag, any regex specified by the user will be created + without any flags, making it case sensitive. + input_type: text + # note that the YAML single-quoted string allows us to use the \ character + # without escaping it, similar to python's raw string syntax + default: '' +- name: hinterland.tooltip_regexp + description: | + tooltip_regexp: + A regular expression tested against the character before the cursor, which + if it matches, causes a tooltip to be triggered, instead of regular + autocompletion. + For python, this is useful for example for function calls, so the default + regex matches opening parentheses. + Note that the regex will be created without any flags, making it case + sensitive. + input_type: text + # note that the YAML single-quoted string allows us to use the \ character + # without escaping it, similar to python's raw string syntax + default: '\(' diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/README.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/README.md new file mode 100644 index 00000000..d5b184f2 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/README.md @@ -0,0 +1,44 @@ +init_cell +========= + +Add a cell toolbar selector to mark cells as 'initialization' cells . +Such initialization cells are run: + + * on clicking the provided button in the main toolbar + ![main toolabr button](icon.png) + * by default, on kernel ready notification for trusted notebooks. + This is configurable (see options section). + In untrusted notebooks, a warning is displayed if the cells would otherwise + have been run. + + +Options +------- + +This nbextension provides option configurable using the +[jupyter_nbextensions_configurator](https://github.com/Jupyter-contrib/jupyter_nbextensions_configurator). + +Once the extension is enabled, turn on the cell toolbar within your Notebook using +the "View > Cell Toolbar > Initialization Cell" menu +![Cell Toobar Menu](cell_toolbar_menu.png) + + +The running of initialization cells on kernel ready notification can be +frustrating if your kernel is attached to multiple frontends, or is persistent +between frontend reloads (e.g. reloading the notebook browser page without +killing the kernel). +As such, the option `init_cell.run_on_kernel_ready` in the notebook config +section controls whether this behaviour occurs. +The server's config value can also be overridden on a per-notebook basis by +setting `notebook.metadata.init_cell.run_on_kernel_ready`. + + +Internals +--------- + +Cells are marked as initialization cells in their metadata, as + + cell.metadata.init_cell = true + +The running of initialization cells on kernel ready is bound to the Jupyter +event `kernel_ready.Kernel`. diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/cell_toolbar_menu.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/cell_toolbar_menu.png new file mode 100644 index 00000000..0a2d2ad1 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/cell_toolbar_menu.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/icon.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/icon.png new file mode 100644 index 00000000..8e3ffdbb Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/icon.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/init_cell.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/init_cell.yaml new file mode 100644 index 00000000..9409a0d4 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/init_cell.yaml @@ -0,0 +1,17 @@ +Type: Jupyter Notebook Extension +Compatibility: 3.x, 4.x, 5.x +Name: Initialization cells +Main: main.js +Icon: icon.png +Link: README.md +Description: | + Add a cell toolbar selector to mark cells as 'initialization' cells. Such + initialization cells can be run by on clicking the provided button in the + main toolbar, or configurably, run automatically on notebook load. +Parameters: +- name: init_cell.run_on_kernel_ready + description: | + Run input cells whenever a kernel_ready.Kernel event is fired. See readme + for further details. + input_type: checkbox + default: true diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/main.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/main.js new file mode 100644 index 00000000..a971bd8a --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/init_cell/main.js @@ -0,0 +1,157 @@ +define([ + 'jquery', + 'base/js/dialog', + 'base/js/events', + 'base/js/namespace', + 'notebook/js/celltoolbar', + 'notebook/js/codecell', +], function ( + $, + dialog, + events, + Jupyter, + celltoolbar, + codecell +) { + "use strict"; + + var CellToolbar = celltoolbar.CellToolbar; + + var mod_name = 'init_cell'; + var log_prefix = '[' + mod_name + ']'; + var options = { // updated from server's config & nb metadata + run_on_kernel_ready: true, + }; + + var toolbar_preset_name = 'Initialization Cell'; + var init_cell_ui_callback = CellToolbar.utils.checkbox_ui_generator( + toolbar_preset_name, + function setter (cell, value) { + if (value) { + cell.metadata.init_cell = true; + } + else { + delete cell.metadata.init_cell; + } + }, + function getter (cell) { + // if init_cell is undefined, it'll be interpreted as false anyway + return cell.metadata.init_cell; + } + ); + + function count_init_cells () { + console.log(log_prefix, 'counting initialization cells'); + var num = 0; + var cells = Jupyter.notebook.get_cells(); + for (var ii = 0; ii < cells.length; ii++) { + var cell = cells[ii]; + if ((cell instanceof codecell.CodeCell) && cell.metadata.init_cell === true ) { + num++; + } + } + console.log(log_prefix, 'found ' + num + ' initialization cell' + (num !== 1 ? 's' : '')); + return num + } + + function run_init_cells () { + console.log(log_prefix, 'running all initialization cells'); + var num = 0; + var cells = Jupyter.notebook.get_cells(); + for (var ii = 0; ii < cells.length; ii++) { + var cell = cells[ii]; + if ((cell instanceof codecell.CodeCell) && cell.metadata.init_cell === true ) { + cell.execute(); + num++; + } + } + console.log(log_prefix, 'finished running ' + num + ' initialization cell' + (num !== 1 ? 's' : '')); + } + + var load_ipython_extension = function() { + // register action + var prefix = 'auto'; + var action_name = 'run-initialization-cells'; + var action = { + icon: 'fa-calculator', + help: 'Run all initialization cells', + help_index : 'zz', + handler : run_init_cells + }; + var action_full_name = Jupyter.notebook.keyboard_manager.actions.register(action, action_name, prefix); + + // add toolbar button + Jupyter.toolbar.add_buttons_group([action_full_name]); + + // setup things to run on loading config/notebook + Jupyter.notebook.config.loaded + .then(function update_options_from_config () { + $.extend(true, options, Jupyter.notebook.config.data[mod_name]); + }, function (reason) { + console.warn(log_prefix, 'error loading config:', reason); + }) + .then(function () { + if (Jupyter.notebook._fully_loaded) { + callback_notebook_loaded(); + } + events.on('notebook_loaded.Notebook', callback_notebook_loaded); + }).catch(function (reason) { + console.error(log_prefix, 'unhandled error:', reason); + }); + }; + + function callback_notebook_loaded () { + // update from metadata + var md_opts = Jupyter.notebook.metadata[mod_name]; + if (md_opts !== undefined) { + console.log(log_prefix, 'updating options from notebook metadata:', md_opts); + $.extend(true, options, md_opts); + } + + // register celltoolbar presets if they haven't been already + if (CellToolbar.list_presets().indexOf(toolbar_preset_name) < 0) { + // Register a callback to create a UI element for a cell toolbar. + CellToolbar.register_callback('init_cell.is_init_cell', init_cell_ui_callback, 'code'); + // Register a preset of UI elements forming a cell toolbar. + CellToolbar.register_preset(toolbar_preset_name, ['init_cell.is_init_cell'], Jupyter.notebook); + } + + if (options.run_on_kernel_ready) { + var num = count_init_cells(); + + if (num) { + if (Jupyter.notebook.trusted) { + run_init_cells_asap() + } + else { + dialog.modal({ + title : 'Untrusted notebook with initialization code', + body : num + ' initialization code cell' + (num !== 1 ? 's' : '') + ' was found but not run since this notebook is untrusted.', + buttons: { + 'Trust notebook': { + 'class' : 'btn-danger', + 'click' : () => Jupyter.notebook.trust_notebook() + }, + 'Do nothing': {'class' : 'btn-primary'} + }, + notebook: Jupyter.notebook, + keyboard_manager: Jupyter.keyboard_manager, + }); + } + } + } + } + + function run_init_cells_asap () { + if (Jupyter.notebook && Jupyter.notebook.kernel && Jupyter.notebook.kernel.info_reply.status === 'ok') { + // kernel is already ready + run_init_cells(); + } + // whenever a (new) kernel becomes ready, run all initialization cells + events.on('kernel_ready.Kernel', run_init_cells); + } + + return { + load_ipython_extension : load_ipython_extension + }; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/README.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/README.md new file mode 100644 index 00000000..c9716754 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/README.md @@ -0,0 +1,130 @@ +Keyboard shortcut editor +======================== + +This extension allows you to edit or remove the default notebook keyboard +shortcuts, or create your own new ones. + +Currently, this extension supports the editing of any shortcut provided by +Jupyter, with the exception of those provided by the CodeMirror editors, since +they use a different API. + +To edit your keyboard shortcuts, open the keyboard shortcuts help dialog, +either by pressing h in command mode, or by selecting +`help > keyboard shortcuts` from the menu: + +![keyboard shortcuts menu item](readme_menu_item.png) + +When the extension has been loaded, each shortcut in the dialog will show a +small dropdown menu next to it, with items to remove or edit the shortcut: + +![keyboard shortcut edit dropdown](readme_dropdown.png) + +Clicking the edit item opens a second modal dialog, with a text input. While +the input has focus, you can press keys to form your combination. The reset +button (the curly arrow to the left hand side) allows you to clear any keys you +may input accidentally. + +![the shortcut editor dialog](readme_shortcut_editor_blank.png) +![the shortcut editor dialog](readme_shortcut_editor_success.png) + +If you'd like to disable an existing shortcut, you can click the 'Disable' +button on the dropdown. This will move the shortcut into a new section on the +dialog headed 'disabled'. You can click the reset button next to disabled +shortcuts to re-enable them: + +![re-enabling a disabled shortcut](readme_reset_disabled.png) + +You can create new custom keyboard shortcuts using the link at the base of the +shortcut list for each mode: + +![add a new keyboard shortcut](readme_add_new_link.png) + +This opens a dialog similar to the editor, with the addition of a select box +from which you can select the action which will be called: + +![selecting an action for a new keyboard shortcut](readme_add_new_select_action.png) + + +Limitations: problem shortcuts +------------------------------ + +Since this editor uses the same key-identification method as the notebook, +anything you can get it to recognise should (?!) work as a notebook shortcut, +even if it gets represented by the editor differently to the letters on your +actual, physical, keyboard. However, bear in mind that key identification is +not perfect, (this is a problem on the web in general), so it's possible that +some combinations may not be identified by Jupyter at all. In such cases, the +editor should notify you: + +![an unrecognised keypress](readme_undefined_key.png) + +In addition, the handling of shortcuts including commas is currently +compromised to the extent that they don't really work properly, so the editor +also won't accept anything with a comma in it: + +![commas don't work properly!](readme_comma.png) + +The dialog will also not accept a shortcut that would conflict with one which +already exists: + +![conflicting keyboard shortcuts are not accepted](readme_conflict.png) + +If the conflicting shortcut is provided by Jupyter rather than CodeMirror, you +can of course disable it to prevent the conflict occurring. + + +Internals +--------- + +The extension stores a record of the edits in use in the config, as a list +of objects for each mode. Those without a `to` key denote shortcuts to disable, +while those without a `from` key denote new shortcuts. For example: + +```javascript +// the config object with section name 'notebook' at the base URL +{ + "kse_rebinds": { + // command-mode rebindings + 'command': [ + { // disable the default 'space' shortcut, which used to scroll the notebook down + from: "space", + action_name: "jupyter-notebook:scroll-notebook-down" + }, + { // create a new shortcut 't,t' to trust the notebook + action_name: "jupyter-notebook:trust-notebook", + to: "t,t" + }, + { // change the default save-notebook shortcut from 's' to 'shift-s' + action_name: "jupyter-notebook:save-notebook", + to: "shift-s", + from: "s" + } + ], + // edit-mode rebindings: + "edit": [ + { // disable the default edit-mode binding which switches to command mode + action_name: "jupyter-notebook:enter-command-mode", + from: "ctrl-m" + } + ] + }, + // other config keys may be present in this file! +} +``` + +The extension applies the shortcut edits when it is loaded, and in addition to +any shortcut registered subsequently, as detailed below. + + +Patches +------- + +The extension applies patches to two Jupyter class prototypes. +The method `ShortcutManager.prototype.add_shortcut` from `base/js/keyboard`, +is patched to ensure any appropriate edits are applied to any shortcuts which +get registered after the extension is loaded, for example by other notebook +extensions. + +The `QuickHelp.prototype.build_command_help` and +`QuickHelp.prototype.build_edit_help` methods from `notebook/js/quickhelp`, are +patched to insert the dropdown menus, disabled shortcuts and other links. diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/icon.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/icon.png new file mode 100644 index 00000000..71bc1d36 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/icon.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/keyboard_shortcut_editor.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/keyboard_shortcut_editor.yaml new file mode 100644 index 00000000..587b5894 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/keyboard_shortcut_editor.yaml @@ -0,0 +1,12 @@ +Type: IPython Notebook Extension +Compatibility: 4.x, 5.x +Name: Keyboard shortcut editor +Main: main.js +Icon: icon.png +Link: README.md +Description: Edit or remove Jupyter keyboard shortcuts, or add you own new ones +Parameters: +- name: kse_show_rebinds + description: "Show shortcut editing controls in the shortcuts dialog. If this is false, shortcuts can't be edited directly from the notebook, but any existing edits are still applied. Useful essentially just to make the shortcuts dialog a bit cleaner" + input_type: checkbox + default: true diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/kse_components.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/kse_components.js new file mode 100644 index 00000000..30bb116e --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/kse_components.js @@ -0,0 +1,364 @@ +define([ + 'bootstrap', // for modals + 'jquery', + 'base/js/dialog', + 'base/js/utils', + 'base/js/keyboard', + 'notebook/js/quickhelp', + './quickhelp_shim' +], function( + bs, + $, + dialog, + utils, + keyboard, + quickhelp, + quickhelp_shim +){ + "use strict"; + + function only_modifier_event (event) { + // adapted from base/js/keyboard + /** + * Return `true` if the event only contains modifiers keys, false + * otherwise + */ + var key = keyboard.inv_keycodes[event.which]; + return ((event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) && + (key === 'alt'|| key === 'ctrl'|| key === 'meta'|| key === 'shift')); + } + + function editor_build () { + var editor = $('#kse-editor'); + if (editor.length > 0) { + return editor; + } + + editor = $('
    ') + .addClass('kse-editor') + .attr('id', 'kse-editor') + .data({ + 'kse_sequence': [], + 'kse_info': {}, + 'kse_mode': 'command', + 'kse_undefined_key': false + }); + + var form = $('
    ') + .addClass('form') + .appendTo(editor); + + $('
    ') + .addClass('form-group') + .appendTo(form); + + var form_group = $('
    ') + .addClass('form-group has-feedback') + .appendTo(form); + + var input_group = $('
    ') + .addClass('input-group') + .addClass('kse-input-group') + .appendTo(form_group); + + // reset button + var btn = $('') + .addClass('btn btn-default') + .addClass('kse-input-group-reset') + .attr({ + 'title': 'Restart', + 'type': 'button' + }) + .append( + $('') + .addClass('fa fa-repeat') + ) + .on('click', function () { + editor.data({ + 'kse_sequence': [], + 'kse_undefined_key': false + }); + editor_update_input_group(editor); + $(this).blur(); + textcontrol.focus(); + }); + $('
    ') + .addClass('input-group-btn') + .append(btn) + .appendTo(input_group); + + // pretty-displayed shortcut + $('
    ') + .addClass('input-group-addon') + .addClass('kse-input-group-pretty') + .addClass('kse-editor-to') + .appendTo(input_group); + + var textcontrol = $('') + .addClass('form-control') + .addClass('kse-input-group-input') + .attr({ + 'type': 'text', + 'placeholder': 'click here to edit the shortcut' + }) + .on('keydown', editor_handle_shortcut_keydown) + .on('focus', function (evt) { + $(this).attr('placeholder', 'press keys to add to the shortcut'); + }) + .on('blur', function (evt) { + $(this).attr('placeholder', 'click here to edit the shortcut'); + }) + .appendTo(input_group); + + // feedback icon + var form_fdbck = $('') + .addClass('fa fa-lg'); + $('') + .addClass('form-control-feedback') + .append(form_fdbck) + .appendTo(form_group); + + // help for input group + $('') + .addClass('help-block') + .appendTo(form_group); + + return editor; + } + + function editor_update_input_group (editor, seq) { + seq = seq || editor.data('kse_sequence'); + var shortcut = seq.join(','); + var mode = editor.data('kse_mode'); + var have_seq = seq.length > 0; + var valid = have_seq; + + // empty help block + var feedback = editor.find('.form-group.has-feedback:first'); + var help_block = feedback.find('.help-block'); + help_block.empty(); + + var ii; + var has_comma = false; + for (ii = 0; !has_comma && (ii < seq.length); ii++) { + has_comma = seq[ii].indexOf(',') >= 0; + } + + if (has_comma) { + valid = false; + // use HTML Unicode escape for a comma, to get it to look right in the pretty version + shortcut = $.map(seq, function (elem, idx) { + return elem.replace(',', ','); + }).join(','); + + $('

    ') + .html( + 'Unfortunately, Jupyter\'s handling of shortcuts containing ' + + 'commas (,) is fundamentally flawed, ' + + 'as the comma is used as the key-separator character ☹. ' + + 'Please try something else for your rebind!' + ) + .appendTo(help_block); + } + else if (have_seq) { + var conflicts = {}; + var tree; + + // get existing shortcuts + if (Jupyter.keyboard_manager !== undefined) { + var startkey = seq.slice(0, 1)[0]; + if (mode === 'command') { + tree = Jupyter.keyboard_manager.command_shortcuts.get_shortcut(startkey); + } + else { + tree = Jupyter.keyboard_manager.edit_shortcuts.get_shortcut(startkey); + // deal with codemirror shortcuts specially, since they're not included in kbm + for (var jj = 0; jj < quickhelp.cm_shortcuts.length; jj++) { + var cm_shrt = quickhelp.cm_shortcuts[jj]; + if (keyboard.normalize_shortcut(cm_shrt.shortcut) === startkey) { + tree = cm_shrt.help; + break; + } + } + } + } + + // check for conflicting shortcuts. + // Start at 1 because we got tree from startkey + for (ii = 1; (ii < seq.length) && (tree !== undefined); ii++) { + // check for exsiting definitions at current specificity + if (typeof(tree) === 'string') { + valid = false; + conflicts[seq.slice(0, ii).join(',')] = tree; + break; + } + tree = tree[seq[ii]]; + } + + // check whether any more-specific shortcuts were defined + if ((ii === seq.length) && (tree !== undefined)) { + valid = false; + var flatten_conflict_tree = function flatten_conflict_tree (obj, key) { + if (typeof(obj) === 'string') { + conflicts[key] = obj; + } + else for (var subkey in obj) { + if (obj.hasOwnProperty(subkey)) { + flatten_conflict_tree(obj[key], [key, subkey].join(',')); + } + } + }; + flatten_conflict_tree(tree, seq.join(',')); + } + + if (!valid) { + var plural = Object.keys(conflicts).length != 1; + $('

    ') + .append(quickhelp.humanize_sequence(seq.join(','))) + .append( + ' conflicts with the' + (plural ? ' following' : '') + + ' existing shortcut' + (plural ? 's' : '') + ':' + ) + .appendTo(help_block); + + for (var conflicting_shortcut in conflicts) { + if (conflicts.hasOwnProperty(conflicting_shortcut)) { + $('

    ') + .append(quickhelp.humanize_sequence(conflicting_shortcut)) + .append($('').text(conflicts[conflicting_shortcut])) + .appendTo(help_block); + } + } + } + } + + if (editor.data('kse_undefined_key')) { + var warning = $('') + .addClass('form-group has-feedback has-warning kse-undefined') + .append( + $('') + .addClass('help-block') + .append( + $('

    ').text('Unrecognised key! (code ' + editor.data('kse_undefined_key' ) + ')') + ) + ); + + var existing = editor.find('.kse-undefined'); + if (existing.length > 0) { + existing.replaceWith(warning); + } + else { + warning.insertAfter(feedback); + } + setTimeout(function () { + warning.remove(); + }, 2000); + } + + // disable reset button if no sequence + editor.find('.kse-input-group-reset') + .toggleClass('disabled', !have_seq); + + editor.find('.kse-input-group-pretty') + .html(shortcut ? quickhelp.humanize_sequence(shortcut) : '<new shortcut>'); + + feedback + .toggleClass('has-error', !valid && have_seq) + .toggleClass('has-success', valid && have_seq) + .find('.form-control-feedback .fa') + .toggleClass('fa-remove', !valid && have_seq) + .toggleClass('fa-check', valid && have_seq); + } + + function editor_handle_shortcut_keydown (evt) { + var elem = $(evt.delegateTarget); + if (!only_modifier_event(evt)) { + var shortcut = keyboard.normalize_shortcut(keyboard.event_to_shortcut(evt)); + var editor = elem.closest('#kse-editor'); + var seq = editor.data('kse_sequence'); + var has_undefined_key = (shortcut.toLowerCase().indexOf('undefined') !== -1); + editor.data('kse_undefined_key', has_undefined_key); + if (has_undefined_key) { + // deal with things like ~ appearing on apple alt-n, or ¨ on alt-u + editor.find('.kse-input-group-input').val(''); + editor.data('kse_undefined_key', evt.which || true); + } + else { + seq.push(shortcut); + } + editor_update_input_group(editor, seq); + } + } + + function modal_build (editor, modal_options) { + var modal = $('#kse-editor-modal'); + if (modal.length > 0) { + return modal; + } + + var default_modal_options = { + 'destroy': false, + 'show': false, + 'title': 'Edit keyboard shortcut', + 'body': editor, + 'buttons': { + 'OK': {'class': 'btn-primary'}, + 'Cancel': {} + }, + 'open': function (evt) { + $(this).find('.kse-input-group-input').focus(); + } + }; + if (Jupyter.notebook !== undefined) { + default_modal_options.notebook = Jupyter.notebook; + } + if (Jupyter.keyboard_manager !== undefined) { + default_modal_options.keyboard_manager= Jupyter.keyboard_manager; + } + modal_options = $.extend({}, default_modal_options, modal_options); + + modal = dialog.modal(modal_options); + + modal + .addClass('modal_stretch') + .attr('id', 'kse-editor-modal'); + + // Add a data-target attribute to ensure buttons only target the editor modal + modal.find('.close,.modal-footer button') + .attr('data-target', '#kse-editor-modal'); + + return modal; + } + + /** + * Pass it an option dictionary with any of the bootstrap or base/js/dialog + * modal options, plus the following optional properties: + * - description: html for the form group preceding the editor group, + * useful as a description + */ + function KSE_modal (modal_options) { + var editor = editor_build(); + editor.data({'kse_sequence': [], 'kse_undefined_key': false}); + editor_update_input_group(editor); + var modal = modal_build(editor, modal_options); + + editor.on('keydown', '.kse-input-group-input', function (evt) { + event.preventDefault(); + event.stopPropagation(); + return false; + }); + + if (modal_options.description) { + modal.find('.modal-body .form-group:first').html(modal_options.description); + } + + return modal; + } + + return { + editor_build : editor_build, + editor_update_input_group: editor_update_input_group, + modal_build : modal_build, + KSE_modal : KSE_modal + }; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/main.css b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/main.css new file mode 100644 index 00000000..22e7b9cc --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/main.css @@ -0,0 +1,40 @@ +.kse-dropdown { + margin-left: 0.5em; +} + +.kse-dropdown > .dropdown-menu { + min-width: 0; + top: 20px; +} + +.kse-input-group-pretty { + min-width: 20ex; +} + +.kse-modal-backdrop { + background-color: #fff; +} + +.kse-input-group-reset, +.kse-input-group-pretty { + border-right: none; +} + +.kse-input-group-pretty > kbd { + color: black; + font-weight: bold; +} + +.kse-editor .help-block > p { + margin-bottom: 10px; +} + +.kse-editor select { + display: inline-block; + width: auto; + margin: 0; +} + +.kse-links .fa { + margin-right: 2px; +} \ No newline at end of file diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/main.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/main.js new file mode 100644 index 00000000..736aa920 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/keyboard_shortcut_editor/main.js @@ -0,0 +1,778 @@ +define([ + 'jquery', + 'require', + 'base/js/namespace', + 'base/js/dialog', + 'base/js/events', + 'base/js/keyboard', + 'notebook/js/quickhelp', + './quickhelp_shim', + './kse_components', +], function ( + $, + requirejs, + Jupyter, + dialog, + events, + keyboard, + quickhelp, + qh_shim, + kse_comp +) { + "use strict"; + + var mod_name = 'keyboard_shortcut_editor'; + + // define default values for config parameters + var params = { + 'kse_show_rebinds': true, + // mode, action name, new combo + 'kse_rebinds': { + // command-mode rebindings + 'command': [ + // { // disable the default 'space' shortcut, which used to scroll the notebook down + // from: "space", + // action_name: "jupyter-notebook:scroll-notebook-down" + // }, + // { // create a new shortcut 't,t' to trust the notebook + // action_name: "jupyter-notebook:trust-notebook", + // to: "t,t" + // }, + // { // change the default save-notebook shortcut from 's' to 'shift-s' + // action_name: "jupyter-notebook:save-notebook", + // to: "shift-s", + // from: "s" + // } + ], + // edit-mode rebindings: + "edit": [ + // { // disable the default edit-mode binding which switches to command mode + // action_name: "jupyter-notebook:enter-command-mode", + // from: "ctrl-m" + // } + ] + } + }; + // function to update params with any specified in the server's config file + function update_params () { + var config = Jupyter.notebook.config; + for (var key in params) { + if (config.data.hasOwnProperty(key)) { + params[key] = config.data[key]; + } + } + } + + function add_css (url) { + $('') + .attr({ + 'rel': 'stylesheet', + 'type': 'text/css', + 'href': requirejs.toUrl(url) + }) + .appendTo($('head')); + } + + var kbm = Jupyter.keyboard_manager; + var deleted_shortcuts = { + 'command': new keyboard.ShortcutManager(undefined, kbm.command_shortcuts.events, kbm.actions, kbm.env), + 'edit': new keyboard.ShortcutManager(undefined, kbm.edit_shortcuts.events, kbm.actions, kbm.env) + }; + + var patched_quickhelp_prototype = false; + var patched_shortcut_manager_prototype = false; + + function patch_shortcut_manager_prototype () { + if (!patched_shortcut_manager_prototype) { + var orig_add_shortcut = keyboard.ShortcutManager.prototype.add_shortcut; + keyboard.ShortcutManager.prototype.add_shortcut = function add_shortcut (shortcut, data, suppress_help_update, called_by_rebinder) { + if (!called_by_rebinder) { + var this_mode; + if (this === kbm.edit_shortcuts) { + this_mode = 'edit'; + } + else if (this === kbm.command_shortcuts) { + this_mode = 'command'; + } + if (this_mode) { + var rebind_specs = params.kse_rebinds[this_mode]; + for (var ii = 0; ii < rebind_specs.length; ii++) { + var spec = rebind_specs[ii]; + if (spec.from === shortcut) { + if (!spec.to) { + return; + } + shortcut = spec.to; + } + } + } + } + return orig_add_shortcut.call(this, shortcut, data, suppress_help_update); + }; + console.log('[' + mod_name + '] patched ShortcutManager.prototype.add_shortcut'); + patched_shortcut_manager_prototype = true; + } + } + + function patch_quickhelp_prototype () { + if (!patched_quickhelp_prototype) { + var orig_build_command_help = quickhelp.QuickHelp.prototype.build_command_help; + quickhelp.QuickHelp.prototype.build_command_help = function () { + var div = orig_build_command_help.call(this); + return quickhelp_div_add_rebind_controls(div, 'command'); + }; + console.log('[' + mod_name + '] patched QuickHelp.prototype.build_command_help'); + + var orig_build_edit_help = quickhelp.QuickHelp.prototype.build_edit_help; + quickhelp.QuickHelp.prototype.build_edit_help = function (cm_shortcuts) { + var div = orig_build_edit_help.call(this, cm_shortcuts); + return quickhelp_div_add_rebind_controls(div, 'edit'); + }; + console.log('[' + mod_name + '] patched QuickHelp.prototype.build_edit_help'); + + patched_quickhelp_prototype = true; + } + } + + function load_jupyter_extension () { + add_css('./main.css'); + patch_shortcut_manager_prototype(); + patch_quickhelp_prototype(); + Jupyter.notebook.config.loaded.then(initialize); + } + + function get_mode_shortcuts (mode, deleted) { + if (deleted) { + return deleted_shortcuts[mode]; + } + else if (mode === 'command') { + return kbm.command_shortcuts; + } + else if (mode === 'edit') { + return kbm.edit_shortcuts; + } + return undefined; + } + + function rebind (mode, spec, suppress_help_update) { + var shortcuts = get_mode_shortcuts(mode); + if (spec.action_name === undefined) { + spec.action_name = shortcuts.get_shortcut(spec.from); + } + if (!shortcuts.actions.exists(spec.action_name)) { + console.warn( + '[' + mod_name + '] ' + + 'rebind specified for unrecognised action "' + + spec.action_name + '"' + + (spec.from ? ' from ' + spec.from : '') + + (spec.to ? ' to ' + spec.to : '') + ); + } + else { + console.log( + '[' + mod_name + '] ' + + (spec.from ? (spec.to ? 're' : 'un') : '') + 'bound ' + + spec.action_name + + (spec.from ? ' from ' + spec.from : '') + + (spec.to ? ' to ' + spec.to : '') + ); + + if (spec.from) { + if (!spec.to) { + deleted_shortcuts[mode].add_shortcut(spec.from, spec.action_name, true, true); + } + shortcuts.remove_shortcut(spec.from); + } + if (spec.to) { + return shortcuts.add_shortcut(spec.to, spec.action_name, suppress_help_update, true); + } + } + } + + function apply_config_rebinds () { + var modes = ['command', 'edit']; + for (var mm = 0; mm < modes.length; mm++) { + var mode = modes[mm]; + if (params.kse_rebinds.hasOwnProperty(mode)) { + var rebind_specs = params.kse_rebinds[mode]; + for (var ii = 0; ii < rebind_specs.length; ii++) { + rebind(mode, rebind_specs[ii], true); + } + } + } + events.trigger('rebuild.QuickHelp'); + } + + var initialize = function () { + update_params(); + apply_config_rebinds(); + var title = $('#keyboard_shortcuts').attr('title'); + $('#keyboard_shortcuts').attr('title', title + ' & controls to edit them'); + }; + + function reverse_spec (spec) { + var new_spec = {action_name: spec.action_name}; + if (spec.from) { + new_spec.to = spec.from; + } + if (spec.to) { + new_spec.from = spec.to; + } + return new_spec; + } + + function find_rebinding (rebinds, partial_spec, index_only) { + for (var ii = 0; ii < rebinds.length; ii++) { + if (((partial_spec.to === undefined) || + (partial_spec.to === rebinds[ii].to)) && + ((partial_spec.from === undefined) || + (partial_spec.from === rebinds[ii].from)) && + ((partial_spec.action_name === undefined) || + (partial_spec.action_name === rebinds[ii].action_name))) { + return index_only ? ii : rebinds[ii]; + } + } + return undefined; + } + + function register_rebinding (mode, spec) { + var rebinds = params.kse_rebinds[mode]; + rebinds.push($.extend({}, spec)); + // write our private copy to the config: + Jupyter.notebook.config.update(params); + console.log('[' + mod_name + '] rebinding added:', spec); + } + + function deregister_rebinding (mode, partial_spec) { + var rebinds = params.kse_rebinds[mode]; + var idx = find_rebinding(rebinds, partial_spec, true); + if (idx === undefined) { + console.warn('[' + mod_name + '] attempted to delete non-exsitent shortcut:', partial_spec); + return undefined; + } + var deleted = rebinds.splice(idx, 1)[0]; + // write our private copy to the config: + Jupyter.notebook.config.update(params); + console.log('[' + mod_name + '] rebinding removed:', deleted); + return deleted; + } + + function action_selector (default_pair) { + var select = $('') + .attr('id', 'permissions-select') + .attr('class', 'permissions-list form-control select-xs') + .append($('

    ([\s\S]*?)<\/p>\s*$/); //strip

    and

    that marked (maybe) adds and we don't want + html = t !== null ? t[1] : html; + var q = html.match(/^'([\s\S]*?)'$/); // strip quotes from strings + if (q !== null) html = q[1] + } else if (out_data.msg_type === "execute_result" | out_data.msg_type === "display_data" ) { + var ul = out_data.content.data; + if (ul != undefined) { + if (ul['text/latex'] != undefined) { + html = ul['text/latex']; + } else if (ul['image/svg+xml'] != undefined) { + var svg = ul['image/svg+xml']; + /* embed SVG in an tag, still get eaten by sanitizer... */ + svg = btoa(svg); + html = ''; + } else if (ul['image/jpeg'] != undefined) { + var jpeg = ul['image/jpeg']; + html = ''; + } else if (ul['image/png'] != undefined) { + var png = ul['image/png']; + html = ''; + } else if (ul['text/markdown'] != undefined) { + html = marked(ul['text/markdown']); + } else if (ul['text/html'] != undefined) { + html = ul['text/html']; + } else { + html = marked(ul['text/plain']); + // [\s\S] is used to also catch newlines + var t = html.match(/^\s*

    ([\s\S]*?)<\/p>\s*$/); //strip

    and

    that marked adds and we don't want + html = t !== null ? t[1] : html; + var q = html.match(/^'([\s\S]*?)'$/); // strip quotes from strings + if (q !== null) html = q[1] + } + } + } else { + return; + } + thiscell.metadata.variables[thismatch] = html; + var el = document.getElementById(id); + el.innerHTML = el.innerHTML + html; // output result + }; + var callbacks = { iopub : { output: execute_callback } }; + if (cell.notebook.kernel != null) { + cell.notebook.kernel.execute(code, callbacks, {silent: false, store_history : false, stop_on_error: false }); + return ""; // add HTML tag with ID where output will be placed + } + return undefined; + } else { + /* Notebook not dirty: replace tags with metadata */ + val = cell.metadata.variables[tag]; + return ""+val+"" + } + }); + if (found == true) return newtext; + return undefined + }; + + /* + * Render markdown cell and replace {{...}} with python code + * + */ + var render_cell = function(cell) { + var element = cell.element.find('div.text_cell_render'); + var text = execute_python(cell, element[0].innerHTML); + if (text !== undefined) { + element[0].innerHTML = text; + MathJax.Hub.Queue(["Typeset",MathJax.Hub,element[0]]); + } + }; + + /* force rendering of markdown cell if notebook is dirty */ + var original_render = textcell.MarkdownCell.prototype.render; + textcell.MarkdownCell.prototype.render = function() { + if (IPython.notebook.dirty === true) { + this.rendered = false + } + return original_render.apply(this) + }; + + var set_trusted_indicator = function() { + var ind = $('.notebook-trusted'); + if (IPython.notebook.trusted === true) { + ind.attr('title','Notebook is trusted'); + ind.removeClass('fa-question'); + ind.addClass('fa-check'); + } else { + ind.attr('title','Notebook is not trusted'); + ind.removeClass('fa-check'); + ind.addClass('fa-question'); + } + }; + + + /** + * Add CSS file + * + * @param name filename + */ + var load_css = function (name) { + var link = document.createElement("link"); + link.type = "text/css"; + link.rel = "stylesheet"; + link.href = requirejs.toUrl(name); + document.getElementsByTagName("head")[0].appendChild(link); + }; + + + /** + * Update all references variables in markdown cells + * + */ + var update_md_cells = function () { + var ncells = IPython.notebook.ncells(); + var cells = IPython.notebook.get_cells(); + for (var i = 0; i < ncells; i++) { + var cell = cells[i]; + if (cell.metadata.hasOwnProperty('variables')) { + render_cell(cell) + } + } + }; + + var load_ipython_extension = function() { + load_css('./main.css'); + events.on("rendered.MarkdownCell", function (event, data) { + render_cell(data.cell); + }); + events.on("trust_changed.Notebook", set_trusted_indicator); + + $('#save_widget').append(''); + set_trusted_indicator(); + + /* Show values stored in metadata on reload */ + events.on("kernel_ready.Kernel", function () { + if (Jupyter.notebook !== undefined && Jupyter.notebook._fully_loaded) { + update_md_cells() + } else { + events.on("notebook_loaded.Notebook", function () { + update_md_cells() + }) + } + }); + }; + + return { + load_ipython_extension : load_ipython_extension + }; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown-post.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown-post.png new file mode 100644 index 00000000..3c951985 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown-post.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown-pre.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown-pre.png new file mode 100644 index 00000000..5226d959 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown-pre.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown.png new file mode 100644 index 00000000..585a0038 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown.yaml new file mode 100644 index 00000000..3e6663b9 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/python-markdown.yaml @@ -0,0 +1,8 @@ +Type: IPython Notebook Extension +Name: Python Markdown +Description: Allows embedding Python-code in markdown cells +Link: readme.md +Icon: python-markdown.png +Main: main.js +Preprocessor: pymdpreprocessor.py +Compatibility: 4.x, 5.x diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/readme.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/readme.md new file mode 100644 index 00000000..ebf671fa --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/readme.md @@ -0,0 +1,86 @@ +Python Markdown +=============== + +The **Python Markdown** extension allows displaying output produced by the current kernel +in markdown cells. The extensions is basically agnostic to the kernel language, however most +testing has been done using Python. + +For example: +If you set variable `a` in Python + +```python +a = 1.23 +``` + +and write the following line in a markdown cell: + + a is {{a}} + +It will be displayed as: + + a is 1.23 + +[![Demo Video](https://img.youtube.com/vi/_wLwLsgkExc/0.jpg)](https://youtu.be/_wLwLsgkExc) + +The notebook needs to be trusted in order to execute Python commands in markdown. +This is indicated by the "trusted" check mark: + +![trusted](trusted.png) + +If you see the "unstrusted" question mark, use File->Trust Notebook in the menu. + +**Caution: If you trust a notebook, you allow it to execute any code that is contained between the `{{...}}` +curly braces on your notebook server.** + + +Further examples +---------------- + +Before rendering the markdown cell: + +![before](python-markdown-pre.png) + +After rendering the markdown cell: + +![after](python-markdown-post.png) + +Code is only executed when the notebook is trusted. So if your original code is shown as +rendered markdown output, please make sure your notebook is trusted. You can check if the notebook +is trusted by looking at the check mark at the top of the window. + +**Caution:** There is no restriction in the expression you can embedd between the curly braces `{{ }}`. +Be careful as you might crash your browser if you return too large datasets, or worse. + + +Exporting +--------- + +In order to have `nbconvert` show the computed output when exporting to another format, +use the `pre_pymarkdown.py` preprocessor. If you used the `python setup.py install` command to install the +IPython-contrib extension package, this will already be installed. + +For manual setup, you need to copy this file to a location within the Python path (or extend `PYTHONPATH`). +Additionally, you need to add these two lines to your `jupyter_nbconvert_config.py` configuration file: + +```python +c = get_config() +c.Exporter.preprocessors = ['pre_pymarkdown.PyMarkdownPreprocessor'] +``` + + +Internals +--------- + +The extension overrides the `textcell.MarkdownCell.prototype.render` function and searches for the expression enclosed +in double curly braced `{{ }}`. It then executes the expression and replaces it with the result returned from +the running kernel, embedded in a `` tag. +Additionally, the result is saved in the metadata of the markdown cell, i.e. `cell.metadata.variables[varname]`. +This stored value is displayed when reloading the notebook and used for the nbconvert preprocesser. + +The preprocessor `pre_pymarkdown.PyMarkdownPreprocessor` allows `nbconvert` to display the computed variables +when converting the notebook to an output file format. + +Unfortunately, embedding in LaTeX is not supported currently, as computing expressions between the curly braces +and rendering LaTeX equations is happening asynchronously, and it is difficult to handle this in a consistent way. +Ideas or pull request to implement this functionality are welcome. + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/trusted.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/trusted.png new file mode 100644 index 00000000..6f4082d3 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/trusted.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/untrusted.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/untrusted.png new file mode 100644 index 00000000..36c2b1ff Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/python-markdown/untrusted.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/qtconsole/README.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/qtconsole/README.md new file mode 100644 index 00000000..d3f403a6 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/qtconsole/README.md @@ -0,0 +1,4 @@ +QT Console +========== + +Launch a QTConsole attached to the running kernel diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/qtconsole/qtconsole.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/qtconsole/qtconsole.js new file mode 100644 index 00000000..0a8738d9 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/qtconsole/qtconsole.js @@ -0,0 +1,24 @@ +// Launch QT Console attached to the current kernel + +define([ + 'base/js/namespace', + 'base/js/events' + ], function(Jupyter, events) { + var load_ipython_extension = function () { + Jupyter.toolbar.add_buttons_group([ + /** + * Button to launch QTConsole + */ + Jupyter.keyboard_manager.actions.register ({ + 'help' : 'Run QTConsole', + 'icon' : 'fa-terminal', + 'handler': function () { + Jupyter.notebook.kernel.execute('%qtconsole') + } + }, 'run-qtconsole', 'qtconsole') + ]); + }; + return { + load_ipython_extension : load_ipython_extension + }; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/qtconsole/qtconsole.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/qtconsole/qtconsole.yaml new file mode 100644 index 00000000..102310d8 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/qtconsole/qtconsole.yaml @@ -0,0 +1,6 @@ +Type: IPython Notebook Extension +Name: Launch QTConsole +Link: README.md +Description: Launch a QTConsole attached to the running kernel +Main: qtconsole.js +Compatibility: 4.x diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/icon.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/icon.png new file mode 100644 index 00000000..eeac6b28 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/icon.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/main.css b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/main.css new file mode 100644 index 00000000..39ad1dfd --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/main.css @@ -0,0 +1,12 @@ +.highlight-drag +{ + background-color: transparent; + border: dashed #ff3333 3px; + position: absolute; + display: none; +} + +.cell.selected +{ + background-color: #fcfcfc; +} diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/main.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/main.js new file mode 100644 index 00000000..750bc9a6 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/main.js @@ -0,0 +1,237 @@ +// Select cells with a rubberband-selection using the mouse +// shift + mouse drag -> select only cells currently touched by rubberband +// alt+shift + mouse drag -> select all cells that were touched by rubberband + +define([ + 'base/js/namespace', + 'jquery', + 'base/js/events', + 'base/js/keyboard', + 'require' +], function(IPython, $, events, keyboard, requirejs) { + "use strict"; + + var scrollRange = 50; /* range on top and bottom where autoscroll starts */ + + var keycodes = keyboard.keycodes; + + var startX, startY; + var offsetY; + var isDragging = false; + var isRubberBandEnabled = false; + var isAddSelection = false; + var isScrolling = false; + var headerHeight; + + /* + * Test if a cell touched by a certain area + * + * @method isCellWithin + * @param cell + * @param left + * @param top + * @param width + * @param height + * + */ + var isCellWithin = function(cell,left,top,width,height){ + var cellpos = cell.element.position(); + var cellh = cell.element.height(); + var cellw = cell.element.width(); + if (cellpos.top === 0) + return false; // not visible + return ((cellpos.top+cellh) > top-offsetY && cellpos.top < top-offsetY+height + && cellpos.left+cellw > left && cellpos.left < left+width); + }; + + /** + * load css file and append to document + * + * @method load_css + * @param name {String} filenaame of CSS file + * + */ + var load_css = function (name) { + var link = document.createElement("link"); + link.type = "text/css"; + link.rel = "stylesheet"; + link.href = requirejs.toUrl(name); + document.getElementsByTagName("head")[0].appendChild(link); + }; + + + /** + * Clear existing selection + * + * @method clearSelection + * + */ + var clearSelection = function() { + var ncells = IPython.notebook.ncells(); + var cells = IPython.notebook.get_cells(); + + for(var i=0; i < ncells; i++){ + cells[i].unselect(); + } + }; + + + + function load_ipython_extension() { + /* + * Capture shift key - shift+mouse button will start rubberband selection + * + */ + $(document).keydown(function(event){ + if(event.keyCode === keycodes.shift && IPython.notebook.mode === "command"){ + isRubberBandEnabled = true + } + if(event.keyCode === keycodes.alt){ + isAddSelection = true + } + }); + + $(document).keyup(function(event){ + if(event.keyCode === keycodes.shift){ + isRubberBandEnabled = false + } + if(event.keyCode === keycodes.alt){ + isAddSelection = false + } + }); + + /* + * Start rubberband selection action + * + */ + $(document).mousedown(function(event){ + offsetY = $('#notebook').offset().top; + headerHeight = $('#header').height(); + if(isRubberBandEnabled) { + startX = event.pageX; + startY = event.pageY; + isDragging = true; + $("#dragmask").css( + { + 'left' : startX, + 'top' : startY, + 'width' : 0, + 'height' : 0 + } + + ).show(); + // prevent default behaviour of text selection + return false; + } else { + if (event.pageY-offsetY > 0) { + /* clear selection */ + var ncells = IPython.notebook.ncells(); + var cells = IPython.notebook.get_cells(); + var selected_idx = IPython.notebook.get_selected_index(); + for(var i=0; i < ncells; i++){ + if (i != selected_idx) cells[i].unselect(); + } + } + } + + }); + /* + * Rubberband dragging operation - select cells touched by rubberband + * + */ + $(document).mousemove(function(event){ + offsetY = $('#notebook').offset().top; + + if(isDragging === true){ + var left, top, width, height; + if(event.pageX>startX){ + left = startX; + width = event.pageX - startX; + } + else { + left = event.pageX; + width = startX - event.pageX; + } + if(event.pageY>startY){ + top = startY; + height = event.pageY - startY; + } + else { + top = event.pageY; + height = startY - event.pageY; + } + + var ncells = IPython.notebook.ncells(); + var cells = IPython.notebook.get_cells(); + var elheight = IPython.notebook.scroll_manager.element.height(); + var Yfromtop = event.clientY - headerHeight; + var scrollpos = IPython.notebook.scroll_manager.element.scrollTop(); + var scrolltime = 200; + if (Yfromtop < scrollRange && isScrolling === false) { + isScrolling = true; + IPython.notebook.scroll_manager.element.animate({scrollTop:scrollpos - 0.3*elheight}, scrolltime,"linear", function() { isScrolling = false }) + } + + if ( Yfromtop > elheight-scrollRange && isScrolling === false) { + isScrolling = true; + IPython.notebook.scroll_manager.element.animate({scrollTop: scrollpos + 0.3*elheight}, scrolltime,"linear", function() { isScrolling = false }) + } + + var selected_cells = IPython.notebook.get_selected_cells_indices() + var first = true; + for (var i=0; i i) delta = 1; + if (index < i) delta = -1; + IPython.notebook.select(i+delta, false); + }; + } + } + } + $("#dragmask").css( + { + 'left' : left, + 'top' : top, + 'width' : width, + 'height' : height + } + ) + } + }); + + /* + * End rubberband dragging operation + * + */ + $(document).mouseup(function(event){ + if(isDragging){ + isDragging = false; + $("#dragmask").hide(); + } + }); + load_css('./main.css'); + var rubberband_div = $('
    '); + $("#header").append(rubberband_div); + } + + /* expose functions to other extensions */ + var rubberband = { + load_ipython_extension : load_ipython_extension, + }; + return rubberband; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/readme.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/readme.md new file mode 100644 index 00000000..f17a953f --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/readme.md @@ -0,0 +1,26 @@ +Rubberband +========== +Multi-Cell selection using a rubberband. This extension is only available for IPython version 3.x. + +Description +----------- + +The *rubberband* extension allows selecting multiple cells. Cells are selected by pressing `shift` or `ctrl`+`shift` + left mouse button click and dragging the rubber band over the cells. + +* `shift` + left mouse button : select cells that are currently touched by the rubberband +* `ctrl` + `shift` + left mouse button : select cells that were touched by the rubberband + +The `ctrl`+`shift` action is useful when scrolling inside the notebook. Scrolling is activated when the mouse reaches the upper or lower boundary of the notebook area. For now, the mouse has to be moved to achieve continuous scrolling. + +A short video demonstrating the rubberband extension can be found here: +[![screenshot](https://cloud.githubusercontent.com/assets/2445216/4668769/b6dd5b72-5567-11e4-9b55-558da6da027c.jpg)](https://youtu.be/TOPfWhqa3oI) + + +Two other extensions make use of this feature: exercise and chrome_clipboard. + +Internals +--------- + +New metadata element added to each cell: +* `cell.metadata.selected` - means this cell is selected + diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/rubberband.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/rubberband.yaml new file mode 100644 index 00000000..fa643c51 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/rubberband/rubberband.yaml @@ -0,0 +1,7 @@ +Type: IPython Notebook Extension +Name: Rubberband +Description: The rubberband extension allows selecting multiple cells +Link: readme.md +Icon: icon.png +Main: main.js +Compatibility: 4.x, 5.x diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/edit.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/edit.js new file mode 100644 index 00000000..5e4283e2 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/edit.js @@ -0,0 +1,4 @@ +define(['./main'], function (ruler) { + "use strict"; + return ruler; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/icon.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/icon.png new file mode 100644 index 00000000..c6a8c584 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/icon.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/main.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/main.js new file mode 100644 index 00000000..c2d6e686 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/main.js @@ -0,0 +1,124 @@ +// Add rulers to codecells +define([ + 'base/js/namespace', + 'base/js/events', + 'services/config', + 'notebook/js/codecell', + 'codemirror/lib/codemirror', + 'codemirror/addon/display/rulers' +], function (Jupyter, events, configmod, codecell, codemirror) { + "use strict"; + + var log_prefix = '[ruler]'; + + // define default config parameter values + var params = { + ruler_column: [78], + ruler_color: ["#ff0000"], + ruler_linestyle: ["dashed"], + ruler_do_css_patch: false + }; + + + var rulers = []; + + var isNumber = function (n) { + return !isNaN(parseFloat(n)) && isFinite(n); + }; + + // updates default params with any specified in the provided config data + var update_params = function (config_data) { + for (var key in params) { + if (config_data.hasOwnProperty(key)) { + params[key] = config_data[key]; + } + } + }; + + var on_config_loaded = function () { + + if (Jupyter.notebook !== undefined) { + var i, config = Jupyter.notebook.config; + } else { + var i, config = Jupyter.editor.config; + } + + if (config.data.hasOwnProperty('ruler_color') && config.data.ruler_color.length > 0) { + params.ruler_color = config.data.ruler_color; + } + + if (config.data.hasOwnProperty('ruler_column')) { + var new_columns = []; + for (i in config.data.ruler_column) { + if (isNumber(config.data.ruler_column[i])) { + new_columns.push(config.data.ruler_column[i]); + } + } + if (new_columns.length > 0) { + params.ruler_column = new_columns; + } + } + + if (config.data.hasOwnProperty('ruler_linestyle') && config.data.ruler_linestyle.length > 0) { + params.ruler_linestyle = config.data.ruler_linestyle; + } + + for (i in params.ruler_column) { + rulers.push({ + color: params.ruler_color[i % params.ruler_color.length], + column: params.ruler_column[i], + lineStyle: params.ruler_linestyle[i % params.ruler_linestyle.length] + }); + } + console.debug(log_prefix, 'ruler specs:', rulers); + + if (Jupyter.notebook !== undefined) { + var i, config = Jupyter.notebook.config; + + // Change default for new cells + codecell.CodeCell.options_default.cm_config.rulers = rulers; + // Apply to any already-existing cells + var cells = Jupyter.notebook.get_cells().forEach(function (cell) { + if (cell instanceof codecell.CodeCell) { + cell.code_mirror.setOption('rulers', rulers); + } + }); + + } + else { + Jupyter.editor.codemirror.setOption('rulers', rulers); + } + }; + + var load_extension = function () { + + // first, check which view we're in, in order to decide whether to load + var conf_sect; + if (Jupyter.notebook) { + // we're in notebook view + conf_sect = Jupyter.notebook.config; + } + else if (Jupyter.editor) { + // we're in file-editor view + conf_sect = Jupyter.editor.config; + } + else { + // we're some other view like dashboard, terminal, etc, so bail now + return; + } + + conf_sect.loaded + .then(function () { + update_params(conf_sect.data); + }) + .then(on_config_loaded) + .catch(function on_error(reason) { + console.warn(log_prefix, 'error:', reason); + }); + }; + + var extension = { + load_ipython_extension: load_extension + }; + return extension; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/readme.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/readme.md new file mode 100644 index 00000000..d815e185 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/readme.md @@ -0,0 +1,56 @@ +Ruler +===== + +This extension enables the Ruler CodeMirror feature + + +Configuration +------------- + +You can set the number of characters in the notebook extensions configration page or use the ConfigManager: + +```Python +from IPython.html.services.config import ConfigManager +ip = get_ipython() +cm = ConfigManager(parent=ip) +cm.update('notebook', {"ruler_column": [80]}) +``` + + +#### CSS patch #### + +Notebook versions from 4.3.0 through 5.1.0dev show up a bug in their CodeMirror +CSS padding which causes the ruler to be misplaced (see +[jupyter/notebook#2869](https://github.com/jupyter/notebook/issues/2869) +for details). +This nbextension introduces a css patch to attempt to correct this, but if it +causes problems for you, you can disable it by setting the `ruler_do_css_patch` +config key to `false`. + + +#### Multiple Rulers #### + +To specify multiple rulers, set the `ruler_column` to a list of values, for example + +```Python +cm.update('notebook', {"ruler_column": [10, 20, 30, 40, 50, 60, 70, 80]}) +``` + +A separate color and style can be specified for each ruler. + +```Python +cm.update('notebook', {"color": ["#000000", "#111111", "#222222", "#333333", "#444444", + "#555555", "#666666", "#777777", "#888888", "#999999"]}) +``` + +Creating a repeating pattern for either color or style is as simple as giving a list shorter than the total number of rulers + +```Python +cm.update('notebook', {"ruler_column": [10, 20, 30, 40, 50, 60, 70, 80]}) +cm.update('notebook', {"color": ["#FF0000", "#00FF00", "#0000FF"]}) +cm.update('notebook', {"style": ["dashed", "dotted"]}) +``` + +will result in `red, green, blue, red, green, blue, red, green, blue, red` and alternating `dashed, dotted` + +See [here](https://www.w3schools.com/cssref/pr_border-left_style.asp) for other line styles. diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/ruler.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/ruler.yaml new file mode 100644 index 00000000..dee55c83 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/ruler.yaml @@ -0,0 +1,32 @@ +Type: IPython Notebook Extension +Name: Ruler +Description: This extension enables the Ruler CodeMirror feature +Link: readme.md +Icon: icon.png +Main: main.js +Compatibility: 4.x, 5.x +Parameters: + +- name: ruler_column + input_type: list + list_element: + input_type: number + description: Column where ruler is displayed + default: [78] + +- name: ruler_color + input_type: list + list_element: + input_type: color + description: Ruler color + default: ["#ff0000"] + +- name: ruler_linestyle + description: 'Ruler style, e.g. solid, dashed' + input_type: list + default: ['dashed'] + +- name: ruler_do_css_patch + description: apply css patch for ruler padding bug in notebook >= 4.3 + input_type: checkbox + default: true diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/ruler_editor.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/ruler_editor.yaml new file mode 100644 index 00000000..2440493a --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/ruler/ruler_editor.yaml @@ -0,0 +1,29 @@ +Type: IPython Notebook Extension +Name: Ruler in Editor +Description: This extension enables the Ruler feature in the editor +Link: readme.md +Icon: icon.png +Main: edit.js +Compatibility: 4.x, 5.x +Parameters: + +- name: ruler_column + input_type: list + list_element: + input_type: number + description: Column where ruler is displayed + default: [78] + +- name: ruler_color + input_type: list + list_element: + input_type: color + description: Ruler color + default: ["#ff0000"] + +- name: ruler_linestyle + description: 'Ruler style, e.g. solid, dashed' + input_type: list + default: ['dashed'] + +Section: edit diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/annotations.odg b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/annotations.odg new file mode 100644 index 00000000..ffa9b9b5 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/annotations.odg differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/cellstate.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/cellstate.js new file mode 100644 index 00000000..71a17c37 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/cellstate.js @@ -0,0 +1,20 @@ + + + CodeMirror.defineOption("cellstate", false, function(cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.clearGutter(cm.state.cellState.options.gutter); + cm.state.cellState = null; + cm.off("gutterClick", onGutterClick); + cm.off("change", onChange); + cm.off("viewportChange", onViewportChange); + cm.off("swapDoc", onChange); + } + if (val) { + cm.state.cellState = new State(parseOptions(val)); + updateInViewport(cm); + cm.on("gutterClick", onGutterClick); + cm.on("change", onChange); + cm.on("viewportChange", onViewportChange); + cm.on("swapDoc", onChange); + } + }); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/demo.gif b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/demo.gif new file mode 100644 index 00000000..d906670d Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/demo.gif differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/gutter.css b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/gutter.css new file mode 100644 index 00000000..cebc4a99 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/gutter.css @@ -0,0 +1,3 @@ +.CodeMirror-cellstate { + width: 0.5em; +} diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/icon.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/icon.png new file mode 100644 index 00000000..1c443405 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/icon.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/main.css b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/main.css new file mode 100644 index 00000000..2b3d9877 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/main.css @@ -0,0 +1,27 @@ +.icon-run-from:before{content:"\f10c\f04b"} +.icon-run-to:before{content:"\f04b\f10c"} +.icon-run-all:before{content:"\f04b\f01e"} +.icon-run-all-forced:before{content:"\f04b\f12a"} +.icon-run-marked:before{content:"\f04b\f08d"} + +.icon-mark-all:before{content:"\f111"} +.icon-mark-none:before{content:"\f10c"} +.icon-mark-toggle:before{content:"\f08d"} + +.icon-hide-input:before{content:"\f039\f068"} +.icon-hide-output:before{content:"\f02f\f068"} +.icon-show-input:before{content:"\f039\f067"} +.icon-show-output:before{content:"\f02f\f067"} + +#runtools-wrapper { + position: absolute; + width:340px; + top: 100px; + right: 0px; + float: right; + opacity: 1; + z-index: 100; + font-size: 12px; + font-weight: bold; + background-color: lightgrey; +} diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/main.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/main.js new file mode 100644 index 00000000..c07de86a --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/main.js @@ -0,0 +1,745 @@ +// Extended code execution commands and more + +define([ + 'base/js/namespace', + 'jquery', + 'require', + 'base/js/events', + 'services/config', + 'base/js/utils', + 'notebook/js/codecell' +], function(Jupyter, $, requirejs, events, configmod, utils, codecell) { + "use strict"; + + var run_list = []; /* list of cells to be run */ + + // define default config parameter values + var params = { + run_cells_above: 'Alt-a', + run_cells_below: 'Alt-b', + toggle_marker: 'Alt-t', + mark_all_codecells: 'Alt-m', + unmark_all_codecells: 'Alt-u', + run_marked_cells: 'Alt-r', + run_all_cells: 'Alt-x', + run_all_cells_ignore_errors: 'Alt-f', + stop_execution: 'Ctrl-c', + marked_color: '#20f224', + scheduled_color: '#00def0', + run_color: '#f30a2d' + }; + + /** + * Add event if user clicks on codemirror gutter + * + */ + function add_gutter_events() { + var ncells = Jupyter.notebook.ncells(); + var cells = Jupyter.notebook.get_cells(); + for (var i = 0; i < ncells; i++) { + var cell = cells[i]; + if ((cell.cell_type === "code")) { + cell.code_mirror.on("gutterClick", changeEvent); + if (is_marked(cell)) { + var g = cell.code_mirror.getGutterElement(); + $(g).css({ + "background-color": params.marked_color + }); + } + } + } + } + + /* + * Initialize toolbar and gutter after config was loaded + */ + function initialize() { + $.extend(true, params, Jupyter.notebook.config.data.runtools); + + add_gutter_events(); + + /* Add run control buttons to toolbar */ + $(Jupyter.toolbar.add_buttons_group([ + Jupyter.keyboard_manager.actions.register ({ + help: 'Toggle Runtools Toolbar', + icon: 'fa-cogs', + handler: toggle_toolbar + }, 'toggle-runtools-toolbar', 'runtools') + ])).find('.btn').attr('id', 'toggle_runtools').css({ + 'outline': 'none' + }); + + /* Add keyboard shortcuts */ + var add_command_shortcuts = {}; + add_command_shortcuts[params["run_cells_above"]] = { + help: 'Run cells above', + help_index: 'xa', + handler: function() { + execute_cells_above(); + return false; + } + }; + add_command_shortcuts[params["run_cells_below"]] = { + help: 'Run cells below', + help_index: 'aa', + handler: function() { + execute_cells_below(); + return false; + } + }; + add_command_shortcuts[params["toggle_marker"]] = { + help: 'Toggle marker', + help_index: 'mt', + handler: function() { + toggle_marker(); + return false; + } + }; + add_command_shortcuts[params["mark_all_codecells"]] = { + help: 'Mark all codecells', + help_index: 'ma', + handler: function() { + mark_all(); + return false; + } + }; + add_command_shortcuts[params["unmark_all_codecells"]] = { + help: 'Unmark all codecells', + help_index: 'mu', + handler: function() { + mark_none(); + return false; + } + }; + add_command_shortcuts[params["run_marked_cells"]] = { + help: 'Run marked cells', + help_index: 'rm', + handler: function() { + run_marked_cells(); + return false; + } + }; + add_command_shortcuts[params["run_all_cells"]] = { + help: 'Run all cells', + help_index: 'ra', + handler: function() { + var pos = Jupyter.notebook.element.scrollTop(); + execute_all_cells(); + Jupyter.notebook.element.animate({ + scrollTop: pos + }, 100); + return false; + } + }; + add_command_shortcuts[params["run_all_cells_ignore_errors"]] = { + help: 'Run all cells - ignore errors', + help_index: 'rf', + handler: function() { + run_all_cells_ignore_errors(); + return false; + } + }; + Jupyter.keyboard_manager.command_shortcuts.add_shortcuts(add_command_shortcuts); + Jupyter.keyboard_manager.edit_shortcuts.add_shortcuts(add_command_shortcuts); + + events.on('finished_execute.CodeCell', finished_execute_event); + } + + /** + * Hide or show a cell + * + * @param cell + * @param io 'i' for cell input, 'o' for cell output + * @param showme {Boolean} show (true) or hide (false) cell + */ + function showCell(cell, io, showme) { + if (io === 'i') { + if (showme === true) { + cell.element.find("div.input").show(); + cell.metadata.hide_input = false; + } else { + cell.element.find("div.input").hide(); + cell.metadata.hide_input = true; + } + } else { + if (showme === true) { + cell.element.find('div.output').show(); + cell.metadata.hide_output = false; + } else { + cell.element.find('div.output').hide(); + cell.metadata.hide_output = true; + } + } + } + + function _show_input_output_of_marked(show, char) { + var cells = Jupyter.notebook.get_cells(); + var ncells = cells.length; + for (var i = 0; i < ncells; i++) { + var _cell = cells[i]; + if (is_marked(_cell)) + showCell(_cell, char, show); + } + } + + /** + * Hide or show input of all marked code cells + * + * @param show {Boolean} show (true) or hide (false) code cells + */ + function show_input(show) { + _show_input_output_of_marked(show, 'i'); + } + + /** + * Hide or show output area of all marked code cells + * + * @param {Boolean} show show (true) or hide (false) + */ + function show_output(show) { + _show_input_output_of_marked(show, 'o'); + } + + + /** + * Execute next cell in run list, if it is still marked + * + */ + function execute_next_marked_cell() { + var cells = Jupyter.notebook.get_cells(); + var end = cells.length; + while (run_list.length > 0) { + var runcell = run_list.shift(); + for (var i = 0; i < end; i++) { + if (runcell === cells[i]) { + if (runcell.metadata.run_control !== undefined && runcell.metadata.run_control.marked === true) { + var g = runcell.code_mirror.getGutterElement(); + $(g).css({ + "background-color": params.run_color + }); + runcell.execute(); + return; + } + } + } + } + } + + function _execute_without_selecting(idx_start, idx_end, stop_on_error) { + // notebook.execute_cells alters selection, this doesn't + var cells = Jupyter.notebook.get_cells(); + idx_start = idx_start !== undefined ? idx_start : 0; + idx_end = idx_end !== undefined ? idx_end : cells.length; + for (var ii = idx_start; ii < idx_end; ii++) { + cells[ii].execute(stop_on_error); + } + } + + function execute_cells_above() { + _execute_without_selecting(0, Jupyter.notebook.get_selected_index()); + } + + function execute_cells_below() { + _execute_without_selecting(Jupyter.notebook.get_selected_index(), undefined); + } + + function execute_all_cells(stop_on_error) { + _execute_without_selecting(0, undefined, stop_on_error); + } + + /** + * Run code cells marked in metadata + * + */ + function run_marked_cells() { + var cells = Jupyter.notebook.get_cells(); + var end = cells.length; + run_list = []; + /* Show all marked cells as scheduled to be run with new gutter background color */ + for (var i = 0; i < end; i++) { + var cell = cells[i]; + if (cell instanceof codecell.CodeCell) { + var last_line = cell.code_mirror.lastLine(); + var cell_empty = ( last_line === 0 && cell.code_mirror.getLine(last_line) === ""); + if (cell.metadata.run_control !== undefined && cell_empty === false) { + if (cell.metadata.run_control.marked === true) { + var g = cell.code_mirror.getGutterElement(); + $(g).css({ + "background-color": params.scheduled_color + }); + run_list.push(cell); + } + } + } + } + execute_next_marked_cell(); + } + + /* + * Execute next cell in run_list when notified execution of last cell has been finished + * @param evt Event + * @param data Cell that has finished executing + */ + var finished_execute_event = function(evt, data) { + var cell = data.cell; + /* Reset gutter color no non-queued state */ + if (is_marked(cell)) { + var g = cell.code_mirror.getGutterElement(); + $(g).css({ + "background-color": params.marked_color + }); + } + execute_next_marked_cell(); + }; + + /** + * + * @param cell + * @param value + */ + function setCell(cell, value) { + if (!(cell instanceof codecell.CodeCell)) return; + if (cell.metadata.run_control === undefined) cell.metadata.run_control = {}; + if (cell.metadata.run_control.marked === undefined) cell.metadata.run_control.marked = false; + if (value === undefined) value = !cell.metadata.run_control.marked; + var g = cell.code_mirror.getGutterElement(); + if (value === false) { + cell.metadata.run_control.marked = false; + $(g).css({ + "background-color": "" + }); + } else { + cell.metadata.run_control.marked = true; + $(g).css({ + "background-color": params.marked_color + }); + } + } + + function setCellsMarked(cells, value) { + var ncells = cells.length; + for (var i = 0; i < ncells; i++) { + setCell(cells[i], value); + } + } + + /** + * Toggle code cell marker + */ + function toggle_marker() { + setCellsMarked(Jupyter.notebook.get_selected_cells(), undefined); + } + + /** + * + */ + function mark_all() { + setCellsMarked(Jupyter.notebook.get_cells(), true); + } + + /** + * + */ + function mark_none() { + setCellsMarked(Jupyter.notebook.get_cells(), false); + } + + /** + * + * @param cell notebook cell instance + * @param state {string} state to be display [ '', 'locked', 'executed', 'modified' ] + */ + function set_cell_state(cell, state) { + var icon = ""; + if (state === 'locked') { + icon = '
    ' + } + cell.code_mirror.setGutterMarker(0, "CodeMirror-cellstate", celltypeMarker(icon)) + } + + /** + * Change event to mark/unmark cell + * + * @param cm codemirror instance + * @param line current line + * @param gutter not used + */ + function changeEvent(cm, line, gutter) { + if (gutter === "CodeMirror-foldgutter") return; /* Don't collide with codefolding extension */ + + var cmline = cm.doc.children[0].lines[line]; + if (cmline === undefined) { + return; + } + var cell = $(cm.display.gutters).closest('.cell').data('cell'); + if (cell.metadata.run_control === undefined) + cell.metadata.run_control = {}; + setCell(cell, !cell.metadata.run_control.marked); + } + + /** + * + * @param cell cell to be tested + * @returns {boolean} true if marked + */ + var is_marked = function(cell) { + return (cell instanceof codecell.CodeCell) && + cell.metadata.run_control !== undefined && + cell.metadata.run_control.marked; + }; + + /** + * Return div element to set in cellstate gutter + * + * @param val HTML string + * @returns {Element} div Element + */ + function celltypeMarker(val) { + var marker = document.createElement("div"); + marker.style.color = "#822"; + marker.innerHTML = val; + return marker; + } + + /** + * Lock/Unlock current code cell + * if (cell.metadata.run_control != undefined && cell.metadata.run_control.read_only) { + * cell.code_mirror.setOption('readOnly', cell.metadata.run_control.read_only); + */ + var lock_cell = function(locked) { + var ncells = Jupyter.notebook.ncells(); + for (var i = ncells - 2; i >= 0; i--) { + var cells = Jupyter.notebook.get_cells(); + if ((cells[i].cell_type === "code") && is_marked(cells[i])) { + if (locked === true) { + cells[i].metadata.editable = false; + set_cell_state(cells[i], 'locked') + } else { + cells[i].metadata.editable = true; + set_cell_state(cells[i], '') + } + } + } + }; + + /** + * Execute all cells and don't stop on errors + * + */ + var run_all_cells_ignore_errors = function() { + execute_all_cells(false); + }; + + /** + * Create floating toolbar + * + */ + var create_runtools_div = function() { + var btn = '
    \ +
    \ + \ +
    \ +
    \ + \ + \ + \ +
    \ +
    \ + \ + \ + \ + \ + \ + \ +
    \ +
    '; + + var runtools_wrapper = $('
    ') + .text("Runtools") + .append(btn) + .draggable() + .append("
    "); + + $("#header").append(runtools_wrapper); + $("#runtools-wrapper").css({ + 'position': 'absolute' + }); + $('#run_c').on('click', function(e) { + var idx = Jupyter.notebook.get_selected_index(); + _execute_without_selecting(idx, idx + 1); + e.target.blur(); + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#run_ca').on('click', function(e) { + execute_cells_above(); + e.target.blur(); + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#run_cb').on('click', function(e) { + execute_cells_below(); + e.target.blur(); + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#run_a').on('click', function(e) { + execute_all_cells(); + e.target.blur(); + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#run_af').on('click', function(e) { + run_all_cells_ignore_errors(); + e.target.blur() + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#run_m').on('click', function(e) { + run_marked_cells(); + e.target.blur() + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#interrupt_b').on('click', function(e) { + interrupt_execution(); + e.target.blur() + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#mark_toggle').on('click', function() { + toggle_marker() + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#mark_all').on('click', function() { + mark_all() + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#mark_none').on('click', function() { + mark_none() + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#show_input').on('click', function() { + show_input(true); + this.blur() + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#hide_input').on('click', function() { + show_input(false); + this.blur() + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#show_output').on('click', function() { + show_output(true); + this.blur() + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#hide_output').on('click', function() { + show_output(false); + this.blur() + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#lock_marked').on('click', function() { + lock_cell(true); + this.blur() + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + $('#unlock_marked').on('click', function() { + lock_cell(false); + this.blur() + }) + .tooltip({ + delay: { + show: 500, + hide: 100 + } + }); + }; + + /** + * Show/hide toolbar + * + */ + var toggle_toolbar = function() { + var dom = $("#runtools-wrapper"); + + if (dom.is(':visible')) { + $('#toggle_runtools').removeClass('active').blur(); + dom.hide(); + } else { + $('#toggle_runtools').addClass('active'); + dom.show(); + } + + if (dom.length === 0) { + create_runtools_div() + } + }; + + + /** + * Add CSS file + * + * @param name filename + */ + var load_css = function(name) { + var link = document.createElement("link"); + link.type = "text/css"; + link.rel = "stylesheet"; + link.href = requirejs.toUrl(name); + document.getElementsByTagName("head")[0].appendChild(link); + }; + + /** + * Add gutter to a new cell + * + * @param event + * @param nbcell + * + */ + var createCell = function(event, nbcell) { + var cell = nbcell.cell; + if (cell instanceof codecell.CodeCell) { + var gutters = cell.code_mirror.getOption('gutters').slice(); + if ($.inArray("CodeMirror-cellstate", gutters) < 0) { + gutters.push('CodeMirror-cellstate'); + cell.code_mirror.setOption('gutters', gutters); + cell.code_mirror.on("gutterClick", changeEvent); + + } + } + }; + + + /** + * Initialize all cells with new gutter + */ + var initGutter = function() { + var cells = Jupyter.notebook.get_cells(); + var ncells = cells.length; + for (var i = 0; i < ncells; i++) { + var cell = cells[i]; + if (cell instanceof codecell.CodeCell) { + var gutters = cell.code_mirror.getOption('gutters').slice(); + if ($.inArray("CodeMirror-cellstate", gutters) < 0) { + gutters.push('CodeMirror-cellstate'); + cell.code_mirror.setOption('gutters', gutters); + } + } + /** + * Restore hide/show status after reload + */ + if (cell.metadata.hasOwnProperty('hide_input') && cell.metadata.hide_input === true) + showCell(cell, 'i', false); + if (cell.metadata.hasOwnProperty('hide_output') && cell.metadata.hide_output === true) + showCell(cell, 'o', false); + if (cell.is_editable() === false) { + set_cell_state(cell, 'locked'); + } + cell.code_mirror.refresh(); + } + events.on('create.Cell', createCell); + }; + + /** + * Called from notebook after extension was loaded + * + */ + var load_extension = function() { + load_css('./main.css'); + load_css('./gutter.css'); /* set gutter width */ + requirejs(['./cellstate'], function() { + if (Jupyter.notebook._fully_loaded) { + initGutter(); + } else { + events.one('notebook_loaded.Notebook', initGutter); + } + }); + Jupyter.notebook.config.loaded.then(initialize); + }; + + return { + load_jupyter_extension: load_extension, + load_ipython_extension: load_extension + }; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/readme.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/readme.md new file mode 100644 index 00000000..7e1ba79f --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/readme.md @@ -0,0 +1,119 @@ +Runtools +======== +Runtools provide a number of additional functions for working with code cells in the IPython notebook: + +Code Cell Execution +------------------- + +* Execute a single cell +* Execute from top cell to currently selected cell +* Execute from currently selected cell to bottom cell +* Execute all cells +* Execute all cells, ignore exceptions (requires [ipython/pull/6521](https://github.com/ipython/ipython/pull/6521)) +* Execute marked code cells (cells with green gutter area are marked) +* Stop execution (duplicate to standard toolbar button) + +When executing marked cells, they are put in a execution list, and +executed in order. The execution list can be modified by unmarking +a cell not yet run. The execution list can be stopped by clicking on +`stop execution`. Execution of the currently running cell can be stopped +by pressing `stop execution` twice. + +Code Cell Marking +----------------- + +* Mark one or more code cell + + +Code Cell Display +----------------- + +* Hide or show input (i.e. the source code) of marked code cells +* Hide or show output of marked code cells + + +Description +----------- + +The *runtools* extension adds a button to turn on/off a floating toolbar: +![](icon.png) + +This adds Code execution buttons: +![](runtools_execute.png) + +Codecells can be marked by clicking on the gutter of a codecell or by clicking on the markers toolbar: +![](runtools_marker.png) + +Marked codecells can be locked to read-only mode and moved upd and down: +![](runtools_lock.png) + +The input and output areas of marked codecells can be hidden: +![](runtools_show_hide.png) + +A IPython notebook with marked cells looks like this: +![](runtools_nb.png) + + +Demo +---- + +![](demo.gif) + + +Internals +--------- + +New metadata elements added to each cell: +* `cell.metadata.hide_input` - hide input field of the cell +* `cell.metadata.hide_output` - hide output field of the cell +* `cell.metadata.run_control.marked` - mark a codecell + +To export a notebook with hidden input/output fields, the custom template `hide_input_output.tpl` is required. +It should have been installed in the `templates` folder. +You can find the `templates` folder of `jupyter_contrib_nbextensions` from python using + +```python +from jupyter_contrib_nbextensions.nbconvert_support import templates_directory +print(templates_directory()) +``` + +The template needs to be in a path where nbconvert can find it. This can be your local path or specified in +`jupyter_nbconvert_config` or `jupyter_notebook_config` as `c.Exporter.template_path`, see [Jupyter docs](https://jupyter-notebook.readthedocs.io/en/latest/config.html). + +For HTML export a template is provided as `nbextensions.tpl` in the `jupyter_contrib_nbextensions` templates directory. Alternatively you can create your own template: +``` +{%- extends 'full.tpl' -%} + +{% block input_group -%} +{%- if cell.metadata.hide_input -%} +{%- else -%} +{{ super() }} +{%- endif -%} +{% endblock input_group %} + +{% block output_group -%} +{%- if cell.metadata.hide_output -%} +{%- else -%} +{{ super() }} +{%- endif -%} +{% endblock output_group %} +``` + +For LaTeX export a different template is required, which is included as `nbextensions.tplx` in the `jupyter_contrib_nbextensions` templates directory. Alternatively you can create your own template: +``` +((- extends 'report.tplx' -)) + +((* block input_group -)) +((- if cell.metadata.hide_input -)) +((- else -)) +((( super() ))) +((- endif -)) +(( endblock input_group *)) + +((* block output_group -)) +((- if cell.metadata.hide_output -)) +((- else -)) +((( super() ))) +((- endif -)) +(( endblock output_group *)) +``` \ No newline at end of file diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools.yaml new file mode 100644 index 00000000..995b8033 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools.yaml @@ -0,0 +1,59 @@ +Type: IPython Notebook Extension +Name: Runtools +Description: Runtools provide a number of additional functions for working with code cells in the IPython notebook +Link: readme.md +Icon: icon.png +Main: main.js +Compatibility: 5.x +Parameters: +- name: runtools.run_cells_above + description: run cells above + input_type: hotkey + default: Alt-a +- name: runtools.run_cells_below + description: run cells below + input_type: hotkey + default: Alt-b +- name: runtools.toggle_marker + description: Toggle marker + input_type: hotkey + default: Alt-t +- name: runtools.mark_all_codecells + description: Mark all codecells + input_type: hotkey + default: Alt-m +- name: runtools.unmark_all_codecells + description: Unmark all codecells + input_type: hotkey + default: Alt-u +- name: runtools.run_marked_cells + description: run marked cells + input_type: hotkey + default: Alt-r +- name: runtools.stop_execution + description: stop execution + input_type: hotkey + default: Ctrl-c +- name: runtools.run_all_cells + description: run all cells + input_type: hotkey + default: Alt-x +- name: runtools.run_alls_cells_ignore_errors + description: run all cells - ignore errors + input_type: hotkey + default: Alt-f +- name: runtools.marked_color + description: | + Color for marking a codecell + default: '#20f224' + input_type: color +- name: runtools.scheduled_color + description: | + Color when a codecell is scheduled to be rund + default: '#00def0' + input_type: color +- name: runtools.run_color + description: | + Color while a codecell is being run + default: '#f30a2d' + input_type: color diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_execute.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_execute.png new file mode 100644 index 00000000..ed8e96c1 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_execute.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_lock.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_lock.png new file mode 100644 index 00000000..3b0a5616 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_lock.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_marker.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_marker.png new file mode 100644 index 00000000..ad3914f3 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_marker.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_nb.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_nb.png new file mode 100644 index 00000000..162c3660 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_nb.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_show_hide.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_show_hide.png new file mode 100644 index 00000000..8ff9477a Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/runtools/runtools_show_hide.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/LICENSE b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/LICENSE new file mode 100644 index 00000000..e11323e4 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2016, Min RK +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of nbextension-scratchpad nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/README.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/README.md new file mode 100644 index 00000000..069bd485 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/README.md @@ -0,0 +1,14 @@ +# Scratchpad notebook extension + +Adds a scratchpad cell to Jupyter notebook. +This is a cell in which you can execute code against the current kernel without modifying the notebook document. + +Scratchpad cells can be executed using `Shift-Enter` (other shortcuts are appled to the notebook document). The scratchpad can be toggled by clicking the icon in the bottom-right, or via the keyboard shortcut `Ctrl-B`. + +![demo](demo.gif) + + +## Credits + +This extension is a copy of the extension from MinRK here: +`git clone git://github.com/minrk/nbextension-scratchpad`. diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/demo.gif b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/demo.gif new file mode 100644 index 00000000..eaa3b7bd Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/demo.gif differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/main.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/main.js new file mode 100644 index 00000000..d92b821a --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/main.js @@ -0,0 +1,149 @@ +define([ + 'require', + 'jquery', + 'base/js/namespace', + 'base/js/events', + 'base/js/utils', + 'notebook/js/codecell', +], function ( + requirejs, + $, + Jupyter, + events, + utils, + codecell +) { + "use strict"; + var CodeCell = codecell.CodeCell; + + var Scratchpad = function (nb) { + var scratchpad = this; + this.notebook = nb; + this.kernel = nb.kernel; + this.km = nb.keyboard_manager; + this.collapsed = true; + + // create elements + this.element = $("
    "); + this.close_button = $("").addClass("fa fa-caret-square-o-down scratchpad-btn scratchpad-close"); + this.open_button = $("").addClass("fa fa-caret-square-o-up scratchpad-btn scratchpad-open"); + this.element.append(this.close_button); + this.element.append(this.open_button); + this.open_button.click(function () { + scratchpad.expand(); + }); + this.close_button.click(function () { + scratchpad.collapse(); + }); + + // create my cell + var cell = this.cell = new CodeCell(nb.kernel, { + events: nb.events, + config: nb.config, + keyboard_manager: nb.keyboard_manager, + notebook: nb, + tooltip: nb.tooltip, + }); + cell.set_input_prompt(); + this.element.append($("
    ").addClass('cell-wrapper').append(this.cell.element)); + cell.render(); + cell.refresh(); + this.collapse(); + + // override ctrl/shift-enter to execute me if I'm focused instead of the notebook's cell + var execute_and_select_action = this.km.actions.register({ + handler: $.proxy(this.execute_and_select_event, this), + }, 'scratchpad-execute-and-select'); + var execute_action = this.km.actions.register({ + handler: $.proxy(this.execute_event, this), + }, 'scratchpad-execute'); + var toggle_action = this.km.actions.register({ + handler: $.proxy(this.toggle, this), + }, 'scratchpad-toggle'); + + var shortcuts = { + 'shift-enter': execute_and_select_action, + 'ctrl-enter': execute_action, + 'ctrl-b': toggle_action, + } + this.km.edit_shortcuts.add_shortcuts(shortcuts); + this.km.command_shortcuts.add_shortcuts(shortcuts); + + // finally, add me to the page + $("body").append(this.element); + }; + + Scratchpad.prototype.toggle = function () { + if (this.collapsed) { + this.expand(); + } else { + this.collapse(); + } + return false; + }; + + Scratchpad.prototype.expand = function () { + this.collapsed = false; + var site_height = $("#site").height(); + this.element.animate({ + height: site_height, + }, 200); + this.open_button.hide(); + this.close_button.show(); + this.cell.element.show(); + this.cell.focus_editor(); + //$("#notebook-container").css('margin-left', 0); + }; + + Scratchpad.prototype.collapse = function () { + this.collapsed = true; + //$("#notebook-container").css('margin-left', 'auto'); + this.element.animate({ + height: 0, + }, 100); + this.close_button.hide(); + this.open_button.show(); + this.cell.element.hide(); + }; + + Scratchpad.prototype.execute_and_select_event = function (evt) { + if (utils.is_focused(this.element)) { + this.cell.execute(); + } else { + this.notebook.execute_cell_and_select_below(); + } + }; + + Scratchpad.prototype.execute_event = function (evt) { + if (utils.is_focused(this.element)) { + this.cell.execute(); + } else { + this.notebook.execute_selected_cells(); + } + }; + + function setup_scratchpad () { + // lazy, hook it up to Jupyter.notebook as the handle on all the singletons + console.log("Setting up scratchpad"); + return new Scratchpad(Jupyter.notebook); + } + + function load_extension () { + // add css + var link = document.createElement("link"); + link.type = "text/css"; + link.rel = "stylesheet"; + link.href = requirejs.toUrl("./scratchpad.css"); + document.getElementsByTagName("head")[0].appendChild(link); + // load when the kernel's ready + if (Jupyter.notebook.kernel) { + setup_scratchpad(); + } else { + events.on('kernel_ready.Kernel', setup_scratchpad); + } + } + + return { + load_ipython_extension: load_extension, + }; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/scratchpad.css b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/scratchpad.css new file mode 100644 index 00000000..be57a94f --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/scratchpad.css @@ -0,0 +1,39 @@ +#nbextension-scratchpad { + position: absolute; + right: 0; + bottom: 0; + width: 50%; + background-color: #F8F5E1; + border-left: 1px solid #aaa; + border-top: 1px solid #aaa; + z-index: 105; +} + +#nbextension-scratchpad .cell-wrapper { + height: 100%; + overflow: auto; +} + +.scratchpad-btn { + float: right; + margin-right: 24px; + opacity: 0.2; + font-size: 24px; + z-index: 106; +} + +.scratchpad-btn:hover { + opacity: 1; +} + +.scratchpad-close { + display: none; + position: absolute; + float: right; + bottom: 8px; + right: 0; +} + +.scratchpad-open { + margin-top: -32px; +} diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/scratchpad.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/scratchpad.yaml new file mode 100644 index 00000000..7ccd35cf --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scratchpad/scratchpad.yaml @@ -0,0 +1,6 @@ +Type: Jupyter Notebook Extension +Name: Scratchpad +Description: Adds a scratchpad cell to Jupyter notebook. +Link: README.md +Main: main.js +Compatibility: 4.x, 5.x diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scroll_down/config.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scroll_down/config.yaml new file mode 100644 index 00000000..96aa07c5 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scroll_down/config.yaml @@ -0,0 +1,12 @@ +Type: IPython Notebook Extension +Name: ScrollDown +Description: Scroll outputs down automatically +Link: readme.md +Icon: icon.png +Main: main.js +Compatibility: 4.x, 5.x +Parameters: +- name: scrollDownIsEnabled + description: enable scroll_down toolbar button + input_type: checkbox + default: false diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scroll_down/icon.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scroll_down/icon.png new file mode 100644 index 00000000..5dd36517 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scroll_down/icon.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scroll_down/main.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scroll_down/main.js new file mode 100644 index 00000000..546b8e34 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scroll_down/main.js @@ -0,0 +1,57 @@ +define([ + 'jquery', + 'base/js/namespace', +], function ( + $, + Jupyter +) { + 'use strict'; + + var params = { + scrollDownIsEnabled: false + }; + + var initialize = function () { + $.extend(true, params, Jupyter.notebook.config.data); + setButtonColor(); + }; + + function toggleScrollDown() { + params.scrollDownIsEnabled = !params.scrollDownIsEnabled; + Jupyter.notebook.config.update(params); + setButtonColor(); + } + + function setButtonColor() { + $("#toggle_scroll_down").toggleClass('active', params.scrollDownIsEnabled); + } + + function load_extension() { + $(Jupyter.toolbar.add_buttons_group([ + Jupyter.keyboard_manager.actions.register({ + help : 'toggle automatic scrolling down', + icon : 'fa-angle-double-down ', + handler: toggleScrollDown + }, 'toggle-auto-scroll-down', 'scroll_down') + ])).find('.btn').attr('id', 'toggle_scroll_down'); + + console.log("[ScrollDown] is loaded"); + + // the event was renamed from 'resize' to 'resizeOutput' in + // https://github.com/jupyter/notebook/commit/b4928d481abd9f7cd996fd4b24078a55880d21e6 + $(document).on("resize resizeOutput", ".output", function () { + if (!params.scrollDownIsEnabled) return; + var output = $(this); + setTimeout(function () { + output.scrollTop(output.prop("scrollHeight")); + }, 0); + }); + + return Jupyter.notebook.config.loaded.then(initialize); + } + + return { + load_jupyter_extension: load_extension, + load_ipython_extension: load_extension + }; +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scroll_down/readme.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scroll_down/readme.md new file mode 100644 index 00000000..66b51115 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/scroll_down/readme.md @@ -0,0 +1,13 @@ +# ScrollDown + +When enabled, this nbextension scrolls cells' outputs down automatically as +they are enlarged. It can be enabled and disabled using the toolbar button: + +![](icon.png) + + +Options +------- + +The enabled status is toggleable with the toolbar button, which sets the option +option `scrollDownIsEnabled` in the notebook config section. diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/select_keymap/README.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/select_keymap/README.md new file mode 100644 index 00000000..0e58992c --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/select_keymap/README.md @@ -0,0 +1,14 @@ +Select CodeMirror Keymap +======= + +This extension lets you choose between the available CodeMirror keymaps: default, emacs, vim, and sublime. + +There's a chance that this might cause key conflicts, especially with other extensions. + +Most browsers consume some of the global keybindings like `Ctrl+n`. [The Menu Wizard add-on for Firefox](https://addons.mozilla.org/en-US/firefox/addon/s3menu-wizard/) allows you to disable some of the global key shortcuts, thus passing the keys through to CodeMirror. + +![Demo](select_keymap.png) + +Based on: + * [jupyter-emacskeys](https://github.com/rmcgibbo/jupyter-emacskeys) + * [notebook_input_mode](https://github.com/asford/notebook_input_mode) diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/select_keymap/main.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/select_keymap/main.js new file mode 100644 index 00000000..cd49ff24 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/select_keymap/main.js @@ -0,0 +1,371 @@ +// change the mode of all current and future CodeMirror instances + +define([ + "base/js/namespace", + "notebook/js/cell", + "codemirror/lib/codemirror", + "codemirror/keymap/emacs", + "codemirror/keymap/vim", + "codemirror/keymap/sublime", + "codemirror/mode/meta", + "codemirror/addon/comment/comment", + "codemirror/addon/dialog/dialog", + "codemirror/addon/edit/closebrackets", + "codemirror/addon/edit/matchbrackets", + "codemirror/addon/search/searchcursor", + "codemirror/addon/search/search", +], function( + Jupyter, + Cell, + CodeMirror + // other stuff is loaded, but not used +) { + "use_strict"; + + var previous_mode = ""; + + var available_keymaps = [ + "default", + "emacs", + "vim", + "sublime" + ]; + + /* Values to use for config keys that are note defined in server config */ + var default_config = { + line_wrap: true, + local_storage: true, + }; + + var starting_state = { + extraKeys: {}, + edit_shortcuts: {}, + command_shortcuts: {} + }; + + var cm_default = Cell.Cell.options_default.cm_config; + var edit_shortcuts = Jupyter.keyboard_manager.edit_shortcuts; + var command_shortcuts = Jupyter.keyboard_manager.command_shortcuts; + + var mods = { + vim: { + add: { + extraKeys: { + "Esc": "leave_current_mode", + "Ctrl-[": "leave_current_mode" + }, + command_shortcuts: { + "Ctrl-c": "jupyter-notebook:interrupt-kernel", + "Ctrl-z": "jupyter-notebook:restart-kernel", + + "d,d": "jupyter-notebook:cut-cell", + "y,y": "jupyter-notebook:copy-cell", + "u": "jupyter-notebook:undo-cell-deletion", + + "p": "jupyter-notebook:paste-cell-below", + "Shift-P": "jupyter-notebook:paste-cell-above", + + "o": "jupyter-notebook:insert-cell-below", + "Shift-O": "jupyter-notebook:insert-cell-above", + + "i": "jupyter-notebook:enter-edit-mode", + "Enter": "jupyter-notebook:enter-edit-mode", + + "Shift-J": "jupyter-notebook:move-cell-down", + "Shift-K": "jupyter-notebook:move-cell-up", + + "Shift-/": "jupyter-notebook:show-keyboard-shortcuts", + "h": "jupyter-notebook:toggle-cell-output-collapsed", + "Shift-H": "jupyter-notebook:toggle-cell-output-scrolled", + + "`": "jupyter-notebook:change-cell-to-code", + "0": "jupyter-notebook:change-cell-to-markdown" + }, + edit_shortcuts: { + "Shift-Esc": "jupyter-notebook:enter-command-mode" + } + }, + remove: { + edit_shortcuts: ["Esc"] + }, + custom: function() { + disable_keyboard_manager_in_dialog(this); + }, + custom_teardown: function() { + reenable_keyboard_manager_in_dialog(this); + } + }, + emacs: { + add: { + extraKeys: { + "Ctrl-Y": "yank_no_selection" + }, + command_shortcuts: { + "Ctrl-N": "jupyter-notebook:select-next-cell", + "Ctrl-P": "jupyter-notebook:select-previous-cell", + "Alt-X": "jupyter-notebook:show-command-palette" + + }, + edit_shortcuts: { + "Alt-X": "jupyter-notebook:show-command-palette" + } + }, + remove: { + edit_shortcuts: ["Ctrl-Shift-Minus"], + keyMap: ["Ctrl-V"] + }, + custom: function() { + disable_keyboard_manager_in_dialog(this); + }, + custom_teardown: function() { + reenable_keyboard_manager_in_dialog(this); + } + } + }; + + function disable_keyboard_manager_in_dialog(_this) { + // Disable keyboard manager for code mirror dialogs, handles ':' + // triggered ex-mode dialog box in vim mode. + // Manager is re-enabled by re-entry into notebook edit mode + + // cell normal mode after dialog closes + _this.openDialog = CodeMirror.prototype.openDialog; + + function openDialog_keymap_wrapper(target, template, callback, options) { + Jupyter.keyboard_manager.disable(); + return target.call(this, template, callback, options); + } + + CodeMirror.defineExtension("openDialog", _.wrap(_this.openDialog, + openDialog_keymap_wrapper)); + } + + function reenable_keyboard_manager_in_dialog(_this) { + CodeMirror.defineExtension("openDialog", _this.openDialog); + } + + var server_config = Jupyter.notebook.config; + // make sure config is loaded before making initial changes + var initialize = function () { + save_starting_state(); + // initialize last stored value or default + switch_keymap(get_stored_keymap()); + }; + + function get_config(key) { + if (server_config.data.hasOwnProperty("select_keymap_" + key)) { + return server_config.data["select_keymap_" + key]; + } + return default_config[key]; + } + + function get_stored_keymap() { + var keymap; + if (get_config("local_storage")) { + keymap = window.localStorage.getItem("jupyter_keymap"); + } else { + keymap = server_config.data.stored_keymap; + } + return keymap || "default"; + } + + function store_keymap(mode) { + if (get_config("local_storage")) { + window.localStorage.setItem("jupyter_keymap", mode); + } else { + server_config.update({ + stored_keymap: mode + }); + } + } + + function flatten_shortcuts(shortcut_tree) { + var result = {}; + for (var p in shortcut_tree) { + if (typeof(shortcut_tree[p]) == "string") { + result[p] = shortcut_tree[p]; + } else { + var subresult = flatten_shortcuts(shortcut_tree[p]); + for (var subp in subresult) { + result[p + "," + subp] = subresult[subp]; + } + } + } + return result; + } + + function update_shortcuts(shortcut_manager, updated_shortcuts) { + var current_shortcuts = _.invert(flatten_shortcuts(shortcut_manager._shortcuts)); + + for (var shortcut_action in _.invert(updated_shortcuts)) { + if (_.has(current_shortcuts, shortcut_action) && + shortcut_manager.get_shortcut(current_shortcuts[shortcut_action])) { + + shortcut_manager.remove_shortcut(current_shortcuts[shortcut_action]); + } + } + + shortcut_manager.add_shortcuts(updated_shortcuts); + } + + // start custom CodeMirror command definitions + function leave_current_mode(cm) { + if (cm.state.vim.insertMode) { + // Move from insert mode into command mode. + CodeMirror.keyMap["vim-insert"].call("Esc", cm); + } else if (cm.state.vim.visualMode) { + // Move from visual mode to command mode. + CodeMirror.keyMap["vim"].call("Esc", cm); + } else { + // Move to notebook command mode. + Jupyter.notebook.command_mode(); + Jupyter.notebook.focus_cell(); + } + }; + + var orig_ctrl_y = CodeMirror.keyMap.emacs["Ctrl-Y"]; + + function yank_no_selection(cm) { + orig_ctrl_y(cm); + // remove selection after yank + cm.setSelection(cm.getCursor(), cm.getCursor()); + }; + + CodeMirror.commands.yank_no_selection = yank_no_selection; + CodeMirror.commands.leave_current_mode = leave_current_mode; + // end custom CodeMirror command definitions + + function create_menu() { + var menu = [ + "
  • ", + "
    "); + + $("#move_cell_down").after(menu.join("\n")); + } + + function update_cm_instance_to_defaults(cell) { + var cm = cell.code_mirror; + cm.setOption("vimMode", cm_default["vimMode"]); + cm.setOption("lineWrapping", cm_default["lineWrapping"]); + cm.setOption("keyMap", cm_default["keyMap"]); + cm.setOption("extraKeys", cm_default["extraKeys"]); + }; + + function highlight_selection(mode) { + $("[id^=keymap]").css("font-weight", "normal"); + $("[id=keymap-" + mode + "]").css("font-weight", "bold"); + } + + function reset_state() { + // FIXME: if this extension loads before other extensions that alter + // key shortcuts, this will probably reset those as well + cm_default.extraKeys = _.clone(starting_state.extraKeys); + update_shortcuts(edit_shortcuts, starting_state.edit_shortcuts); + update_shortcuts(command_shortcuts, starting_state.command_shortcuts); + + // if changing from another mode, run the teardown function + var prev_mode_mods = mods[previous_mode]; + if (prev_mode_mods && prev_mode_mods.custom_teardown) { + prev_mode_mods.custom_teardown(); + } + } + + function save_starting_state() { + starting_state.extraKeys = _.clone(cm_default.extraKeys); + starting_state.edit_shortcuts = flatten_shortcuts(edit_shortcuts._shortcuts); + starting_state.command_shortcuts = flatten_shortcuts(command_shortcuts._shortcuts); + } + + function add_bindings(add, mode) { + _.extend(CodeMirror.keyMap[mode], add.keyMap); + _.extend(cm_default.extraKeys, add.extraKeys); + + if (add.command_shortcuts) { + update_shortcuts(command_shortcuts, add.command_shortcuts); + } + + if (add.edit_shortcuts) { + update_shortcuts(edit_shortcuts, add.edit_shortcuts); + } + } + + function remove_bindings(remove, mode) { + _.forEach(remove.keyMap, function(key) { + delete CodeMirror.keyMap[mode][key]; + }); + + _.forEach(remove.extraKeys, function(key) { + delete cm_default.extraKeys[key]; + }); + + _.forEach(remove.edit_shortcuts, function(key) { + edit_shortcuts.remove_shortcut(key); + }); + + _.forEach(remove.command_shortcuts, function(key) { + command_shortcuts.remove_shortcut(key); + }); + } + + function change_notebook_defaults(mode) { + // make changes to cm defaults + cm_default.keyMap = mode; + cm_default.vimMode = mode == "vim"; + cm_default.lineWrapping = get_config('line_wrap'); + + var mode_mods = mods[mode]; + if (mode_mods) { + if (mode_mods.add) { + add_bindings(mode_mods.add, mode); + } + + if (mode_mods.remove) { + remove_bindings(mode_mods.remove, mode); + } + + if (mode_mods.custom) { + mode_mods.custom(); + } + } + } + + function change_cells_to_defaults() { + Jupyter.notebook.get_cells().map(update_cm_instance_to_defaults); + } + + function switch_keymap(mode) { + // don't run if selecting currently selected mode + if (mode == previous_mode) return; + + // store selection only when it changes + if (previous_mode) store_keymap(mode); + + reset_state(); + + change_notebook_defaults(mode); + + change_cells_to_defaults(); + + highlight_selection(mode); + + previous_mode = mode; + } + + window.switch_keymap = switch_keymap; + + return { + load_ipython_extension: function () { + return Jupyter.notebook.config.loaded + .then(initialize) + .then(create_menu); + } + }; +}); \ No newline at end of file diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/select_keymap/select_keymap.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/select_keymap/select_keymap.png new file mode 100644 index 00000000..58367a2e Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/select_keymap/select_keymap.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/select_keymap/select_keymap.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/select_keymap/select_keymap.yaml new file mode 100644 index 00000000..9cf0d305 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/select_keymap/select_keymap.yaml @@ -0,0 +1,15 @@ +Type: Jupyter Notebook Extension +Name: Select CodeMirror Keymap +Link: README.md +Description: "A little extension to choose between CodeMirror keymaps: default, emacs, vim, and sublime" +Main: main.js +Compatibility: 4.x, 5.x +Parameters: +- name: select_keymap_line_wrap + description: Enable line wrap in CodeMirror + input_type: checkbox + default: true +- name: select_keymap_local_storage + description: Store keymap selection on the client instead of server config + input_type: checkbox + default: true diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skill/README.md b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skill/README.md new file mode 100644 index 00000000..3d6a5245 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skill/README.md @@ -0,0 +1,15 @@ +# SKILL for Codemirror +This extension provides a *SKILL* mode for CodeMirror editor. + +The extension adds a MIME type `x-skill` and a mode `skill` that can be +used with CodeMirror. + +## About SKILL +From [Wikipedia](https://en.wikipedia.org/wiki/Cadence_SKILL): +SKILL is a Lisp dialect used as a scripting language and PCell (parameterized +cells) description language used in many EDA software suites by Cadence Design +Systems (e.g. Cadence Allegro and Cadence Virtuoso) + +## Notes +This extension was written to enhance the Virtuoso kernel for Jupyter +(https://github.com/benvarkey/JuVi). diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skill/main.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skill/main.js new file mode 100644 index 00000000..93ff4595 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skill/main.js @@ -0,0 +1,14 @@ +define(function() { + "use strict"; + // jupyter nbextensions must export a load_ipython_extension function to + // avoid throwing an error. Also, loading the module should do nothing + // unless the function is called, so we wrap requiring the codemirror mode + // in the load call. + return { + load_ipython_extension: function () { + requirejs(['./skill'], function () { + console.log('[SKILL Syntax] loaded'); + }); + } + }; +}); \ No newline at end of file diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skill/skill.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skill/skill.js new file mode 100644 index 00000000..7ee3ace4 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skill/skill.js @@ -0,0 +1,159 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/** + * Author: Ben Varkey Benjamin, based on implementation by Koh Zi Chun + */ + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("codemirror/lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["codemirror/lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("skill", function () { + var BUILTIN = "builtin", COMMENT = "comment", STRING = "string", + ATOM = "atom", NUMBER = "number", BRACKET = "bracket"; + var isOperatorChar = /[+\-*&%=<>!|\/@]/; + + function makeKeywords(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + var keywords = makeKeywords( +"ALIAS DATA ERC IDC IF IS IT LVS MP NG OP OPT PN SIMULATOR VAR VDC VF VN VN2 VNP VNPP VPD VS a2d abs absAbstract absAttachTechLib absCopyBinOptions absDeleteBin absDeleteBinMoveCellsTo absDeselectAllBins absDeselectBin absDeselectBinFrom absDeselectCell absDeselectCellFrom absDeselectCells absDeselectCellsInList absDisableUpdate absDistributeCells absEnableUpdate absExit absExportLEF absExportOptions absExportReport absExtract absGetBinOption absGetBinType absGetBins absGetCellProp absGetLibrary absGetOption absGetSelectedBins absGetSelectedCells absGetTerminalProp absImportCTLF absImportDEF absImportGDS absImportLEF absImportLogical absImportOptions absImportVerilog absMoveSelectedCellsToBin absNewBin absPins absRenameBin absRevalidateSelectedCells absSelect absSelectAllBins absSelectBin absSelectBinFrom absSelectCell absSelectCellFrom absSelectCells absSelectCellsInList absSetBinOption absSetCellProp absSetLibrary absSetOption absSetTerminalProp absSort absVerify absVersion abs_jitter ac acos acosh add1 addCheck addDefstructClass addDependent addPoint addSubwindow addSubwindowTitle addTitle addToExportList addToNamespace addWaveLabel addWindowLabel adpInitFloorplan adpnlSetEnv aedCopyCDF aedDeleteCDF aedEditCDF aelCheckRange aelDisplayOPParam aelEngNotation aelEnvCompile aelEnvCreate aelEnvExecute aelEnvFreeCompExpr aelEnvGetErrStr aelEnvGetGlobal aelEnvInterpret aelEnvListDeferredFuncs aelEnvListDeferredGlobals aelEnvListExprFuncs aelEnvListExprGlobals aelEnvListFuncs aelEnvListGlobals aelEnvListGlobalsValues aelEnvName aelEnvSetGlobalList aelEnvSetGlobals aelGetSignifDigits aelNumber aelPopSignifDigits aelPushSignifDigits aelSetLineage aelSignum aelStrDblNotation aelSuffixNotation aelSuffixWithUnits aelSumOPParam ahdlUpdateViewInfo alias allocateInstance almDefineParam_accuracyMode almDefineParam_additionalParam almDefineParam_fq almDefineParam_noiseParaLabel almDefineParam_nportFileB almDefineParam_otherParaLabel almDefineParam_tranAdvanParaLabel almDefineParam_tranParaLabel almGetModuleName almGetNamePrefix almGetNetlistProcedure almGetNetlistType almGetOpPointParamMap almGetOtherParameterList almGetParameterList almGetPropMappingList almGetStringParameterList almGetTerminalList almGetTerminalMap almGetViewInfoNameList almHasViewInformation almSetModuleName almSetNamePrefix almSetNetlistProcedure almSetOpPointParamMap almSetOtherParameterList almSetParameterList almSetPropMappingList almSetStringParameterList almSetTerminalList almSetTerminalMap alphaNumCmp alphalessp amsCheckCV amsError amsGetInstanceName amsGetNetlister amsGetPortExpr amsGetUniqueName amsInfo amsIsPresent amsMapName amsMtlinePrintParams amsMtlineTermOrder amsNetlist amsNportTermOrder amsPrint amsPrintAlias amsPrintAliases amsPrintAttribute amsPrintAttributes amsPrintIO amsPrintIOs amsPrintInstance amsPrintInstanceMasterName amsPrintInstanceParameter amsPrintInstanceParameters amsPrintInstancePorts amsPrintParameter amsPrintParameters amsPrintPort amsPrintPorts amsPrintWire amsPrintWires amsProcessCellViews amsSpectreToVams amsUIOptionsForm amsUIRunNetlisterForm amsUpdateTextviews amsWarning amseGeneralSetupForm amseQuickSetupForm analysis ancAdjustNameCase ancGetSimInstName and angle annPinCurrentInfoBalloon annToggleInfoBalloonVisibilityStatus ansAnalogRegCDFsimInfo ansCdlCompPrim ansCdlGetMultiplicity ansCdlGetSegmentConnections ansCdlGetSegmentInfo ansCdlGetSegmentInstParams ansCdlGetSimPropValue ansCdlHnlPrintInst ansCdlPrintConnections ansCdlPrintInheritedParams ansCdlPrintInstName ansCdlPrintInstParams ansCdlPrintInstProps ansCdlPrintModelName ansCdlPrintModuleName ansCdlPrintString apaExport apaExportCB apaStop apaStopCB appTrigger append append1 appendPath appendWaves apply applyEnterFun argc arglist argmax argmin argv armSetCalc arrayp arrayref artBlankString artClose artCloseAllFiles artCurrentInstSimName artEnableAnnotationBalloon artFlush artFprintf artGenerateHierSymbolCDF artGetCdfTargetCV artGetCellViewDesignVarList artInvalidateAmap artListOpenFiles artListToWaveform artMakeString artMakeStringPrec15 artOutfile asiAddAnalysis asiAddAnalysisField asiAddAnalysisOption asiAddDesignVarList asiAddEnvOption asiAddFlowchartLink asiAddFlowchartStep asiAddKeepOption asiAddModelLibSelection asiAddOceanAlias asiAddSimOption asiAddVerilogArgs asiAnalogAutoloadProc asiChangeAnalysis asiChangeAnalysisField asiChangeAnalysisOption asiChangeAnalysisOptionFormProperties asiChangeEnvOption asiChangeEnvOptionFormProperties asiChangeFlowchartStep asiChangeKeepOption asiChangeKeepOptionFormProperties asiChangeSimOption asiChangeSimOptionFormProperties asiCheck asiCheckAcEnabledWhenNoiseEnabled asiCheckAnalysis asiCheckBlank asiCheckBlankInstExists asiCheckBlankNetExists asiCheckBlankNumeric asiCheckBlankNumericGeq asiCheckBlankNumericGreater asiCheckBlankNumericLeq asiCheckBlankNumericNequal asiCheckDesignVariable asiCheckDigitalSimulationSuccess asiCheckExpression asiCheckExpressionGreater asiCheckMultipleGreater asiCheckSimulationSuccess asiCloseOceanScript asiConstructDigitalNetlist asiCornerSimCB asiCreateAnalysisField asiCreateAnalysisOption asiCreateCdsenvFile asiCreateFlowchart asiCreateFormatter asiCreateLogFileVerilog asiDcStore asiDefineDataAccessFunction asiDefineDataMappingFunction asiDeleteAnalysis asiDeleteAnalysisField asiDeleteAnalysisOption asiDeleteEnvOption asiDeleteFlowchartLink asiDeleteFlowchartStep asiDeleteKeepOption asiDeleteSimOption asiDisableAnalysis asiDisplayAnalysis asiDisplayAnalysisField asiDisplayAnalysisOption asiDisplayAnalysisOptionFormProperties asiDisplayEnvOption asiDisplayEnvOptionFormProperties asiDisplayFlowchart asiDisplayHighPerformanceOption asiDisplayKeepOption asiDisplayKeepOptionFormProperties asiDisplayNetlistOption asiDisplaySimOption asiDisplaySimOptionFormProperties asiEditDigitalStimulus asiEnableAnalysis asiExecuteFlowchart asiFinalNetlist asiFormatAnalysis asiFormatAnalysisList asiFormatControlStmts asiFormatDefinitionFileList asiFormatDesignVarList asiFormatGraphicalStimuli asiFormatGraphicalStimulusFileList asiFormatInitCond asiFormatKeepList asiFormatMTSModelAndSimOptions asiFormatModelLibSelectionList asiFormatNodeSet asiFormatSimulatorOptions asiFormatTextStimulusFileList asiGetAnalogKeepList asiGetAnalogRunDir asiGetAnalogSimulator asiGetAnalysis asiGetAnalysisField asiGetAnalysisFieldChoices asiGetAnalysisFieldList asiGetAnalysisFieldVal asiGetAnalysisFormFieldChoices asiGetAnalysisFormFieldVal asiGetAnalysisName asiGetAnalysisNameList asiGetAnalysisOptionChoices asiGetAnalysisOptionList asiGetAnalysisOptionSendMethod asiGetAnalysisOptionVal asiGetAnalysisParamNameList asiGetAnalysisSigList asiGetAnalysisSimFieldList asiGetAnalysisType asiGetCalcResultsDir asiGetCommandFooter asiGetCommandLineOption asiGetCornerDesignVarList asiGetCornerList asiGetCornerModelSelectionList asiGetCornerModelingStyles asiGetCornerName asiGetCornerResultsDir asiGetCornerTemperature asiGetCurrentSession asiGetDefinitionFileList asiGetDesignCellName asiGetDesignLibName asiGetDesignVarList asiGetDesignViewName asiGetDigitalCommandLineOption asiGetDigitalKeepList asiGetDigitalNetlistFileName asiGetDigitalRunDir asiGetDigitalSimExecName asiGetDigitalSimulator asiGetDigitalSimulatorLogFileName asiGetDigitalStimulusFileName asiGetDrlData asiGetEnabledAnalysisList asiGetEnvOptionChoices asiGetEnvOptionVal asiGetFlowchart asiGetFormFieldChoices asiGetFormFieldVal asiGetFormattedVal asiGetFormatter asiGetHighPerfformanceOptionVal asiGetId asiGetKeepList asiGetKeepOptionChoices asiGetKeepOptionVal asiGetLogFileList asiGetMarchList asiGetModelLibFile asiGetModelLibSection asiGetModelLibSelectionList asiGetNetlistDir asiGetNetlistOption asiGetNetworkId asiGetOutputList asiGetPlotList asiGetPredefinedCommandLineOption asiGetPsfDir asiGetReservedWordList asiGetSelObjName asiGetSelObjType asiGetSelObjValue asiGetSession asiGetSimCommandLineOrder asiGetSimExecName asiGetSimInputFileList asiGetSimInputFileName asiGetSimInputFileSuffix asiGetSimName asiGetSimOptionChoices asiGetSimOptionNameList asiGetSimOptionSendMethod asiGetSimOptionVal asiGetSimulationRunCommand asiGetSimulatorList asiGetSimulatorSrcList asiGetStimulusGlobals asiGetStimulusInputs asiGetTextStimulusFileList asiGetTool asiGetTopCellView asiGetVerilogCommandLineOption asiGetVerilogHost asiGetVerilogHostMode asiInitAdvAnalysis asiInitAnalysis asiInitDataAccessFunction asiInitEnvOption asiInitMixedKeepOption asiInitSimOption asiInitVerilog asiInitVerilogEnvOption asiInitVerilogFNLEnvOption asiInitVerilogHNLEnvOption asiInitVerilogSimOption asiInitialize asiInitializeNetlisterMixed asiInterruptSim asiInvalidateControlStmts asiInvalidateFlowchartStep asiIsAnalysisEnabled asiIsCaseSensitive asiIsConfigDesign asiLoadState asiMTSIncludeFileExtension asiMTSIncludeFormat asiMapInstanceName asiMapNetName asiMapOutputName asiMapTerminalName asiNeedSuffixEvaluation asiNetlist asiNetlistMixed asiOpenOceanScript asiPartitionDesign asiPrepareDigitalSimulation asiQuitSimulator asiRawNetlist asiRegCallBackOnSimComp asiRegisterTool asiRemoveAllModelLibSelection asiRunSimulation asiSaveState asiSelectAnalysisCompParam asiSelectAnalysisInst asiSelectAnalysisNet asiSelectAnalysisSource asiSelectInst asiSelectNet asiSelectSourceInst asiSelectTerm asiSelectTermNet asiSendAnalysis asiSendControlStmts asiSendDesignVars asiSendInitCond asiSendInitFile asiSendKeepList asiSendModelPath asiSendNetlist asiSendNodeSets asiSendOptions asiSendRestore asiSendSim asiSendUpdateFile asiSetAnalogSimulator asiSetAnalysisFieldChoices asiSetAnalysisFieldVal asiSetAnalysisFormFieldChoices asiSetAnalysisFormFieldVal asiSetAnalysisFormWidth asiSetAnalysisOptionChoices asiSetAnalysisOptionFormProperties asiSetAnalysisOptionVal asiSetDesignVarList asiSetDigitalSimulator asiSetEnvOptionChoices asiSetEnvOptionVal asiSetFormFieldChoices asiSetFormFieldVal asiSetHighPerformanceOptionVal asiSetHostOptions asiSetKeepList asiSetKeepOptionChoices asiSetKeepOptionVal asiSetMarchList asiSetNetlistFormatterClass asiSetNetlistOption asiSetPlotList asiSetProjectDirChangeSetup asiSetSimOptionChoices asiSetSimOptionVal asiSetSyncFlag asiSetValid asiSetVerilogHost asiSetVerilogHostMode asiTransientStore asiUnRegCallBackOnSimComp asiVerilogNetlistMoreCB asiWriteOceanScript asin asinh assert assoc assq assv atan atan2 atanh atof atoi atom auCdl auHiUltraPCell auLvs auLvsGetLabelSuffix auProbeAddDevsForNet avSwitch average awvAddSubwindow awvAnalog2Digital awvAppendExpression awvAppendList awvAppendWaveform awvClearPlotWindow awvClearSubwindowHistory awvClearWindowHistory awvCloseCalculator awvCloseWindow awvCloseWindowMenuCB awvCreateBus awvCreateBusFromWaveList awvCreatePlotWindow awvDeleteAllWaveforms awvDeleteSubwindow awvDeleteWaveform awvDigital2Analog awvDisableRedraw awvDisplayDate awvDisplayGrid awvDisplaySubwindowTitle awvDisplayTitle awvEraseWindowMenuCB awvEval awvExitWindowFunctionAdd awvExitWindowFunctionDel awvExitWindowFunctionGet awvGetCurrentSubwindow awvGetCurrentWindow awvGetDisplayMode awvGetDrawStatus awvGetInitializationTimeout awvGetOnSubwindowList awvGetPlotStyle awvGetSavePromptNeeded awvGetSmithModeType awvGetSubwindowList awvGetUnusedEntityList awvGetWaveNameList awvGetWindowList awvGetXAxisLabel awvGetXMarkerNames awvGetYAxisLabel awvGetYMarkerNames awvInitWindowFunctionAdd awvInitWindowFunctionDel awvInitWindowFunctionGet awvIsPlotWindow awvLoadMenuCB awvLoadWindow awvLogXAxis awvLogYAxis awvPlaceWaveformLabel awvPlaceWindowLabel awvPlaceXMarker awvPlaceYMarker awvPlotExpression awvPlotList awvPlotSignals awvPlotSimpleExpression awvPlotWaveform awvPlotWaveformOption awvPrintWaveform awvRedisplaySubwindow awvRedisplayWindow awvRedrawWindowMenuCB awvRefreshOutputPlotWindows awvRemoveDate awvRemoveLabel awvRemoveSubwindowTitle awvRemoveTitle awvResetAllWindows awvResetWindow awvResumeViVA awvRfLoadPull awvSaveMenuCB awvSaveWindow awvSaveWindowImage awvSetCurrentSubwindow awvSetCurrentWindow awvSetCursorPrompts awvSetDisplayMode awvSetDisplayStatus awvSetInitializationTimeout awvSetOptionDefault awvSetOptionValue awvSetOrigin awvSetPlotStyle awvSetSavePromptNeeded awvSetSmithModeType awvSetSmithXLimit awvSetSmithYLimit awvSetUpdateStatus awvSetWaveNameList awvSetWaveformDisplayStatus awvSetXAxisLabel awvSetXLimit awvSetXScale awvSetYAxisLabel awvSetYLimit awvSetYRange awvSimplePlotExpression awvSmithAxisMenuCB awvTableSignals awvUpdateAllWindows awvUpdateWindow awvZoomFit awvZoomGraphX awvZoomGraphXY awvZoomGraphY awviEditMenuCB awviMakeActiveMenuCB awviPLoadMenuCB awviPSaveMenuCB awviPUpdateMenuCB awviShowOutputMenuCB axlAddJobPolicy axlAddModelPermissibleSectionLists axlAddOutputExpr axlAddOutputSignal axlAddOutputs axlAddOutputsColumn axlAddSpecToOutput axlAttachJobPolicy axlCloseSession axlCloseSessionInWindow axlCloseSetupDB axlCommitSetupDB axlCommitSetupDBAndHistoryAs axlCommitSetupDBas axlCorners axlCreateSession axlCustomADETestName axlDeleteJobPolicy axlDeleteOutput axlDeleteOutputsColumn axlDetachJobPolicy axlDiffSetup axlExportOutputView axlExportSetup axlGetAllCornersEnabled axlGetAllParametersDisabled axlGetAllSweepsEnabled axlGetAllVarsDisabled axlGetAttachedJobPolicy axlGetCopyRefResultsOption axlGetCorner axlGetCornerCountForName axlGetCornerNameForCurrentPointInRun axlGetCorners axlGetCornersForATest axlGetCurrentHistory axlGetCurrentResultSimulationHost axlGetCurrentRunMode axlGetDataViewHistoryUserMenu axlGetElementParent axlGetEnabled axlGetEnabledGlobalVarPerTest axlGetHistory axlGetHistoryCheckpoint axlGetHistoryEntry axlGetHistoryGroup axlGetHistoryGroupChildren axlGetHistoryGroupChildrenEntry axlGetHistoryLock axlGetHistoryName axlGetHistoryPrefix axlGetHistoryResults axlGetJobPolicy axlGetJobPolicyTypes axlGetLocalResultsDir axlGetMainSetupDB axlGetModel axlGetModelBlock axlGetModelFile axlGetModelGroup axlGetModelGroupName axlGetModelGroups axlGetModelPermissibleSectionLists axlGetModelSection axlGetModelTest axlGetModels axlGetNominalCornerEnabled axlGetOrigTestToolArgs axlGetOutputUserDefinedData axlGetOverwriteHistory axlGetOverwriteHistoryName axlGetParameter axlGetParameterValue axlGetParameters axlGetParasiticParaLCV axlGetParasiticRunMode axlGetParasiticSchLCV axlGetPointNetlistDir axlGetPointPsfDir axlGetPointRunDir axlGetPointTroubleshootDir axlGetPreRunScript axlGetReferenceHistoryItemName axlGetResultsLocation axlGetReuseNetlist axlGetRunData axlGetRunDistributeOptions axlGetRunMode axlGetRunModes axlGetRunOption axlGetRunOptionName axlGetRunOptionValue axlGetRunOptions axlGetScript axlGetScriptPath axlGetScripts axlGetSessionCellName axlGetSessionFromSetupDB axlGetSessionLibName axlGetSessionViewName axlGetSessionWindowNumber axlGetSetupDBDir axlGetSpec axlGetSpecData axlGetSpecWeight axlGetSpecs axlGetTemperatureForCurrentPointInRun axlGetTest axlGetTestToolArgs axlGetTests axlGetToolSession axlGetTopLevel axlGetUseIncremental axlGetUserDefinedOutputsColumns axlGetVar axlGetVarValue axlGetVars axlGetWCCCorner axlGetWCCHistory axlGetWCCRangeBound axlGetWCCResult axlGetWCCSpec axlGetWCCSpecs axlGetWCCTest axlGetWCCTime axlGetWCCVar axlGetWCCVarMonotonicity axlGetWCCVars axlGetWYCSigmaTargetLimit axlGetWindowSession axlImportPreRunScript axlImportSetup axlIsICRPProcess axlIsLocalResultsDir axlIsSimUsingStatParams axlJPGUICusReadFromForm axlJPGUICustDiffer axlJPGUICustHIFields axlJPGUICustOffset axlJPGUICustSelected axlJPGUICustWriteToForm axlJobIntfcDebugPrintf axlJobIntfcDebugToFile axlJobIntfcDebugp axlJobIntfcExitMethod axlJobIntfcHealthMethod axlJobIntfcSetDebug axlJobIntfcStartMethod axlLoadCorners axlLoadCornersFromPcfToSetupDB axlLoadHistory axlLoadSetupState axlMainAppSaveSetup axlMapInstTermToNet axlNewSetupDB axlNewSetupDBLCV axlNoSession axlOpenResDB axlOutputResult axlOutputsExportToFile axlOutputsImportFromFile axlPutCorner axlPutDisabledCorner axlPutHistoryEntry axlPutModel axlPutModelGroup axlPutRunOption axlPutScript axlPutTest axlPutVar axlReadHistoryResDB axlReadResDB axlRegisterCustomDeviceFilter axlRegisterJobIntfc axlRegisteredJPGUICust axlRegisteredJobIntfcNames axlRemoveElement axlRemoveSetupState axlRemoveSimulationResults axlRenameOutputsColumn axlResetActive axlRunAllTests axlRunAllTestsWithCallback axlRunSimulation axlSaveJobPolicy axlSaveSetup axlSaveSetupState axlSaveSetupToLib axlSessionConnect axlSessionDisconnect axlSessionRegisterCreationCallback axlSessionSignalList axlSessionSignalSignature axlSetAllCornersEnabled axlSetAllParametersDisabled axlSetAllSweepsEnabled axlSetAllVarsDisabled axlSetCopyRefResultsOption axlSetCurrentRunMode axlSetDefaultCornerEnabled axlSetDefaultVariables axlSetEnabled axlSetHistoryLock axlSetJobPolicyProperty axlSetMainSetupDB axlSetMainSetupDBLCV axlSetModelBlock axlSetModelFile axlSetModelGroupName axlSetModelPermissibleSectionLists axlSetModelSection axlSetModelTest axlSetNominalCornerEnabled axlSetOutputUserDefinedData axlSetOverwriteHistory axlSetOverwriteHistoryName axlSetParameter axlSetPreRunScript axlSetPreRunScriptEnabled axlSetReferenceHistoryItemName axlSetReuseNetlistOption axlSetRunDistributeOptions axlSetRunOptionName axlSetScriptPath axlSetTestToolArgs axlSetUseIncremental axlSetWCCTime axlSetWYCSigmaTargetLimit axlSetupStates axlStop axlStopAll axlStopAllJobs axlStopJob axlToolSetOriginalSetupOptions axlToolSetSetupOptions axlViewHistoryResults axlViewResDB axlWriteDatasheet axlWriteDatasheetForm axlWriteOceanScriptLCV b1f band bandwidth bcdp begin bitfield bitfield1 blankstrp bnand bndAddInstsBindingByName bndAddObjectsBinding bndGetBoundObjects bndGetSiblingBoundObjects bndRemoveInstBindingByName bndRemoveObjectBinding bndRemoveTermBindingByName bndReplaceInstsBindingByName bndReplaceObjectsBinding bndReplaceTermsBindingByName bndSetInstsBindingByName bndSetObjectsBinding bndSetTermsBindingByName bnor bnot booleanp bor bottomEdge boundp break breakpt breakptMethod buildString bxnor bxor cPwrContour cReflContour caaar caadr caar caddr cadr calCalcInput calCalculatorFormCB calCreateSpecialFunction calCreateSpecialFunctionsForm calGetBuffer calRegisterSpecialFunction calSetBuffer calSetCurrentTest calSpecialFunctionInput calcVal caliModeToggle caliRestoreDefaultWindowSize callAs callInitProc callNextMethod callUserAutoInitProc cancelEnterFun captabSummary car case caseq cat catch ccpCopy ccpCopyConfig ccpCopyDesign ccpCopyExactDesign ccpExpand ccpExpandConfig ccpExpandDesign ccpExpandExactDesign ccpRegMonitor ccpRegTrigger ccpRemoveTrigger ccpRename ccpRenameReferenceLib cdar cddr cdfCopyCDF cdfCopyParam cdfCreateBaseCellCDF cdfCreateBaseLibCDF cdfCreateParam cdfCreateUserCellCDF cdfCreateUserLibCDF cdfDeleteCDF cdfDeleteParam cdfDump cdfDumpAll cdfEditScaleFactors cdfFindParamByName cdfFormatFloatString cdfGetBaseCellCDF cdfGetBaseLibCDF cdfGetCellCDF cdfGetCustomViaCDF cdfGetInstCDF cdfGetLibCDF cdfGetUnitScaleFactor cdfGetUserCellCDF cdfGetUserLibCDF cdfParseFloatString cdfRefreshCDF cdfSaveCDF cdfSetUnitScaleFactor cdfSyncInstParamValue cdfUpdateCustomViaParam cdfUpdateInstParam cdfUpdateInstSingleParam cdr cdsGenViaDefs cdsGetInstPath cdsGetNetlistMode cdsGetToolsPath cdsName cdsNetExpr cdsParam cdsPlat cdsSetNetlistMode cdsTerm ceiling centerBox changeClass changeEnterFun changeNextEnterFun changeWorkingDir charToInt checkContextBit ciAddLeadingSlash ciAddProcessRules ciAddRuleGroup ciAddStructArg ciAddTrailingSlash ciAlignPinsOnCellSide ciAllCellViewsInHierarchy ciAxisCreate ciAxisDelete ciAxisExists ciAxisListCon ciAxisListParams ciAxisReplaceParams ciBasicGetParamValue ciBuildModgenParams ciBundleSignalsIterator ciCPRegistrationFromLAM ciCacheCellName ciCacheConstraintCellName ciCacheConstraintLibName ciCacheConstraintViewName ciCacheDiscardEdits ciCacheFind ciCacheGet ciCacheGetAllNetNames ciCacheIsLayout ciCacheIsModified ciCacheIsWritable ciCacheLCV ciCacheLibName ciCacheListAxesNames ciCacheListCon ciCacheListConstrainedObjectNames ciCacheListConstrainedObjects ciCacheListTemplates ciCacheListTypeNames ciCacheListTypes ciCacheMakeEditable ciCacheMakeReadOnly ciCacheNeedRefresh ciCachePurge ciCacheSave ciCacheTopCellName ciCacheTopLibName ciCacheTopViewName ciCacheViewName ciCachep ciCanCGBeUsed ciCheckConstraints ciClearNetSuperTypes ciClusterBoundaryForCluster ciCollectDeviceInfo ciCombineInstNetsPins ciConAppendOneMember ciConCreate ciConCreateExpanded ciConDelete ciConFind ciConGetAxisName ciConGetCache ciConGetComment ciConGetCreatedTime ciConGetMembersOfType ciConGetName ciConGetNote ciConGetOwner ciConGetPriority ciConGetStatus ciConGetType ciConIsInContext ciConIsOutOfContext ciConIsOverridden ciConIsWritable ciConListMemberNames ciConListMembers ciConListParamNames ciConListParams ciConListTemplates ciConRemoveMembers ciConResetAllParams ciConResetParams ciConSetAxis ciConSetNote ciConSetPriority ciConSetStatus ciConTypeHasNamedParameter ciConUpdateMembers ciConUpdateParams ciConUprevCellBoundary ciConVerify ciConp ciConstraintLCV ciConstraintViewLessp ciConvertParamsDPLToParams ciConvertParamsToDPL ciConvertToConArg ciCreateFilter ciCreateGuardRing ciCreateHierarchicalConstraintNotes ciCreateModgen ciCreateModgenDummy ciCreateModgenForStructure ciCreateRoutePriorityCon ciCreateRoutingLayerEnumString ciCurrentPathIterator ciDefaultParamToMatchFilter ciDeleteClusterMembersWithinModgens ciDeleteGuardRing ciDeleteRuleGroup ciDeleteStructArgs ciDeleteSymmetriesWithinModgens ciDesignLCV ciEnableAssistant ciEnableAutoConstraintNotes ciExpandAndRepeatName ciExpandIteratedDeviceInfo ciExpandMembers ciExpandName ciExtractRowNumber ciFindDeviceArraysForDev ciFindObjectInHier ciFindOpenCellView ciFindOpenCellViews ciGUIArgsToConArgs ciGenerateArrayChannelDesc ciGenerateBestFitPattern ciGenerateCascodedCurrentMirrorChannelDesc ciGenerateCascodedCurrentMirrorPattern ciGenerateConstraintGroups ciGenerateCurrentMirrorChannelDesc ciGenerateCurrentMirrorPattern ciGenerateDiffPairChannelDesc ciGenerateDiffPairPattern ciGenerateLargeMfactorPattern ciGeneratorCheckInstsNetsPinsInstTerms ciGeneratorForInstSymmetry ciGeneratorForNetSymmetry ciGetCellTermDefaultNetName ciGetCellView ciGetCellViewForObjectPath ciGetConstraintGroupsEnum ciGetCustomFilterNames ciGetDefaultNetName ciGetDeviceBulkTermName ciGetDeviceInfo ciGetDeviceNames ciGetDeviceTermName ciGetFirstDeviceTermName ciGetFluidGuardRingDeviceEnum ciGetFoundryRules ciGetGuardRing ciGetGuardRingMPPName ciGetLAMComponentTypes ciGetMatchParam2DList ciGetMembersOfType ciGetNetNames ciGetNetSubTypes ciGetNetSuperTypes ciGetObjectCellView ciGetOpenCellViews ciGetParamMapping ciGetParamName ciGetParamValFromParameters ciGetParamValue ciGetParamValueOrDefault ciGetParamValues ciGetRoutingLayer ciGetRoutingLayers ciGetRule ciGetRuleGroupByName ciGetRuleGroupName ciGetRuleGroups ciGetStructArg ciGetStructArgs ciGetStructGeneratorExpressions ciGetStructPDKMult ciGetTechFile ciGetTechMPPNames ciGetTermNames ciGuardRingForCluster ciGuardRingForModgen ciHasCellAnyRegTerm ciHaveSameBulkNets ciHaveSameParamValues ciHierCompareConstraint ciHierCompareConstraints ciHierUpdateConstraints ciHighestLevelNet ciIgnoreDevice ciInstIterator ciInstTermIterator ciIsDevice ciIsNet ciIsNetSuperType ciListEditors ciListGeneratableConstraintGroups ciListProcessRules ciListStructGeneratorExpressions ciListStructPDKMults ciListStructTypes ciListTemplateTypes ciListTypes ciLoadConfigXML ciLoadDotCadenceFiles ciLoadIcon ciLoadIcons ciLxComparisonReport ciMOSActiveLoadStructIterator ciMOSCascodeIterator ciMOSCascodedCurrentMirrorStructIterator ciMOSCascodedCurrentMirrorStructIterator2 ciMOSCommonGateStructIterator ciMOSCrossCoupledDifferentialPairStructIterator ciMOSCrossCoupledQuadStructIterator ciMOSCurrentMirrorStructIterator ciMOSDifferentialPairStructIterator ciMOSInverterStructIterator ciMOSParallelStructIterator ciMOSTransmissionGateStructIterator ciMakeHierContext ciMakeObjectInfo ciMapParam ciMapTerm ciMapTermName ciMatchedFingerWidth ciMatchedParametersForCurrent_Mirror ciMatchedParamsForInstanceSymmetry ciMatchedParamsForSameSizeInstances ciMemberIndexToModgenPatternSymbol ciMergeParams ciModgenDummyNetName ciModgenForSameCellSizeAndBulk ciModgenMergeLayersFromArgs ciNetIterator ciNetNames ciNetOnTerm ciNetPredicates ciNetRegexs ciNextConName ciNextObjName ciNextTemplateName ciNumDevices ciNumTermsEQ2 ciObjectIsInContext ciObjectListCon ciObjectPathAndName ciOpenCellView ciOpenPanicCellView ciOrientationForModgen ciPadModgenPattern ciPinIterator ciPlacerControlledWellGeneration ciPrintMappedDefaultNetNames ciPrintMappedDeviceNames ciPrintMappedNetNames ciPrintMappedParams ciPrintMappedTerminals ciPrintReport ciPullConstraint ciPullConstraints ciPushConstraint ciPushConstraints ciRefreshCellView ciRegTypeBindingParameter ciRegexReplaceStructArgs ciRegisterAssistant ciRegisterConstraintEditor ciRegisterConstraintGenerator ciRegisterCustomDeviceFilter ciRegisterDefaultNetName ciRegisterDevice ciRegisterDynamicParamDef ciRegisterFinder ciRegisterIterator ciRegisterNet ciRegisterNetNames ciRegisterNetPredicate ciRegisterNetRegexs ciRegisterNetSuperType ciRegisterStructure ciReinitStructTemplateDefs ciRemoveConstrainedPinNetsFromRails ciRemoveHierarchicalConstraintNotes ciRemoveLeadingSlash ciRemoveProcessRules ciRemoveSymmetricPinAlignments ciRemoveTrailingSlash ciReopenCellView ciReorderAssistants ciReplaceStructArgs ciResolveBulkNet ciResolveNet ciRunFinder ciRunMatchingConstraintsGenerator ciSameCellIterator ciSaveConstraintGenerator ciSeparateInstsNetsPins ciSetCMCGSKILLCallbacks ciSetDefaultConstraintEditor ciSetHaloOptions ciSetHaloPolicy ciSetMaxHaloGroupSize ciSetStructArgVal ciSetStructArgs ciSetStructGeneratorExpressions ciSetStructPDKMult ciSetSymmetricAxes ciSigTypeMatchesNetType ciSignalIterator ciSimpleName ciSortDeviceInfoByFingerWidth ciSortDeviceInfoByMfactor ciSortDeviceInfoByX ciSortDeviceInfoByXY ciSortDeviceInfoByY ciSortDeviceInfoByYX ciSortedOpenCellViews ciTemplateAddCons ciTemplateCreate ciTemplateCreateDefinition ciTemplateCreateExpanded ciTemplateDefinitionExists ciTemplateDelete ciTemplateDeleteCons ciTemplateFind ciTemplateGetCreatedTime ciTemplateGetDefName ciTemplateGetName ciTemplateGetNote ciTemplateGetType ciTemplateListCon ciTemplateListParamNames ciTemplateListParams ciTemplateResetAllParams ciTemplateResetParams ciTemplateSetNote ciTemplateSortParamDefs ciTemplateUpdateParams ciTemplatep ciToFloat ciTypeBindingParameter ciTypeHasBindingParameter ciTypeIsType ciTypeIsUserDefined ciTypeListCon ciUnRegisterTerm ciUnexpandDeviceInfo ciUnexpandIteratedDeviceInfo ciUnexpandPhysicalDeviceInfo ciUniqueMembers ciUnregisterAssistant ciUnregisterConstraintGenerator ciUnregisterIterator ciUnregisterNetSuperType ciUpdateModgenParamsAndMembers ciUprevEAConstrs ciUtilsAddNTimes ciUtilsAddQuotes ciUtilsBuildString ciUtilsGetArgVal ciUtilsMakeNumberRange ciUtilsMakeUnique ciUtilsRemoveNils ciUtilsRepeatNTimes ciUtilsReplaceNils ciVariantInfoForFingersAndFingerWidth ciWithinConstraint ciXYInstSymmetricIterator ciXYNetSymmetricIterator ciXYPinSymmetricIterator ciXYSortInsts ciXYSymmetricIterator ciwAddTranslatorItem ciwCreateMenu ciwCreatePulldown ciwHiExit ciwMenuInit ciwMenuInstall ciwMenuLoadFile ciwRemoveTranslatorItem className classOf classp clear clearAll clearAllEnterFunctions clearExitProcs clearSubwindow clip clipX close closeResults cmdCtrlOption cmdOption cmdShiftOption colorIndex compare compareTime complex complexp compress compression compressionVRI compressionVRICurves concat cond conjugate conn2Sch conn2SchImpHdlDisplay conn2SchStartUp connectRules cons constar cont continue converge convolve copy copyDefstructDeep cos cosh count cpfAddCLPLibs cpfAddCLPSearchPath cpfDefineEquivalentExpression cpfDefinePowerSwitchInstance cpfExportPowerIntent cpfExtractPowerIntent cpfFindReferenceLibs cpfGetCLPLibs cpfGetCLPSearchPath cpfGetCellNetVoltage cpfGetDefaultPowerDomainPGNets cpfGetDevicePowerGroundNetPair cpfGetEquivalentExpression cpfGetInstancePowerGroundNetPair cpfGetMatchingGroundNet cpfGetMatchingGroundNets cpfGetModelPowerGroundNetPair cpfGetNetVoltage cpfGetNetVoltages cpfGetPowerDomainNamePrefix cpfGetPowerGroundNetPairs cpfGetPowerGroundNetVoltagePairs cpfGetPowerSwitchInstanceInfo cpfGetReferenceLibs cpfGetSpecialCellExcludeDataPins cpfGetUserNetlistConfigViewName cpfGetUserNetlistViewNameList cpfHiExportPowerIntent cpfHiPowerIntentExtractOptions cpfHiPropagateSignalType cpfIsNetExternalControlledShutoff cpfIsPowerSwitchInstance cpfRegDefaultPowerDomainPGNets cpfRegDevicePowerGroundNetPair cpfRegInstancePowerGroundNetPair cpfRegModelPowerGroundNetPair cpfRegPowerGroundNetPairs cpfRegisterPowerDomainNamePrefix cpfRegisterSpecialCell cpfRemoveCLPLib cpfRemoveCLPSearchPath cpfRemovePowerIntent cpfRemovePowerSwitchInstance cpfResetCLPLibs cpfSetCLPLibs cpfSetCLPSearchPath cpfSetCellNetVoltage cpfSetNetExternalControlledShutoff cpfSetNetVoltage cpfSetNetVoltages cpfSetPowerGroundNetVoltagePairs cpfSetPowerIntentExtractOptions cpfSetReferenceLibs cpfSetSpecialCellExcludeDataPins cpfSetUserNetlistConfigViewName cpfSetUserNetlistViewNameList cpfValidatePowerIntent cphClearCellPhysicalBinding cphClearInstPhysicalBinding cphClearOccurPhysicalBinding cphCloseConfig cphCloseWindow cphCreatePhysConfig cphDeleteCellFingerSplit cphDeleteCellIgnoreForCheck cphDeleteCellIgnoreForGen cphDeleteCellMFactorSplit cphDeleteCellParamIgnoreForCheck cphDeleteCellParamIgnoreForGen cphDeleteCellParamNameMapping cphDeleteCellRemoveDevice cphDeleteCellRounding cphDeleteCellSFactorSplit cphDeleteCellTermIgnoreForCheck cphDeleteCellTermIgnoreForGen cphDeleteCellTermNameMapping cphDeleteCellVPLGen cphDeleteInstFingerSplit cphDeleteInstIgnoreForCheck cphDeleteInstIgnoreForGen cphDeleteInstMFactorSplit cphDeleteInstParamIgnoreForCheck cphDeleteInstParamIgnoreForGen cphDeleteInstRemoveDevice cphDeleteInstRounding cphDeleteInstSFactorSplit cphDeleteInstTermIgnoreForCheck cphDeleteInstTermIgnoreForGen cphDeleteOccurFingerSplit cphDeleteOccurIgnoreForCheck cphDeleteOccurIgnoreForGen cphDeleteOccurMFactorSplit cphDeleteOccurParamIgnoreForCheck cphDeleteOccurParamIgnoreForGen cphDeleteOccurRemoveDevice cphDeleteOccurRounding cphDeleteOccurSFactorSplit cphDeleteOccurTermIgnoreForCheck cphDeleteOccurTermIgnoreForGen cphFindOpenConfig cphGetCell cphGetCellFingerSplit cphGetCellForceDescend cphGetCellIgnoreForCheck cphGetCellIgnoreForGen cphGetCellMFactorSplit cphGetCellParamIgnoreForCheck cphGetCellParamIgnoreForGen cphGetCellParamNameMapping cphGetCellPhysicalBinding cphGetCellPhysicalCell cphGetCellPhysicalLib cphGetCellPhysicalView cphGetCellRemoveDevice cphGetCellRounding cphGetCellSFactorSplit cphGetCellStopList cphGetCellTermIgnoreForCheck cphGetCellTermIgnoreForGen cphGetCellTermNameMapping cphGetCellVPLGen cphGetCellVPLGenParams cphGetCellViewBinding cphGetCellViewList cphGetCstList cphGetFingerSplit cphGetForceDescend cphGetIgnoreForCheck cphGetIgnoreForGen cphGetInstFingerSplit cphGetInstForceDescend cphGetInstIgnoreForCheck cphGetInstIgnoreForGen cphGetInstMFactorSplit cphGetInstParamIgnoreForCheck cphGetInstParamIgnoreForGen cphGetInstPhysicalCell cphGetInstPhysicalLib cphGetInstPhysicalView cphGetInstRemoveDevice cphGetInstRounding cphGetInstSFactorSplit cphGetInstStopList cphGetInstTermIgnoreForCheck cphGetInstTermIgnoreForGen cphGetInstViewBinding cphGetInstViewList cphGetLayoutXLConfig cphGetLib cphGetLibList cphGetMFactorSplit cphGetOccurFingerSplit cphGetOccurForceDescend cphGetOccurIgnoreForCheck cphGetOccurIgnoreForGen cphGetOccurMFactorSplit cphGetOccurParamIgnoreForCheck cphGetOccurParamIgnoreForGen cphGetOccurPhysicalCell cphGetOccurPhysicalLib cphGetOccurPhysicalView cphGetOccurRemoveDevice cphGetOccurRounding cphGetOccurSFactorSplit cphGetOccurStopList cphGetOccurTermIgnoreForCheck cphGetOccurTermIgnoreForGen cphGetOccurViewBinding cphGetOccurViewList cphGetParamIgnoreForCheck cphGetParamIgnoreForGen cphGetParamNameMapping cphGetPhysicalCell cphGetPhysicalLib cphGetPhysicalTermName cphGetPhysicalView cphGetRemoveDevice cphGetRounding cphGetSFactorSplit cphGetSelectedSet cphGetStopList cphGetStopPoint cphGetTermIgnoreForCheck cphGetTermIgnoreForGen cphGetTermNameMapping cphGetTopCellView cphGetView cphGetViewBinding cphGetViewList cphGetWinConfig cphGetWindowId cphIsConfigModified cphIsLeaf cphIsParamIgnoredForCheck cphIsParamIgnoredForGen cphIsRemoveDevice cphIsTermIgnoredForCheck cphIsTermIgnoredForGen cphIsUnderPhysConfig cphLaunchFromLayout cphOpenConfig cphOpenWindow cphSaveAsConfig cphSaveConfig cphSbAddIOPin cphSbDefineIOPinLabelFlag cphSbDefineObstruction cphSbDefineSoftBlock cphSbDelIOPin cphSbDelIOPinById cphSbDelObstruction cphSbDisplayAllIOPinsInfo cphSbDisplayBoundaryInfo cphSbDisplayIOPinInfo cphSbDisplayObstruction cphSbDisplaySoftBlockAttributes cphSbEditIOPin cphSbEditIOPinById cphSbEditSoftBlockAttributes cphSbGetAllIOPins cphSbGetFilteredIOPins cphSbGetIOPinId cphSbGetIOPinName cphSbGetSoftBlockId cphSbGetSoftBlocks cphSbIsValidIOPin cphSbLoadSoftBlocks cphSbRemoveSoftBlock cphSbSaveSoftBlocks cphSbSetPolygonalBoundary cphSbSetRectangularBoundary cphSbSetRectangularBoundaryUsingUtil cphSetCellFingerSplit cphSetCellForceDescend cphSetCellIgnoreForCheck cphSetCellIgnoreForGen cphSetCellMFactorSplit cphSetCellParamIgnoreForCheck cphSetCellParamIgnoreForGen cphSetCellParamNameMapping cphSetCellPhysicalBinding cphSetCellRemoveDevice cphSetCellRounding cphSetCellSFactorSplit cphSetCellStopList cphSetCellTermIgnoreForCheck cphSetCellTermIgnoreForGen cphSetCellTermNameMapping cphSetCellVPLGen cphSetCellVPLGenParams cphSetCellViewBinding cphSetCellViewList cphSetCstList cphSetInstFingerSplit cphSetInstForceDescend cphSetInstIgnoreForCheck cphSetInstIgnoreForGen cphSetInstMFactorSplit cphSetInstParamIgnoreForCheck cphSetInstParamIgnoreForGen cphSetInstPhysicalBinding cphSetInstRemoveDevice cphSetInstRounding cphSetInstSFactorSplit cphSetInstStopList cphSetInstStopPoint cphSetInstTermIgnoreForCheck cphSetInstTermIgnoreForGen cphSetInstViewBinding cphSetInstViewList cphSetLibList cphSetOccurFingerSplit cphSetOccurForceDescend cphSetOccurIgnoreForCheck cphSetOccurIgnoreForGen cphSetOccurMFactorSplit cphSetOccurParamIgnoreForCheck cphSetOccurParamIgnoreForGen cphSetOccurPhysicalBinding cphSetOccurRemoveDevice cphSetOccurRounding cphSetOccurSFactorSplit cphSetOccurStopList cphSetOccurStopPoint cphSetOccurTermIgnoreForCheck cphSetOccurTermIgnoreForGen cphSetOccurViewBinding cphSetOccurViewList cphSetStopList cphSetViewList cphUprevDesign cphUprevIncremental cphUprevLibrary cphVisitNextNode cphVisitStart cphVisitStop cphVisitedInstance cphVisitedPath cphVisitedSwitchMaster cphVisitedTarget cputime createDir createDirHier createFinalNetlist createNetlist cross csh cstAddToConstraintGroup cstCreateConstraint cstCreateConstraintGroupIn cstCreateConstraintGroupOn cstDeleteConstraint cstDeleteConstraintGroup cstFindConstraintGroupIn cstFindConstraintGroupOn cstFindFirstConstraint cstGet1DTableValue cstGet2DTableValue cstGetConstraintGroups cstGetDefaultConstraintGroupName cstGetTwoWidthTableValue cstGetUnreferencedConstraints cstIsId cstSetDefaultConstraintGroupName ctAddCellToCompTypeGroup ctCreateCompTypeGroup ctDeleteCellFromCompTypeGroup ctDeleteCompTypeGroup ctGetCellCompTypeGroup ctGetCompTypeCells ctGetCompTypeGroupAttr ctGetCompTypeNames ctSetCompTypeGroupAttr currentSubwindow currentWindow d2a dB10 dB20 dBm dagAddActionToObject dagCreateClass dagCreateNode dagDeleteActionFromObject dagDestroyNode dagDisplayTool dagGetCurrentObject dagGetCurrentTool dagLinkParentToChild dagNumToTool dagOpenTool dagPopTool dagPushTool dagRefreshObject dagSetActionStatus dagSetCurrentTool dagSetExpandedActionStatus dagSetFont dagUnlinkParentFromChild dataTrigger dataTypes db10 db20 dbAbutIsInteractive dbAddAreaToPinGroupGuide dbAddFigToFigGroup dbAddFigToNet dbAddFigToPin dbAddFigToPinGroupGuide dbAddFigsToPin dbAddObjectToGroup dbAddObjectsToMarker dbAddPinToPinGroupGuide dbAddPlaceAreaCompTypeSetDef dbAddPlaceAreaRailDef dbAddRowCompTypeSetDef dbAddRowRailDef dbAddStrapObject dbAllCellViews dbAreaBoundaryHasLayerPriorityOrder dbAreaBoundaryHasValidRoutingLayers dbBoundaryQuery dbCVHasInheritedSig dbCVHasInheritedTerm dbCVHasNetSetProp dbCellViewAreLayerShiftsValid dbCellViewClearLayerShifts dbCellViewHasLayerShifts dbCellViewInitForLayerShifting dbCellViewUpdateLayerShifts dbChangeGroupType dbCheckParamCell dbCheckRecursion dbClearPcellCache dbClose dbCloseBag dbColorShapeQuery dbCompressPointArray dbCompressionPlot dbComputeBBox dbComputeBBoxNoNLP dbConcatTransform dbConnectObject dbConvertArcToLine dbConvertDonutToPolygon dbConvertEllipseToPolygon dbConvertLineToPath dbConvertPathSegToPolygon dbConvertPathToPolygon dbConvertRectToPolygon dbCopyCellView dbCopyFig dbCopyProp dbCopyPropList dbCopyShape dbCopySingleProp dbCreateArc dbCreateAreaBlockage dbCreateAreaBoundary dbCreateAreaHalo dbCreateAreaPinGroupGuide dbCreateBusNetDef dbCreateBusTermDef dbCreateCluster dbCreateClusterBoundary dbCreateCompTypeSetDef dbCreateConn dbCreateConnByName dbCreateConnByNewName dbCreateCoverObstruction dbCreateCustomViaVariant dbCreateDiffMaskGroup dbCreateDonut dbCreateDot dbCreateEdgePinGroupGuide dbCreateEllipse dbCreateEnumProp dbCreateExtParamInst dbCreateExtParamInstByMasterName dbCreateFigGroup dbCreateGCellPattern dbCreateGroup dbCreateGuide dbCreateHierProp dbCreateInst dbCreateInstByMasterName dbCreateInstTerm dbCreateInstTermByPosition dbCreateLabel dbCreateLayerBlockage dbCreateLayerHalo dbCreateLib dbCreateLine dbCreateMarker dbCreateNet dbCreatePRBoundary dbCreateParamInst dbCreateParamInstByMasterName dbCreateParamSimpleMosaic dbCreateParamSimpleMosaicByMasterName dbCreatePath dbCreatePathSeg dbCreatePin dbCreatePlaceArea dbCreatePolygon dbCreateProp dbCreateRailDef dbCreateRangeProp dbCreateRect dbCreateRoute dbCreateRow dbCreateSameMaskGroup dbCreateSigNetExpr dbCreateSimpleMosaic dbCreateSnapBoundary dbCreateStdViaVariant dbCreateSteiner dbCreateStrap dbCreateStrongGroup dbCreateTerm dbCreateTermNetExpr dbCreateTextDisplay dbCreateTopology dbCreateTrackPattern dbCreateTrunk dbCreateTrunkConnect dbCreateTwig dbCreateUniqueNamedNet dbCreateVectorInstDef dbCreateVia dbCreateViaShapeArray dbCreateXformPCell dbDebugStats2 dbDefineProc dbDeleteAllNet dbDeleteAllTerminalAntennaRules dbDeleteEmptyNet dbDeleteGroupByName dbDeleteGroupMemberFromGroup dbDeleteObject dbDeleteObjectFromGroup dbDeletePropByName dbDeleteSigNetExpr dbDeleteStrap dbDeleteTermNetExpr dbDeleteTerminalAntennaRuleOnLayer dbDeleteTerminalAntennaRules dbDeleteTopology dbDeleteTrunk dbDeleteTrunkConnect dbDeleteTwig dbDisableCellViewCounter dbDisconnectObject dbDumpPcDefinePcell dbDumpPcell dbDumpPcellWithLib dbEnableCellViewCounter dbEnableUndo dbEvalParamCell dbExpandToMemNameExpr dbExternallyConnectPins dbFigGroupQuery dbFindAbutFig dbFindAnyInstByName dbFindAreaBoundaryByName dbFindBusNetDefByName dbFindBusTermDefByName dbFindClusterBoundaryByName dbFindClusterByName dbFindMemInstByName dbFindMosaicByName dbFindNetByName dbFindOpenBag dbFindOpenCellView dbFindPinGroupGuideByName dbFindProp dbFindRowByName dbFindRowHeader dbFindSigByAlias dbFindSigByName dbFindTermByName dbFindTermByPosition dbFindVectorInstDefByName dbFindViaHeaderByName dbFindViaVariantByName dbFix dbFixParamCell dbFlattenInst dbFlattenInst2 dbFreeze dbFullLibPath dbFullPath dbGet dbGetAnyInstSwitchMaster dbGetAreaBoundaryLayerPriorityOrder dbGetAreaBoundaryPinGroupGuide dbGetAreaBoundaryValidRoutingLayers dbGetAreaPinGroupGuideAreas dbGetBag dbGetBagDdId dbGetBagOwner dbGetBagTimeStamp dbGetBlockageColor dbGetBuildInfo dbGetCellViewCompTypeSetDef dbGetCellViewCounter dbGetCellViewDdId dbGetCellViewEEQMaster dbGetCellViewInheritedSig dbGetCellViewInheritedTerm dbGetCellViewNetVoltageRange dbGetCellViewPlaceArea dbGetCellViewRailDef dbGetCellViewSymmetry dbGetCellViewTopologies dbGetColorModel dbGetDatabaseType dbGetFigAbutName dbGetFigAbutRefName dbGetFigGroupByName dbGetFigPinGroupGuide dbGetFileDatabaseType dbGetFileTimeStamp dbGetFluidShapeByName dbGetGroupByName dbGetGroupsWithDef dbGetHierPathTransform dbGetInstByName dbGetInstNameNumInst dbGetInstTermStraps dbGetInstTermTwigs dbGetInstTransform dbGetInstanceByName dbGetIntegrationColorModel dbGetLibDataCompressionLevel dbGetMaxHierDepth dbGetMaxNumBit dbGetMemName dbGetMemNetSig dbGetMemNetSigName dbGetNameNumBit dbGetNeighbor dbGetNeighborList dbGetNetPowerDomain dbGetNetTerms dbGetNetTopologies dbGetNetVoltageRange dbGetNetVoltageRangeSource dbGetOpenBags dbGetOpenCellViews dbGetOverlaps dbGetPRBoundaryPinGroupGuides dbGetPathSegStyle dbGetPinConnection dbGetPinFigAccessDirection dbGetPinFigName dbGetPinFigPlacementStatus dbGetPinGroupGuideEdgeBoundary dbGetPinGroupGuideEdgeName dbGetPinGroupGuideEdgeStartOffset dbGetPinGroupGuideEdgeStopOffset dbGetPinGroupGuideKeepoutSpacing dbGetPinGroupGuideLayerPriorityOrder dbGetPinGroupGuideMinPinSpacing dbGetPinGroupGuideMinPinWidth dbGetPinGroupGuideValidRoutingLayers dbGetPinGroupGuides dbGetPinMinPinSpacing dbGetPinMinPinWidth dbGetPinPinGroupGuides dbGetPlaceAreaCompTypeSetDef dbGetPlaceAreaOrient dbGetPlaceAreaRailDef dbGetPlaceAreaUtilization dbGetPlacementGrid dbGetPropByName dbGetRedoHandles dbGetRowCompTypeSetDef dbGetRowRailDef dbGetSameMaskDiffMaskGroups dbGetShapeColor dbGetShapeSameMaskGroups dbGetShapeStraps dbGetShapeTwigs dbGetSigNameMemNets dbGetSigNetExpr dbGetSoftConnectTermConnectToLayer dbGetSoftConnectTermPinlessLayer dbGetStrapName dbGetStrapObjects dbGetStrapTopology dbGetStrapTwig dbGetStrongGroups dbGetTermGroundSensitivity dbGetTermNetExpr dbGetTermSupplySensitivity dbGetTerminalAntennaRuleOnLayer dbGetTerminalAntennaRules dbGetTopologyName dbGetTopologyNet dbGetTopologyObjects dbGetTopologyPatternType dbGetTrackPatternFirstTrackColor dbGetTrueOverlaps dbGetTrunkAnchor dbGetTrunkConnectName dbGetTrunkConnectTopology dbGetTrunkConnectTrunks dbGetTrunkDirection dbGetTrunkLongOffset1 dbGetTrunkLongOffset2 dbGetTrunkLongOffsetSource dbGetTrunkLongOffsetSource1 dbGetTrunkLongOffsetSource2 dbGetTrunkName dbGetTrunkOrthoOffset dbGetTrunkSide dbGetTrunkTopology dbGetTrunkTwigs dbGetTwigName dbGetTwigObject dbGetTwigPinName dbGetTwigTrunk dbGetUndoHandles dbGetVersion dbGetViaCutLayerControl dbGetViaLayer1Control dbGetViaLayer2Control dbGetViaStraps dbGetViaTwigs dbGetq dbGuideQuery dbHasExternalConnections dbHasFigAbutName dbHasFigAbutRefName dbHasInstance dbHasMustConnections dbHasShape dbHasShortedTerminals dbInstClearLayerShifts dbInstGetLayerShifts dbInstHasLayerShifts dbInstQuery dbInstSetLayerShifts dbIsAnyInstBaseNameUsed dbIsBagId dbIsBagReadable dbIsBagWritable dbIsBlockageColored dbIsBlockageColoringAllowed dbIsCellViewModified dbIsCellViewStdViaMaster dbIsConnCurrent dbIsFluidPcell dbIsId dbIsNetNameDescend dbIsObjectBound dbIsObjectConnected dbIsSameMaster dbIsShapeColorLocked dbIsShapeColored dbIsShapeColoringAllowed dbIsSigInherited dbIsSigNameGlobal dbIsTermInherited dbIsTermSoftConnect dbIsTopologyPatternId dbIsTrackPatternColorAlternating dbIsTrackPatternColored dbIsTrackPatternColoringAllowed dbIsVPLGen dbIsValidSigNetExpr dbIsValidTermNetExpr dbIsViaColorStateLocked dbLayerAnd dbLayerAndNot dbLayerBlockageQuery dbLayerEnclose dbLayerHoles dbLayerInside dbLayerNoHoles dbLayerOr dbLayerOutside dbLayerSize dbLayerStraddle dbLayerTile dbLayerXor dbMakeBagCurrent dbMakeNet dbMarkerQuery dbMergeNet dbMergeSignal dbMergeSingleProp dbMergeStrongGroups dbMoveChildNet dbMoveFig dbMoveGroupMember dbMovePinToNet dbMoveShape dbMustConnectPins dbNetHasTopology dbNetIsSig dbObjectHasConnection dbOpenAutoSavedCellView dbOpenBag dbOpenCellViewByType dbOpenHier dbOpenPanicCellView dbParseSigNetExpr dbParseTermNetExpr dbPinGroupGuideHasKeepoutSpacing dbPinGroupGuideHasLayerPriorityOrder dbPinGroupGuideHasMinPinSpacing dbPinGroupGuideHasMinPinWidth dbPinGroupGuideHasValidRoutingLayers dbPinHasMinPinSpacing dbPinHasMinPinWidth dbPlacementBlockageQuery dbPointArrayAnd dbPointArrayAndNot dbPointArrayOr dbPointArraySize dbPointArrayXor dbProduceMemName dbProduceOverlap dbProduceOverlapInst dbPurge dbPurgeBag dbReOpenBag dbRedoToHandle dbRefreshBag dbRefreshCellView dbRefreshLibDataCompressionLevel dbRegPostSaveAsTrigger dbRegPostSaveTrigger dbRegPurgeTrigger dbRegSaveTrigger dbRegVPLGenCreateCellName dbRemoveFigFromFigGroup dbRemoveObjectsFromMarker dbRemovePinGroupGuideEdge dbRemovePlaceAreaCompTypeSetDef dbRemovePlaceAreaRailDef dbRemoveRowCompTypeSetDef dbRemoveRowRailDef dbRemoveStrapObject dbRenameNet dbReopen dbReplaceEnumProp dbReplaceHierProp dbReplaceInstParamList dbReplaceParam dbReplaceProp dbReplacePropList dbReplaceRangeProp dbReplaceSigNetExpr dbReplaceTermNetExpr dbRowQuery dbSave dbSaveBag dbSavePcellCache dbSavePcellCacheForCV dbSavePcellCacheForCVOnly dbSearchCDF dbSearchPropByName dbSet dbSetAreaBoundaryLayerPriorityOrder dbSetAreaBoundaryValidRoutingLayers dbSetAutoSave dbSetBlockageColor dbSetBoundaryEdge dbSetCellViewEEQMaster dbSetCellViewNetVoltageRange dbSetCellViewSymmetry dbSetColorModel dbSetConnCurrent dbSetFigAbutName dbSetFigAbutRefName dbSetInstHeaderMasterName dbSetInstHeadersCounter dbSetIntegrationColorModel dbSetLibDataCompressionLevel dbSetNIMsgMode dbSetNetNameDescend dbSetNetPowerDomain dbSetNetVoltageRange dbSetNetVoltageRangeSource dbSetPathSegPoints dbSetPathSegStyle dbSetPinFigAccessDirection dbSetPinFigName dbSetPinFigPlacementStatus dbSetPinGroupGuideEdge dbSetPinGroupGuideEdgeStartOffset dbSetPinGroupGuideEdgeStopOffset dbSetPinGroupGuideKeepoutSpacing dbSetPinGroupGuideLayerPriorityOrder dbSetPinGroupGuideMinPinSpacing dbSetPinGroupGuideMinPinWidth dbSetPinGroupGuideValidRoutingLayers dbSetPinMinPinSpacing dbSetPinMinPinWidth dbSetPlaceAreaOrient dbSetPlaceAreaUtilization dbSetPlacementGrid dbSetShapeColor dbSetShapeColorLocked dbSetSoftConnectTermConnectToLayer dbSetSoftConnectTermPinlessLayer dbSetStrapName dbSetStrapTwig dbSetTermGroundSensitivity dbSetTermMustJoin dbSetTermSoftConnect dbSetTermSupplySensitivity dbSetTerminalAntennaRuleOnLayer dbSetTerminalAntennaRules dbSetTextDisplayNameValueVisible dbSetTopologyName dbSetTopologyNet dbSetTrackPatternColorAlternating dbSetTrackPatternFirstTrackColor dbSetTrunkAnchor dbSetTrunkConnectName dbSetTrunkConnectTrunks dbSetTrunkDirection dbSetTrunkLongOffset1 dbSetTrunkLongOffset2 dbSetTrunkLongOffsetSource dbSetTrunkLongOffsetSource1 dbSetTrunkLongOffsetSource2 dbSetTrunkName dbSetTrunkOrthoOffset dbSetTrunkSide dbSetTwigName dbSetTwigObject dbSetTwigPinName dbSetUndoHandle dbSetViaColorStateLocked dbSetViaCutLayerControl dbSetViaLayer1Control dbSetViaLayer2Control dbSetViaParamDefault dbSetViaShapePurpose dbSetq dbShapeQuery dbSoftConnectTermHasConnectToLayer dbSoftConnectTermHasPinlessLayer dbSteinerQuery dbStronglyConnectPins dbSubAreaFromPinGroupGuide dbSubFigFromNet dbSubFigFromPin dbSubFigFromPinGroupGuide dbSubFigsFromPin dbSubPinFromPinGroupGuide dbTransformAccessDirection dbTransformBBox dbTransformCellView dbTransformPoint dbTransformPointList dbUndefineProc dbUndoToHandle dbUnregPostSaveAsTrigger dbUnregPostSaveTrigger dbUnregPurgeTrigger dbUnregSaveTrigger dbUnregVPLGenCreateCellName dbUnsetAreaBoundaryLayerPriorityOrder dbUnsetAreaBoundaryValidRoutingLayers dbUnsetLibDataCompressionLevel dbUnsetNetVoltageRange dbUnsetNetVoltageRangeSource dbUnsetPinGroupGuideKeepoutSpacing dbUnsetPinGroupGuideLayerPriorityOrder dbUnsetPinGroupGuideMinPinSpacing dbUnsetPinGroupGuideMinPinWidth dbUnsetPinGroupGuideValidRoutingLayers dbUnsetPinMinPinSpacing dbUnsetPinMinPinWidth dbUnsetTermMustJoin dbUpdatePcellCache dbValidP dbViaQuery dbWeaklyConnectPins dbWriteSkill dbWriteSkillWithLib dbm dbobjectp dc dcmatchSummary ddAmUsingDM ddAutoCheckin ddAutoCheckout ddAutoCtlGetVars ddAutoCtlSetVars ddCatAddItem ddCatClose ddCatFindCat ddCatGetCatMembers ddCatGetCatName ddCatGetCellsNotInCat ddCatGetLibCats ddCatIsObjInCat ddCatOpen ddCatOpenEx ddCatRefresh ddCatRemove ddCatSave ddCatSubItem ddCheckin ddCheckout ddClearLibUnmanaged ddCreateLib ddDeleteLocal ddDeleteObj ddDumpLibList ddGetCoManagedSet ddGetForcedLib ddGetForcedLibEx ddGetLibList ddGetObj ddGetObjAccess ddGetObjAccessEx ddGetObjChildren ddGetObjChildrenEx ddGetObjDMSys ddGetObjFiles ddGetObjFilesEx ddGetObjGroup ddGetObjGroupEx ddGetObjLastModify ddGetObjLastModifyEx ddGetObjLib ddGetObjName ddGetObjOwner ddGetObjOwnerEx ddGetObjParent ddGetObjReadPath ddGetObjReadPathEx ddGetObjSize ddGetObjSizeEx ddGetObjType ddGetObjWritePath ddGetObjWritePathEx ddGetPathDMSys ddGetStartup ddGetTmpdirWarn ddGetTriggerList ddGetUpdatedLib ddIsId ddIsObjLibMarked ddIsObjReadable ddIsObjReadableEx ddIsObjWritable ddIsObjWritableEx ddIsPathManageable ddIsPathManaged ddLibHasTmpDir ddLibIs5X ddLockDescribe ddLockFree ddLockGetStatus ddLockPath ddLockSet ddLockSetEx ddMapGetDataTypeFileName ddMapGetDataTypeList ddMapGetFileDataType ddMapGetFileTool ddMapGetFileViewType ddMapGetToolNameDataType ddMapGetToolNameList ddMapGetToolNameViewType ddMapGetViewTypeFileName ddMapGetViewTypeList ddMapIsFileNameKnown ddMapIsToolLegal ddMapIsToolNameKnown ddMarkObjMaster ddNeedCheckout ddObjHasNamedObj ddObjHasNamedObjEx ddObjIsInMaster ddObjIsInTmp ddProduceObjRelNames ddProduceObjRelNamesEx ddRegTrigger ddReleaseObj ddSetForcedLib ddSetForcedLibEx ddSetLibDmType ddSetLibUnmanaged ddSetTmpdirWarn ddUnregTrigger ddUpdateLibList ddsAboutDFII ddsBrowserAction ddsCheckSessionName ddsCheckinPreferences ddsCheckoutPreferences ddsCloseLibManager ddsCvtAMSTranslateCell ddsCvtAMSTranslateLib ddsCvtToolBoxAMS ddsEditProp ddsEndSyncWithForm ddsFileBrowseCB ddsGetCurrentLib ddsGetCustomLibSelect ddsGetLibManLCV ddsGetServiceName ddsHiCloseData ddsHiCreateLibrary ddsHiDefragCellView ddsHiDefragLib ddsHiMakeReadOnly ddsHiOpenCdsLibEditor ddsHiPreferences ddsHiRefresh ddsLEWhatsNewAtStartup ddsOnLineHelp ddsOpenConvertToolBox ddsOpenLibManager ddsProgramName ddsRefresh ddsRegCustomLibSelect ddsServSelect ddsSetLibManLCV ddsSyncWithForm ddsUnregCustomLibSelect ddsUpdateSyncWithForm ddsViewDDProp ddsWhatsNew deBack deCopy deCustomizeToolbars deDisableApp deEditInPlace deEnableApp deFileNew deFileOpen deFindAssistant deFindPlugin deFindToolbar deForward deGetAllApplicationNames deGetAllRootTypes deGetAllViewTypes deGetAppClassInfo deGetAppInfo deGetCellView deGetConfigId deGetContext deGetEIP deGetEditCellView deGetEditContext deGetEditLevel deGetEditRootType deGetEditViewType deGetLowerTierApp deGetMaxEditLevel deGetMaxInContextLevel deGetPlugins deGetProbeContext deGetProbeTrigger deGetPushed deGetRootType deGetRootViewTypeList deGetVector deGetViewType deHiSetDefaultApplication deInheritEnabling deInheritMenus deInstallApp deInstallPlugin deIsEditInContext deManageToolbar deMapUserTypeToViewType deMapViewTypeToUserType deNew deNewCellView deOpen deOpenCellView dePush deRegApp deRegPlugin deRegProbeTrigger deRegUserTriggers deRemovePlugin deReturn deSetCellView deSetConfigId deSetContext deSetHistoryOpenMode deSetProbeContext deSetWorkspace deSwap deToggleAssistantVisibility deToggleAssistants deToggleToolbars deUnInheritEnabling deUnInheritMenus deUnRegApp deUnRegProbeTrigger deUnRegUserTriggers deUnmanageToolbar deViewTypeIsRegistered debugQuit debugStatus declare declareLambda declareNLambda declareSQNLambda defCapDepends defCapPrefixes defInitProc defMathConstants defUserInitProc defcell defclass defgeneric defglobalfun define definitionFile defmacro defmethod defprop defstruct defstructp defun defvar delay delete deleteChecks deleteDir deleteFile deleteJob deletePoint deleteSubckt deleteSubwindow deleteWaveform deoEnableTrigger deoExitTrigger deoGetAssistantList deoGetBindkeys deoMenuTrigger deoOnApplicationChange deoOnEvent deoOnTabSwitch deoPostInstallTrigger deoRequireToolbars deoUpdateToolbar deriv desVar design destructuringBind dft dftbb difference digitalHostMode digitalHostName disableAllChecks disableChecks disableDeviceChecking discipline display displayChecks displayMode displayNetlist displaySubckt dlAddArc dlAddBox dlAddCircle dlAddDonut dlAddEventObject dlAddPath dlAddPoint dlAddPolygon dlAddRasterText dlAddSegment dlAddSkillObject dlAddStrokeText dlAttachDlistToWidget dlAttachDlistToWindow dlClearDisplayList dlCloseWidget dlConfigureButton dlDetachDlistFromWidget dlDetachDlistFromWindow dlDisplay dlDlistToIcon dlDrawArc dlDrawBox dlDrawCircle dlDrawDonut dlDrawPath dlDrawPoint dlDrawPolygon dlDrawRasterText dlDrawSegment dlDrawStrokeText dlEnableItem dlFitDlistOnDraw dlMakeDisplayList dlMakeDlistButton dlMakePenTable dlMakeStipple dlMakeWidget dlMapWidget dlMoveButton dlResizeButton dlSaveDlist dlSetClearOnDraw dlSetCurrentPen dlSetDlistPosition dlSetDlistScale dlSetPenColor dlSetPenFillStyle dlSetPenFilled dlSetPenStipple dlSetPenTable dlSetWidgetName dlUnMapWidget dmAddCellToCategory dmCreateCellCategory dmRemoveCellCategory dmRemoveCellFromCategory dmbGetCurrentLib dmbLibBrowserFormDone dmbOpenLibBrowser dmbSetBrowserInteractions dmbSyncWithCellForm dmbSyncWithForm dmbUpdateBrowser dmvStart dnl do dplp dptActivate dptChangeColor dptColorLibrary dptCreateTrackPattern dptDeleteAllTrackPatterns dptGetAllColorGroups dptGetColorGroup dptGetColorModel dptGetLayerDefaultColor dptGetLayerTrackPatternConstraint dptGetTrackPatternPattern dptGetUnfoldedColor dptHasColorInfo dptHiStitch dptHiUnStitch dptHierUpdateColor dptIsShapeHierColorLocked dptIsTrackPatternFiltered dptLPPMergeToColor dptMakeDiffColor dptMakeSameColor dptMarkersToMaskColors dptPropagateLocks dptReColor dptReconstructStitch dptRemoveDiffColor dptRemoveSameColor dptRemoveTrackPatternFilters dptSaveAll dptSetColorModel dptSetLayerDefaultColor dptSetLayerTrackPatternConstraint dptSetTrackPatternFiltered dptSetTrackPatternPattern dptShowMaskColor dptUpdateColor drAddElem drCreateEmptyWaveform drCreateVec drCreateWaveform drDeleteColor drDeleteDisplay drDeleteLineStyle drDeletePacket drDeleteStipple drDumpDrf drFindPacket drGetColor drGetDisplay drGetDisplayIdList drGetDisplayName drGetDisplayNameList drGetElem drGetLineStyle drGetLineStyleIndexByName drGetPacket drGetPacketAlias drGetPacketFillStyle drGetPacketList drGetStipple drGetStippleIndexByName drGetWaveformXType drGetWaveformXVec drGetWaveformYType drGetWaveformYVec drIsDataVector drIsParamWave drIsWaveform drLoadDrf drPutWaveformXVec drPutWaveformYVec drSetElem drSetPacket drType drVectorLength drain drawEnterFun drbBrowseFormCB drdAddTarget drdBatchCheck drdBatchCheckLicenseAvailable drdCompactObjects drdCompactSelSet drdCompactorOptions drdEnablePixelThreshold drdIsPixelThresholdEnabled drdListConstraintCategoryRules drdRemoveTarget drdToggleSmartSnapMode drdVerifyObjects drdVerifySelSet dreInvokeDre drplACPRWithMask drplEvmBpsk drplJitter drplPacVolGnExpDen drplParamSweepRFJc drplParamSweepRFJcc drplRFJc drplRFJcc drplSwpHp drplSwpSp drplSwpYp drplSwpZm drplSwpZp dtpr dump dutyCycle dutycycle dwindow dwindowp eadRemoveParasitics ed edgeTriggeredEyeDiagram edi ediFinishStatus edifDisplay edifLayerNumMap edifinDisplay edifinMakeRenameString edifoutAddCellInfo edifoutAddInstInfo edifoutAddInterfaceInfo edifoutAddLibraryInfo edifoutAddNetInfo edifoutAddPortInfo edifoutAddViewInfo edifoutEditCellProperty edifoutEditInstProperty edifoutEditLibProperty edifoutEditNetProperty edifoutEditPortProperty edifoutEditProperty edifoutEditViewProperty edifoutMakeRenameString edit edl enableAllChecks enableChecks enableDeviceChecking enableTrigger encrypt enterArc enterBox enterCircle enterDonut enterEllipse enterLine enterMultiRep enterNumber enterPath enterPoint enterPoints enterPolygon enterScreenBox enterSegment enterString envCyclicIndexToString envCyclicStringToIndex envGetAvailableTools envGetDefVal envGetLoadedTools envGetModifiedTools envGetVal envGetVarType envIsToolModified envIsVal envLoadFile envLoadVals envOption envRegLoadDumpTrigger envRegSetTrigger envSetToolCurrValToDefault envSetToolDefaultToCurrVal envSetVal envSetVarCurrValToDefault envSetVarDefaultToCurrVal envStoreEnv eq equal eqv err error errset errsetstring eval evalstring evcdFile evcdInfoFile evenp evmOFDM evmQAM evmQpsk exists existss exit exp expandMacro expandMacroDeep expr expt eyeDiagram eyeMeasurement fallTime famAddValue famCreateFamily famEval famGetSweepName famGetSweepValues famIsFamily famMap famValue fboundp fileLength fileSeek fileTell fileTimeModified findClass findNamespace findSymbol finishEnterFun fix fix2 fixp flet flip float floatp floor fnlAbortNetlist fnlCurrentCell fnlCurrentCellCdsName fnlCurrentInst fnlCurrentInstCdsName fnlCurrentIteration fnlCurrentModelExtName fnlCurrentSig fnlCurrentSigPathName fnlGetGlobalSigNames fnlInstCdsNameExtName fnlPathList fnlPrint fnlSearchPropString fnlSigCdsNameExtName fnlTermCdsNameExtName fnlTermExtName fnlTopCell for forall foralls forcenode foreach foreachs fors fourEval fprintf freq freq_jitter frequency fscanf funcall ga gac gac_freq gac_gain gainBwProd gainMargin gc gcsummary gdmAddSpecToSpecList gdmCreateSpec gdmCreateSpecFromDDID gdmCreateSpecList gdmExecute gdmInspectSpec gdmIsSpecId gdmNextFromSpecList gdmObjIsCreated gdmRemovename gdmResetSpecList gdmSpecListp gdmSpecType gdmSpecp gdmcancel gdmci gdmco gdmdelete gdmexport gdmhistory gdmsetdefver gdmsetname gdmstatus gdmsubmit gdmupdate geAddHilightArc geAddHilightBlockage geAddHilightCircle geAddHilightDistance geAddHilightDonut geAddHilightDot geAddHilightEllipse geAddHilightFig geAddHilightLabel geAddHilightLine geAddHilightPath geAddHilightPathSeg geAddHilightPolygon geAddHilightRectangle geAddHilightRow geAddHilightRuler geAddHilightTrackPattern geAddInstProbe geAddNetProbe geAddNetProbeFromTo geAddPathProbe geAddSelectBox geAddSelectPoint geAddTermProbe geAdjustPoint geAdvWireSelection geAskOverwriteMode geBackgroundCellView geCellViewToDlist geCenter geChangeCellView geChangeEditMode geChangeHilightPacketName geClosePolygon geCompressPointArray geComputeQueryBbox geCoordp geCopySelSet geCreateBend geCreateHilightGroup geCreateHilightSet geCreateMarker geCreateMarkerByBBox geCreateMarkerByPoints geCreatePacket geCreateTaper geCreateTrl geCreateWindowHilightSet geCycleSelectNext geDSAFreeze geDeleteAllAreaViewLevel geDeleteAllHilightSet geDeleteAllInstViewLevel geDeleteAllMarker geDeleteAllProbe geDeleteAllWindowHilightSet geDeleteAreaViewLevel geDeleteHilightGroup geDeleteHilightObject geDeleteHilightSet geDeleteHilightSetInWindows geDeleteInstProbe geDeleteInstViewLevel geDeleteNetProbe geDeletePathProbe geDeleteProbe geDeleteSelSet geDeleteStoredSelectionSet geDeleteTermProbe geDeselectAll geDeselectAllFig geDeselectAllObject geDeselectArea geDeselectFig geDeselectFigNoFilter geDeselectFigPoint geDeselectObject geDeselectObjectNoFilter geDeselectObjectPoint geDeselectPoint geDeselectProtected geDeselectStoredSelectionSet geDisableBackgroundCellView geDiscardEdits geDispWinEnvProps geDrawHilightSet geEditInPlace geEditSelSet geEditSingleObject geEditToWindowPoint geEnableBackgroundCellView geEnterAddInstProbe geEnterAddNetProbe geEnterAddTermProbe geEnterDeleteInstProbe geEnterDeleteNetProbe geEnterDeleteTermProbe geEquivWindow geEquivWindowSet geExplainProbe geFindPathToCellViewInst geGetAdjustedPath geGetAllAreaViewLevel geGetAllInstViewLevel geGetAllProbe geGetAreaViewLevel geGetCellViewWindow geGetCrossProbeValue geGetCurrentHilightSet geGetCurrentWindowHilightSet geGetDisabledMenus geGetEditCellView geGetEditCellViewWindow geGetEditRep geGetEnablePredicate geGetFigHilightObjectId geGetHierMemInst geGetHilightObjectFigId geGetInstHier geGetInstHierPath geGetInstTransform geGetInstViewLevel geGetLockInfo geGetMarkerDisplayText geGetMarkerOwner geGetMarkerReason geGetMarkerType geGetObjectSelectedSet geGetPotentialSelection geGetProbeNetStopLevel geGetProbeUserLPP geGetScrollPercent geGetSelProtectedObjects geGetSelSet geGetSelSetCount geGetSelSetFigPoint geGetSelectedInstancesCount geGetSelectedSet geGetSortedSelectByLine geGetStoredSelectionSets geGetTopCellViewWindow geGetTopLevelCellView geGetWindowBox geGetWindowCellView geGetWindowRep geGetWindowSelProtectionHighlight geGetWindowSelProtectionSelectability geGetWindowStatus geHasMarker geHiCommonFindMarker geHiDeleteAllMarker geHiDeleteMarker geHiDisplaySelectionForm geHiDragFig geHiExplainMarker geHiFindMarker geHiSetSelProtectionEF geHiStoreSelectionForm geHiUnsetSelProtectionEF geHighlightProtected geInsertHilightObjectsInGroup geInstIdToFileSpec geIsAutoStoreSelectionOn geIsFigAllSelected geIsFigPartiallySelected geIsFigSelected geIsGraphicalWindow geIsMarkerShape geIsObjectAllSelected geIsObjectPartiallySelected geIsObjectSelected geIsPathReentrant geIsPolygonReentrant geIsSelProtection geIsValidHilightGroup geIsValidHilightId geIsValidHilightObject geIsValidHilightSet geLoadIcon geLoadNextProbe geLoadProbe geMakeProbeWithColor geMakeProbeWithLabel geMakeProbeWithOnColor geMakeProbeWithoutColor geNewWindow geOpen gePointQuery gePointToFig gePopHilightStack gePopWindowHilightStack gePrintAllProbe geProbeP gePush gePushHilightStack geQuerySelSet geRefresh geRefreshCellView geRefreshCellViews geRefreshWindow geRefreshWorldView geRegCrossProbeTrigger geRegSaveAllTrigger geResetBackgroundCellView geResetCellView geResetHilightSetHaloParameters geRestoreWinView geReturn geReturnToLevel geSave geSaveAs geSaveHier geSaveIcon geSaveProbe geSaveWinView geScroll geSelObjectsPartiallySelected geSelectAll geSelectAllFig geSelectArea geSelectByline geSelectFig geSelectFigNoFilter geSelectFigPoint geSelectFigs geSelectNextAutoStoreSet geSelectNextInSelSet geSelectObject geSelectObjectNoFilter geSelectPoint geSelectPreviousAutoStoreSet geSelectPreviousInSelSet geSelectProtected geSelectStoredSelectionSet geSelectToggleObject geSelectViaPile geSetAreaViewLevel geSetAutoStoreSelection geSetBackgroundCellView geSetCrossProbeValue geSetEnablePredicate geSetEnterFunctionSelectionMode geSetHilightSetHaloParameters geSetInstViewLevel geSetLimitedProbe geSetMaxCreatedProbe geSetProbeDirection geSetProbeNetStopLevel geSetProbeUserLPP geSetScrollPercent geSetSelProtection geSetSelProtectionAllObjects geSetSelProtectionHighlightOptionForm geSetSelProtectionHighlightOptions geSetWindowStatus geShareWindowHilightSet geShift geSingleSelectBox geSingleSelectPoint geStoreSelectionSet geSubSelectBox geSubSelectPoint geSwitch geToggleAreaSelectOption geToggleFilterSize geTogglePartialSelect geToggleWindowSelProtectionHighlight geToggleWindowSelProtectionSelectability geTransformUserBBox geTransformUserPoint geUnRegCrossProbeTrigger geUnhighlightProtected geUnsetAllSelProtection geUnsetSelProtection geUpdateWindowMenus geValidateWindow geWindowToEditPoint geWriteCellView geZoomToBackgroundAndEditCV geZoomToBackgroundCV geZoomToGrid geiLoadProbe geiSaveProbe gensym geqp get getAllLoadedFiles getApplicableMethods getAsciiWave getCallingFunction getCompatContextVersion getCurSaveContextVersion getCurrentTime getCurrentWindow getData getDependents getDirFiles getFnWriteProtect getFunType getFunctions getGFbyClass getGFproxy getInstallPath getLogin getMaxScreenCoords getMethodName getMethodRole getMethodSpec getMethodSpecializers getNativeContextVersion getOutstring getPrompts getResult getSG getShellEnvVar getSkillPath getSkillVersion getSymbolNamespace getTempDir getVarWriteProtect getVersion getWarn getWorkingDir get_filename get_pname get_string getc getchar getd getq getqq gets globalProc globalSigAlias globalSignal gmax gmin gmsg gmux go gp gpc gpc_freq gpc_gain graphicsOff graphicsOn greaterp groupDelay gt hardCopy hardCopyOptions harmonic harmonicFreq harmonicFreqList harmonicList hdbAddConfigToBag hdbBind hdbClose hdbCloseConfigsInBag hdbCreateConfigBag hdbCreatePathVector hdbCreatePathVectorStack hdbDestroyPathVector hdbExplainBinding hdbExplainSignature hdbExplainStop hdbGetCellName hdbGetLibName hdbGetPathStackStr hdbGetPathStr hdbGetPathVectorStackTop hdbGetTopCellName hdbGetTopLibName hdbGetTopViewName hdbGetViewName hdbIsAtStopPoint hdbIsConfig hdbIsOpenConfig hdbOpen hdbPopCell hdbPopPathVect hdbPushCell hdbPushPathVect hdbReOpenNewConfig hdbSave hdbSaveAs hdbSetDefaultLibListString hdbSetDefaultStopListString hdbSetDefaultViewListString hdbSetObjBindRule hdbSetTopCellViewName heHiEditConfig heHiSetInstBinding heHiShowViewsFound heHiUpdate help hiAbout hiAbsolutePan hiAddCyclicChoice hiAddField hiAddFields hiAddFixedMenu hiAddMenuItem hiAddNonRepeatPrefix hiAddTextWordDelimiter hiAddToolbarItem hiAddToolbarItems hiAdvanceProgressBarOneStep hiAppendInputCmd hiApplyWinConfig hiBindKeyModifiers hiBoxCenter hiCancelProgressBox hiChangeBannerLabel hiChangeFormCallback hiChangeFormTitle hiCheckAbort hiClearCurrentTextSelection hiCloseWindow hiCollapseTreeItem hiConfigureBindKeys hiCreate2DMenu hiCreateAction hiCreateAppForm hiCreateBBoxField hiCreateBooleanButton hiCreateButton hiCreateButtonBoxField hiCreateColorArray hiCreateComboField hiCreateCyclicField hiCreateDockWindow hiCreateFileSelectorField hiCreateFloatField hiCreateFloatSpinBox hiCreateForm hiCreateFormButton hiCreateFormLabel hiCreateFrameField hiCreateHorizontalFixedMenu hiCreateHypertextField hiCreateIntField hiCreateLabel hiCreateLayerCyclicField hiCreateListBoxField hiCreateListField hiCreateMLTextField hiCreateMenu hiCreateMenuItem hiCreateOptionsForm hiCreateOutputStringField hiCreatePointField hiCreatePointListField hiCreatePulldownMenu hiCreateRadioField hiCreateReportField hiCreateScaleField hiCreateScrollRegion hiCreateSeparatorField hiCreateSeparatorMenuItem hiCreateSimpleHypertextField hiCreateSimpleMenu hiCreateSliderMenuItem hiCreateSpinBox hiCreateStringField hiCreateTabField hiCreateToggleField hiCreateToolbar hiCreateToolbarComboBox hiCreateToolbarSeparator hiCreateToolbarTypein hiCreateTree hiCreateTreeItem hiCreateTreeTable hiCreateVerticalFixedMenu hiCreateWindow hiCreateWorldView hiDBoxCancel hiDBoxOK hiDeiconifyWindow hiDeleteBannerLabel hiDeleteBannerMenu hiDeleteBannerMenus hiDeleteField hiDeleteFields hiDeleteForm hiDeleteMenu hiDeleteMenuItem hiDeleteToolbar hiDeleteToolbarItem hiDeleteToolbarItems hiDeltaPan hiDisableAsstBindKeyPrefix hiDisableMenuItem hiDisableTailViewfile hiDisplayAppDBox hiDisplayBlockingDBox hiDisplayColorDialog hiDisplayFileDialog hiDisplayFixedMenu hiDisplayForm hiDisplayHistory hiDisplayListBox hiDisplayMenu hiDisplayModalDBox hiDisplayModelessDBox hiDisplayNonBlockingDBox hiDisplayProgressBox hiDisplaySaveForRestoreDialog hiDisplayUserDBox hiDisplayWindow hiDisplayWindowMenu hiDockWindow hiDynamicPanAbsolute hiDynamicPanGrabbing hiDynamicPanInteractive hiDynamicPanRelative hiEditPropList hiEditfile hiEnableAsstBindKeyPrefix hiEnableBlink hiEnableMenuItem hiEnableTailViewfile hiEncap hiEndLog hiEnqueueCmd hiEscapeHTMLTags hiEscapeStringChars hiExpandTreeItem hiExportImage hiExportImageDialog hiFileDialogDone hiFileDialogSelection hiFileDialogSetSelection hiFixedMenuDown hiFlush hiFlushCIW hiFlushLogFile hiFocusToCIW hiFocusToCursor hiFocusToEncap hiFormApply hiFormCancel hiFormClose hiFormDefaults hiFormDone hiFormFinish hiFormList hiFormUnmap hiGenTextIndex hiGenerateThumbnails hiGetAbsWindowScreenBBox hiGetActiveTabWindow hiGetAnyFile hiGetAppType hiGetAttention hiGetBBoxResource hiGetBannerLabels hiGetBannerMenus hiGetBannerPoint hiGetBeepVolume hiGetBindKey hiGetBindKeyInheritAlias hiGetBindKeyInheritRoot hiGetBindKeyPrefixList hiGetBindKeys hiGetButtonAreaHeight hiGetCIWindow hiGetClipboard hiGetCommandPoint hiGetCurrentCmd hiGetCurrentField hiGetCurrentForm hiGetCurrentIndex hiGetCurrentTextSelection hiGetCurrentTextSelectionLoc hiGetCurrentWindow hiGetCursor hiGetDBoxDefaultLocation hiGetDbuPoint hiGetDefaultThumbnail hiGetDefaultThumbnailResolution hiGetDisabledAsstBindKeyPrefixes hiGetDisplayName hiGetDrawThruDelta hiGetEFDrawThruDelta hiGetEFunCursor hiGetEncapSkillCmd hiGetExistingDirectory hiGetExistingFile hiGetExistingFiles hiGetFieldInfo hiGetFieldOverlaps hiGetFieldScope hiGetFont hiGetFormLocation hiGetFormSize hiGetGeometryResource hiGetHelp hiGetIconName hiGetInsertionPosition hiGetLayerCyclicValue hiGetListBoxFieldFit hiGetListBoxValue hiGetLogFileName hiGetMagnifierSize hiGetMaxScreenCoords hiGetMenuItems hiGetMouseMoveSampleRate hiGetMouseStopDetectTime hiGetMultiClickTime hiGetNonRepeatPrefixes hiGetNumMenus hiGetNumVisibleItems hiGetPoint hiGetProgress hiGetProgressBarCurrentStep hiGetProgressBarTotalSteps hiGetProgressTotalSteps hiGetRepeatCommand hiGetScreenPoint hiGetScreenSize hiGetScrollBarInfo hiGetSessionWindow hiGetSharedIcon hiGetStringResource hiGetStrokeBBox hiGetStrokeFirstPt hiGetStrokeLastPt hiGetTextCharAtLoc hiGetTextClass hiGetTextDispLoc hiGetTextFieldFit hiGetTextIndexLoc hiGetTextLineColumn hiGetTextSelByLoc hiGetTextSelection hiGetTextSourceLength hiGetTextWidth hiGetTextWordDelimiter hiGetThumbnailFilename hiGetToolbarObjName hiGetTopListItem hiGetTree hiGetTreeItemDescription hiGetTreeItemIcons hiGetTreeItemParent hiGetTreeItems hiGetTreeParent hiGetUndoLimit hiGetUserAbort hiGetViewBBox hiGetWMOffsets hiGetWidgetType hiGetWinConfig hiGetWinConfigInfo hiGetWinObjName hiGetWindowDisplayState hiGetWindowFixedMenu hiGetWindowIconifyState hiGetWindowList hiGetWindowMenu hiGetWindowName hiGetWindowState hiGetWindowToolbars hiGoToIndex hiGoToLine hiGraphicMode hiHelp hiHideProgressBar hiHideToolbar hiHighlightField hiHypertextReadin hiHypertextReplace hiHypertextScroll hiIconifyWindow hiIgnoreProp hiInEnterFun hiInFormApply hiInheritBindKey hiInsertBannerMenu hiInsertMenuItem hiInsertToolbar hiInsertToolbarItem hiInsertToolbarItems hiInstantiateForm hiIs2DMenu hiIsBlinkEnabled hiIsForm hiIsFormDisplayed hiIsIcon hiIsInFieldCancel hiIsInReplay hiIsInstantiated hiIsMagnifierAnchored hiIsMagnifierOpened hiIsMenu hiIsMenuItemEnabled hiIsMenuSlotFilled hiIsProgressBoxCancelled hiIsScrollRegion hiIsWidgetType hiIsWindowSpecifier hiItemInsertTree hiItemRemoveTree hiLaunchBrowser hiLayerDispMainForm hiLayerMatchCyclicStr hiLayerStringToLPP hiListBoxCancel hiListBoxDone hiListView hiLoadIconData hiLoadIconFile hiLoadImageFile hiLogDragEvents hiLookupHRFtag hiLowerTab hiLowerWindow hiMakeLPChoiceList hiMapWindow hiMarkNestable hiMarkNonNestable hiMatchColor hiMatchColorByName hiModalDBoxHelp hiModelessDBoxHelp hiMoveField hiMoveFixedMenu hiMoveInsBarToEnd hiMoveToFormField hiMoveWindow hiNextWinView hiOffsetField hiOffsetFields hiOpenWindow hiPan hiPickWindow hiPlaceToolbar hiPrevWinView hiPrintToLogFile hiQueryFont hiQuit hiRaiseTab hiRaiseWindow hiReadWinConfig hiReattachField hiReattachToolbar hiRedo hiRedraw hiRefreshTextWindow hiRegCloseProc hiRegCurWindowTrigger hiRegSetBindKeyProc hiRegTimer hiRegZoomPanProc hiRegisterBindKeyPrefix hiRemoveFixedMenu hiRemoveNonRepeatPrefix hiRemovePromptLine hiRemoveTextWordDelimiter hiRepeat hiReplaceAllBannerMenus hiReplaceTextWordDelimiter hiReplayFile hiReportDeselectAllItems hiReportDeselectItem hiReportDeselectItems hiReportGetSelectedItems hiReportSelectAllItems hiReportSelectItem hiReportSelectItems hiResetAbort hiResetProgressBox hiResizeField hiResizeMagnifier hiResizeWindow hiRestoreView hiSaveAsViewfile hiSaveForRestore hiSaveIconData hiSaveView hiSaveViewfile hiSaveWinConfig hiScaleBox hiScaleMagnifier hiScrollWindowBottom hiScrollWindowDown hiScrollWindowLeft hiScrollWindowRight hiScrollWindowToCurrentIndex hiScrollWindowToIndex hiScrollWindowToName hiScrollWindowTop hiScrollWindowUp hiSelectTextByLoc hiSetAbort hiSetActionChecked hiSetBeepVolume hiSetBindKey hiSetBindKeys hiSetButtonIcon hiSetButtonLabel hiSetCallbackStatus hiSetCurrentField hiSetCurrentForm hiSetCurrentIndex hiSetCurrentTextSelectionLoc hiSetCurrentWindow hiSetCursor hiSetDBoxDefaultLocation hiSetDisabledIcon hiSetDrawThruDelta hiSetEFDrawThruDelta hiSetEFunCursor hiSetEncapHistory hiSetEncapPrompt hiSetEncapSkillCmd hiSetFieldEditable hiSetFieldEnabled hiSetFilter hiSetFilterOptions hiSetFont hiSetFormBlock hiSetFormButtonEnabled hiSetFormHighlights hiSetFormMinMaxSize hiSetFormName hiSetFormPosition hiSetFormSize hiSetFormToDefaults hiSetIconName hiSetInsertionPosition hiSetLayerCyclicValue hiSetListItemCenter hiSetListItemVisible hiSetMenuItemCallback hiSetMenuItemStatusTip hiSetMenuItemText hiSetMouseMoveSampleRate hiSetMouseStopDetectTime hiSetMultiClickTime hiSetProgress hiSetProgressAndText hiSetProgressBannerText hiSetProgressBar hiSetProgressButtonText hiSetProgressLabel hiSetProgressText hiSetProgressTotalSteps hiSetScrollBarValue hiSetSessionFocus hiSetShadowMode hiSetSplashBackground hiSetSplashDefaultBackground hiSetSplashFamily hiSetSplashIcon hiSetSplashLicense hiSetSplashProduct hiSetTabWindowIcon hiSetTabWindowTip hiSetTabWindowTitle hiSetTextClass hiSetTextHighlightColor hiSetTextSelectAll hiSetTextSelection hiSetToolbarObjName hiSetTopListItem hiSetTreeItemDescription hiSetTreeItemIcons hiSetUndoLimit hiSetUserPreferences hiSetViewfile hiSetWinObjName hiSetWinStyle hiSetWindowAtts hiSetWindowDefaultPrompt hiSetWindowFocus hiSetWindowIcon hiSetWindowMenu hiSetWindowName hiShowBindKeys hiShowBindKeysByAppType hiShowBindKeysByWindow hiShowFieldBorders hiShowListBox hiShowProgressBar hiShowToolbar hiSleep hiStartGenTextIndex hiStartLog hiStoreFormLocation hiStringToIcon hiStroke hiSwapTreeItemSelectionIcons hiSwitchWindowType hiSynchronize hiTextDisplayString hiTextWidth hiToggleAnchorMagnifier hiToggleEnterForm hiToggleMagnifier hiToggleMagnifierResolution hiTreeAppendItem hiTreeAppendItems hiTreePrependItem hiTreePrependItems hiTreeRemoveAllItems hiTreeRemoveItem hiTreeRemoveItems hiTreeTableDeselectAllItems hiTreeTableDeselectItem hiTreeTableDeselectItems hiTreeTableGetExpandedItemCount hiTreeTableGetExpandedItems hiTreeTableGetItemCount hiTreeTableGetItems hiTreeTableGetSelectedItemCount hiTreeTableGetSelectedItems hiTreeTableSelectAllItems hiTreeTableSelectItem hiTreeTableSelectItems hiUndo hiUndockWindow hiUnmapWindow hiUnregCloseProc hiUnregCurWindowTrigger hiUnregZoomPanProc hiUnselectText hiUnselectTextAll hiUnselectTextByLoc hiUnselectTextClass hiUpdate hiUpdateFormBlock hiUpdateMagOptions hiUpdateTextSelectionColors hiUseMagnifierResolution hiUsingMagnifierResolution hiVectorPan hiViewfile hiWinConfigModified hiWindowSaveImage hiZoomAbsoluteScale hiZoomExpandAtMouse hiZoomExpandAtPoint hiZoomIn hiZoomInAtMouse hiZoomInMagnifier hiZoomOut hiZoomOutAtMouse hiZoomOutMagnifier hiZoomRelativeScale hiZoomWindowAtMouse hiZoomWindowAtPoint histo histogram2D history hlcheck hnlAbortNetlist hnlAddExtraParameters hnlCDLPrintBJTElement hnlCDLPrintBSIM3SOIElement hnlCDLPrintCapElement hnlCDLPrintCapacitorElement hnlCDLPrintCds_Thru hnlCDLPrintDiodeElement hnlCDLPrintGeneralElement hnlCDLPrintICIsrcElement hnlCDLPrintICVsrcElement hnlCDLPrintInductorElement hnlCDLPrintIsrcElement hnlCDLPrintJfetElement hnlCDLPrintMultiCNPNElement hnlCDLPrintMultiCPNPElement hnlCDLPrintMultiENPNElement hnlCDLPrintMultiEPNPElement hnlCDLPrintNMOSfetElement hnlCDLPrintNPNElement hnlCDLPrintPMOSfetElement hnlCDLPrintPNPElement hnlCDLPrintResElement hnlCDLPrintResistorElement hnlCDLPrintSchottkyTranElement hnlCDLPrintTlineElement hnlCDLPrintVCIsrcElement hnlCDLPrintVCVsrcElement hnlCDLPrintVsrcElement hnlCatIncrementalNetlistFiles hnlCellExtracted hnlCellInAllCells hnlCloseCellFiles hnlCloseMasterList hnlCompletePrint hnlDoInstBased hnlDoNetBased hnlEMHGetDigitaGlobalNets hnlEMHGetDigitalNetlistFileName hnlEMHSetVerbosityLevel hnlFindAllCells hnlFindAllInstInCell hnlGenIncludeFile hnlGetCellHdbProps hnlGetGlobalModelMappedName hnlGetGlobalNetMappedName hnlGetInstanceCount hnlGetMappedInstNames hnlGetMappedModelNames hnlGetMappedNames hnlGetMappedNetNames hnlGetMasterCells hnlGetPropVal hnlGetRoundProp hnlGetScaleCapacitance hnlGetScaleMarginalDelay hnlGetScaleTimeUnit hnlGetSimulator hnlGetSourceFile hnlGetSourceFileModels hnlGetSymbolPropVal hnlGetTermByName hnlGetTermNameOfSig hnlHspiceInstPropVal hnlHspicePrintInstPropEqVal hnlHspicePrintInstPropVal hnlHspicePrintMOSfetModel hnlHspicePrintNMOSfetElement hnlIfNoProcedure hnlIgnoreTerm hnlInitMap hnlInitPrint hnlIsAPatchCord hnlIsAStoppingCell hnlIsCellNetlistable hnlIsCurrentInstStopping hnlMakeNetlistFileName hnlMapCellModuleName hnlMapCellName hnlMapInstName hnlMapModelName hnlMapName hnlMapNetName hnlMapTermName hnlMultipleCells hnlNameOfSignal hnlNetNameOnTerm hnlNetNameOnTermName hnlNmpSetNameSpaces hnlOpenTopCell hnlPcellIsParamOverridden hnlPrintDevices hnlPrintMessage hnlPrintNetlist hnlPrintSignal hnlPrintString hnlRunNetlister hnlScaleCapacitance hnlScaleMarginalDelay hnlScaleTimeUnit hnlSetCellFiles hnlSetDef hnlSetMappingType hnlSetPseudoTermDir hnlSetVars hnlSortTerms hnlSortTermsToNets hnlStartNetlist hnlStopNetlist hnlStringToList hnlVerilogPrintBehaveModel hnlVerilogPrintBehavePortOrder hnlVerilogPrintBidiXfr hnlVerilogPrintBufif0Notif0 hnlVerilogPrintBufif1Notif1 hnlVerilogPrintCmos hnlVerilogPrintLibraryModel hnlVerilogPrintLogGate hnlVerilogPrintNmosPmos hnlVerilogPrintPrimGate hnlVerilogPrintVhdlImport hnlWriteBlockControlFile hnlWriteMap hnllsCVInUserStopCVList hostMode hostName hsmDeselect hsmGetSelectedSet hsmSelect i ic iccIsConnected iccSendCommand iccSendSkillCommand idfHiAbout if ifreq ih iim iinteg ilAddTopLevelErrorHandler ilDebugCountLevels ilGetGFbyClass ilGetIdeSessionWindow ilRemoveMethod ilRemoveTopLevelErrorHandler ilSlotBoundp ilToolBox ilgAddRecentFiles ilgInvokeIDE ilgLastDir ilgRunSKILLIDE ilgSetLastDir im imag impHdlDisplay importSkillVar importSymbol inNext inScheme inSkill inStepOut include includeFile index infile info initializeInstance inl inportp installDebugger instring int intToChar integ integerp intersect ip ip3Plot ipcActivateBatch ipcActivateMessages ipcBatchProcess ipcBeginProcess ipcCloseProcess ipcContProcess ipcGetExitStatus ipcGetPid ipcGetPriority ipcIsActiveProcess ipcIsAliveProcess ipcKillAllProcesses ipcKillProcess ipcReadProcess ipcSetPriority ipcSkillProcess ipcSleep ipcSoftInterrupt ipcStopProcess ipcWait ipcWaitForProcess ipcWriteProcess ipn ipnVRI ipnVRICurves iqCreateDummyCell ir isBBox isCallable isClass isContextLoaded isDir isExecutable isFile isFileEncrypted isFileName isInfinity isLargeFile isLink isLocation isMacro isNaN isPortAtEOF isReadable isVarImported isWritable iseCloseSchWindow iseCloseSimWindow iseCompleteInteractive iseEnterNodeNamesList iseExitSimulator iseGetExtName iseGetInputFromEncapWindow iseGetMappedProbeList iseGetProbeList iseInitSchematicWindow iseInitSimWindow iseNetExtNameCdsName iseOpenWindows isePrintName isePrintNameCB isePrintSimulatorCommand iseReleaseNodeFrom iseSearchForASchWindow iseSendOutputToEncapHistory iseSetEncapBindKeys iseSetNodeTo iseSimulate iseStartInteractive iseStartSimulator iseUpdateNetlist iseUpdateStimulus itime ivCallProc ivCompilingFor ivConcICe ivCreatePCells ivDRC ivERC ivExtract ivGetCellView ivLVS ivVerify kf killJob labels lambda last lbuiGetCheckedOutLicenses lbuiPrintLicenseUseReport lceClearLogicalConn lceExtract lceExtractArea lceGetExtractLayers lceGetFracturedShapes lceGetFracturedShapesFromNet lceGetIncompleteNets lceGetOption lceHiExtract lceHierExtract lceIsExtractLayer lcePrintExtractLayers lcePrintExtractVias lcePrintTechLibExtractLayers lcePrintTechLibExtractVias lceSetOption lconc ldtrDefReadOA ldtrDefWriteOA ldtrLefReadOA ldtrLefWriteOA leAlign leApplyAreaFunction leApplyLastCopyTransform leArrowFunc leAttachFig leBalloonCycleThru leBalloonToggleOnOff leChopShape leClearAllRuler leCloseWindow leConvertInstToMosaic leConvertShapeToPathSeg leConvertShapeToPolygon leCreateAutoPin leCreatePath leCreatePin leCreateRuler leCycleSnapModes leCycleSnapPatternDisplay leDefineExternalPins leDefineInternalPins leDefineMPPTemplate leDefinePPPins leDefineWeaklyConnectedPins leDeiconifyLSW leDescend leDesignSummary leDoubleClick leEIPZoomAbsoluteScale leEditDesignProperties leEditInPlace leEnvLoad leExportLabel leFinishTrunk leFinishWire leFlattenInst leFreezeInst leFullSelectFigOfSelSet leGetAreaEstimationDisplayNames leGetAreaEstimatorFunction leGetAreaEstimatorParamList leGetAreaEstimatorRunMode leGetCoordinateForm leGetEditFigGroup leGetEntryLayer leGetEnv leGetGlobalGridsVisible leGetLSWBBox leGetLocalGridsVisible leGetObjectSelectable leGetObjectVisible leGetRefPoint leGetSnapPatternVisible leGetSnapToSPTransform leGetTechFormList leGetValidLayerList leGetValidPurposeList leHiAbout leHiAddShapeToNet leHiAddToGroup leHiAddWireVia leHiAlign leHiAttach leHiBatchChecker leHiCancelStitch leHiCellviewTrackPatterns leHiChop leHiClearRuler leHiClearRulerInHier leHiConvertInstToMosaic leHiConvertPolygonToPath leHiConvertShapeToPathSeg leHiConvertShapeToPolygon leHiCopy leHiCreateAreaBoundary leHiCreateBend leHiCreateBlockage leHiCreateBus leHiCreateChoiceOfPin leHiCreateCircle leHiCreateClusterBoundary leHiCreateClusters leHiCreateDonut leHiCreateEllipse leHiCreateGeometricWire leHiCreateGroup leHiCreateGuardRing leHiCreateInst leHiCreateLabel leHiCreatePRBoundary leHiCreatePath leHiCreatePin leHiCreatePinsFromLabels leHiCreatePlacementArea leHiCreatePolygon leHiCreateRect leHiCreateRow leHiCreateRuler leHiCreateSlot leHiCreateSnapBoundary leHiCreateTaper leHiCreateTrl leHiCreateVia leHiCreateWire leHiDelete leHiDeleteAllAreaViewLevel leHiDeleteAreaViewLevel leHiDeleteShapeFromNet leHiDescend leHiDisplayPadOpeningInfoForm leHiDisplayStartRouterForm leHiDisplayTechGraphForm leHiEditBalloonOptions leHiEditDRDOptions leHiEditDRDRuleOptions leHiEditDisplayOptions leHiEditDynamicMeasurementOptions leHiEditEditorOptions leHiEditInPlace leHiEditObjectInfo leHiEditProp leHiEditSlot leHiEditTbOptions leHiFlatten leHiFlip leHiGuidedRouting leHiGuidedRoutingReverseEnvelope leHiLayerGen leHiLayerTap leHiMakeCell leHiMarkNet leHiMerge leHiModifyCorner leHiMousePopUp leHiMove leHiMoveOrigin leHiOptionLayer leHiP2P leHiPaste leHiPlotQueueStatus leHiPropagateNets leHiQuery leHiQuickAlign leHiReShape leHiRemasterInstances leHiRemoveFromGroup leHiRepeatCopy leHiRotate leHiSave leHiSaveACopy leHiSaveAllHighLightMarkNet leHiSaveHier leHiSearch leHiSetAreaViewLevel leHiSetRefPoint leHiSetValidLayer leHiShowAngles leHiShowCoords leHiShowSelSet leHiSize leHiSplit leHiStitchToLayer leHiStretch leHiSubmitPlot leHiSummary leHiTree leHiUngroup leHiUnmarkNet leHiUnmarkNetAll leHiYank leIconifyLSW leIsFigSelectable leIsInstSelectable leIsLSWIconified leIsLayerSelectable leIsLayerValid leIsLayerVisible leIsNewODCInfraEnabled leIsPinSelectable leIsPointInsideFig leIsRefPointActive leLSWGetBlockageSelectable leLSWGetBlockageVisible leLSWGetRoutingGridVisible leLSWSetBlockageSelectable leLSWSetBlockageVisible leLSWSetRoutingGridVisible leLSWSetTrackPatternVisible leLSWShowGrids leLSWShowLayers leLSWShowObjects leLayerAnd leLayerAndNot leLayerOr leLayerSize leLayerXor leLmbCtrlOption leLmbShiftOption leMakeCell leMakeHierReadonlyOrEditableMC leMarkNet leMergeShapes leModifyCorner leMoveCellViewOrigin leMoveCursor leMoveCursorToRefPoint lePasteFigs lePinModelInitFunction lePlot lePrintHierarchyTree leRaiseLSW leRegAreaEstimator leRegClusterBdyEstimator leRegUserLayerSelectionFilter leRegUserObjectSelectionFilter leRemapLSW leRemasterInstances leRemoveUserLayerSelectionFilter leRemoveUserObjectSelectionFilter leReplace leReplaceAnyInstMaster leResizeLSW leReturn leReturnToLevel leRulerCycleDisplayType leSaveMarkNet leSearchHierarchy leSelBoxOrStretch leSetAllGridObjectsVisible leSetAllLayerSelectable leSetAllLayerValid leSetAllLayerVisible leSetAllObjectsSelectable leSetAllObjectsVisible leSetAreaEstimatorParameters leSetEditFigGroup leSetEntryLayer leSetEnv leSetFormSnapMode leSetGlobalGridsVisible leSetInstSelectable leSetLSWBBox leSetLSWFilter leSetLayerAttributes leSetLayerSelectable leSetLayerValid leSetLayerVisible leSetLocalGridsVisible leSetObjectSelectable leSetObjectVisible leSetPinSelectable leSetRefPoint leSetRefPointInactive leSetSnapPatternVisible leSizeShape leSlice leSpaceBarFunc leSplitShape leStartRouter leStretchFig leStretchShape leToggleAllGravity leToggleDrdMode leToggleGravity leToggleKeepFirstName leToggleMagnifier leToggleMaintainConnections leToggleSmartSnap leUnRegAreaEstimator leUnRegClusterBdyEstimator leUnfreezeInst leUniquifyCellView leUnmapLSW leUnmarkNet leUnregUserLayerSelectionFilter leUnregUserObjectSelectionFilter leWECycleControlWire leWECycleSnap leWENoSnap leYankFigs leZoomToPoint leZoomToSelSet leftEdge leftshift leiDiscardEdits length leqp lessp let letrec letseq linRg lindex lineread linereadstring list listAlias listFunctions listToVector listVariables listp lmCheckTerm lmCheckView lmCloseLib lmDefTermProp lmDefViewProp lmDeleteTermProp lmDeleteViewProp lmGetValue lmLoadData lmOpenLib lmPrintLibTermProp lmPrintLibViewProp lmPrintTerm lmPrintTermProp lmPrintViewProp lmReset lmSimView lmgrAddMenuItems lmgrCreateMenu lmgrCreateMenuItem lmgrDefineInits lmgrDeleteMenuItems lmgrDisplayMessage lmgrGetObject lmgrInsertMenuItems lmgrLogShowPopup lmgrManageMenuItems lmgrMenuSubsInPopup lmgrQueryNamedObjects lmgrSensitizeMenuItems lmgrSetObject lmgrVerbose ln loCellSubstitutionMap loHiAbout loLayerMap loLibraryMap loMapParameters loSchematicParams loSetAnnotateLPP loSetVal loSplitViaFunctionMap load loadContext loadPort loadTopContextForms loadi loadpull loadstring log log10 logRg lowerCase lowerLeft lsb lshift lsprintf lxAbutGetNeighbors lxChain lxCheck lxCheckAgainstSource lxCheckLib lxCmdOptions lxCmdShiftOptions lxComputeViaParams lxCreateBndFile lxDeleteSynchronousCloneFamily lxEditPinPlacement lxEditPlacementStyle lxGenFromSource lxGenerateFinish lxGenerateGetAvailablePinLPPs lxGenerateStart lxGetCloneFamilyName lxGetEditedSyncClone lxGetLXInfo lxGetOtherClonesInFamily lxGetPermutedInstTerms lxGetPinNets lxGetSyncClone lxGetValidViaDefs lxHiAbout lxHiAlign lxHiAutoPlace lxHiBackAnnotateAllActiveDummies lxHiBackAnnotateSelectedDummies lxHiChain lxHiCheck lxHiClone lxHiConnectInstPin lxHiCreateInstFromSch lxHiCreateMPP lxHiDefineDeviceCorr lxHiEditComponentTypes lxHiLockSelected lxHiMoveAutomatically lxHiProbe lxHiReInitDesign lxHiSetOptions lxHiStack lxHiSwapComps lxHiUnlockSelected lxHiUpdateBinding lxHiUpdateCellViewPair lxHiUpdateComponentsAndNets lxHiUpdateLayoutConstraints lxHiUpdateLayoutParameters lxHiUpdateSchematicParameters lxHiVerifyDesign lxHiVerifyStatus lxLaunchLayoutGXL lxLaunchLayoutXL lxMakePrBoundarySelectable lxMakePrBoundaryUnselectable lxMovePorts lxPermPermutePins lxPlcAppendPlaceSetupFieldValue lxPlcGetPlaceSetupFieldValue lxPlcIsPlaceSetupFieldEnabled lxPlcReplacePlaceSetupField lxPlcSetPlaceSetupFieldEnableState lxPlcSetPlaceSetupFieldValue lxProbeRemoveAll lxRemoveSynchronousCloneFromFamily lxRunCmdInVXL lxSelectSynchronousFamily lxSelectedDeleteNetRouting lxSelectedExtendChain lxSelectedExtendSelection lxSelectedLock lxSelectedLockNet lxSelectedRemoveIgnore lxSelectedRoute lxSelectedRouteNet lxSelectedSelectAttachedNets lxSelectedSelectExternalNets lxSelectedSelectInternalNets lxSelectedSelectNetsShapes lxSelectedUnlock lxSelectedUnlockNet lxSelectedUpdateFromSource lxSelectedUpdateIgnore lxSetAreaEstimationOptions lxSetBoundaryOptions lxSetCloneFamilyName lxSetConfigRef lxSetConnRef lxSetGenerateOptions lxSetNetPinSpecs lxSetPreserveFloorplanningOptions lxSetUpdateOptions lxShowHideIncompleteNets lxToggleLocalAbutment lxToggleShowAllIncompleteNets lxToggleShowIncompleteNets lxTpTemplateLoadAll lxUpdateAllPhysBinding lxUpdateBinding lxUpdateComponentsAndNets lxUpdateComponentsAndNetsFinish lxUpdateComponentsAndNetsStart lxUpdatePhysBinding lxUpdatePlacementStatus lxVerifyCloneFamily mag makeInstance makeNamespace makeSymbol makeTable makeTempFileName makeVector map mapc mapcan mapcar mapcon mapinto maplist max mbGetAction mbRegisterAction mbRegisterCustomMenu mbRegisterHierMenu mbRegisterMenuItem mbSetContextData mbUnregisterAction measureTime member memoryAllocated memq memv menuTrigger mgAbutAllCB mgAbutCB mgAddBodyContact mgAddCopyDummies mgAddDummyBottomCB mgAddDummyLeftCB mgAddDummyRCBottomCB mgAddDummyRCLeftCB mgAddDummyRCRightCB mgAddDummyRCTopCB mgAddDummyRightCB mgAddDummyTopCB mgAddEmptyRCCB mgAddGuardRingCB mgCreateModgenAsLayout mgCreateOrEdit mgDeleteAllBodyContacts mgDeleteAllDummies mgDeleteCB mgDeleteEmptyRowColumnCB mgEditGuardRingCB mgExecNoConObs mgExitCB mgFlattenModgens mgFlipHorizontalCB mgFlipVerticalCB mgGen mgGetBoxLPPArea mgGetConstraintFromFG mgGetLayerSpacing mgGetModgenFGFromConstraint mgGetRegUserProc mgHilightEmptyRowColumnCB mgIsInBackAnnotation mgPatternCB mgRegUserProc mgRotateLeftCB mgRotateMXCB mgRotateMYCB mgRotateR270CB mgRotateR90CB mgRotateRightCB mgRouteCB mgRoutePToTCB mgRouteStructuredCB mgSelectRowColCB mgSwapCB mgUnAbutCB mgUnRegUserProc mgUnRouteCB mgUpdateCB mgUpdateEmptyRowColumnHilightCB mgUpdateHoriAlignCB mgUpdateVertAlignCB min minus minusp mod modelFile modf modulo monitor mouseAddPt mouseAddSelectPt mouseFinishPt mousePopUp mouseSingleSelectPt mouseSubSelectPt mouseUndoPt mprocedure msgHelp mspDisplaySetPartSetupForm mspEditIEProps mspsMapNetName nc nc_freq nc_gain nclAnalogAdjCellPins nclAnalogAdjCellSides nclAnalogAutoPlaceCB nclAnalogFixDRCs nclAnalogQuickPlace nclAnalogQuickPlaceLikeSchemCB nclCPExit nclCPSaveConstraint nclCPToolBarSelect nclCreateXSym nclRegPostPlacementTrigger nclRegPrePlacementTrigger nclRunConstraintValidation nclSetAspectRatioRange nclToggleCAEMode nclUnregPostPlacementTrigger nclUnregPrePlacementTrigger nconc ncons needNCells negativep neq nequal netlist newWindow newline next nextMethodp nf nfmin nindex nlDisplayOption nlError nlGetCdf nlGetCellName nlGetCurrentSwitchMaster nlGetDesign nlGetFormatter nlGetGlobalNets nlGetId nlGetLibName nlGetModelName nlGetNetlistDir nlGetNetlister nlGetNumberOfBits nlGetOption nlGetOptionNameList nlGetPCellParamSource nlGetParamList nlGetParamStringValue nlGetSignalList nlGetSimName nlGetSimTerminalNets nlGetSwitchViewList nlGetTerminalList nlGetTerminalNets nlGetTerminalSignalName nlGetToolName nlGetTopCellName nlGetTopLibName nlGetTopViewName nlIncludeDbDSPFTextFile nlIncludeSrcFile nlIncludeVerilogFile nlIncludeVerilogaFile nlInfo nlInitialize nlIsModelNameInherited nlMapGlobalNet nlObjError nlPrintComment nlPrintComments nlPrintFooter nlPrintHeader nlPrintHeaderComments nlPrintIndentString nlPrintInst nlPrintInstComments nlPrintInstEnd nlPrintInstName nlPrintInstParameters nlPrintInstSignals nlPrintModelName nlPrintString nlPrintStringNoFold nlPrintSubcktBegin nlPrintSubcktEnd nlPrintSubcktFooter nlPrintSubcktFooterComments nlPrintSubcktHeader nlPrintSubcktHeaderComments nlPrintSubcktName nlPrintSubcktParameters nlPrintSubcktTerminalList nlPrintTopCellFooter nlPrintTopCellFooterComments nlPrintTopCellHeader nlPrintTopCellHeaderComments nlSetOption nlSetPcellName nlTranslateFlatIEPathName nlWarning nlambda nmpAsciiToSysVerilog nmpCDBAFlatToCDBA nmpCDBAToCDBAFlat nmpCDBAToConcept nmpCDBAToDef nmpCDBAToGcf nmpCDBAToGenesis nmpCDBAToIdent nmpCDBAToLef nmpCDBAToPrint nmpCDBAToSdf nmpCDBAToSpectre nmpCDBAToSpectreHDL nmpCDBAToSpef nmpCDBAToSpf nmpCDBAToSpice nmpCDBAToSysVerilog nmpCDBAToVHDL nmpCDBAToVHDL87 nmpCDBAToVHDLAMS nmpCDBAToVerilog nmpCDBAToVerilogA nmpCDBAToVerilogAMS nmpConceptToCDBA nmpConceptToDef nmpConceptToGcf nmpConceptToGenesis nmpConceptToIdent nmpConceptToLef nmpConceptToPrint nmpConceptToSdf nmpConceptToSpectre nmpConceptToSpectreHDL nmpConceptToSpef nmpConceptToSpf nmpConceptToSpice nmpConceptToSysVerilog nmpConceptToVHDL nmpConceptToVHDL87 nmpConceptToVHDLAMS nmpConceptToVerilog nmpConceptToVerilogA nmpConceptToVerilogAMS nmpDefToCDBA nmpDefToConcept nmpDefToGcf nmpDefToGenesis nmpDefToIdent nmpDefToLef nmpDefToPrint nmpDefToSdf nmpDefToSpectre nmpDefToSpectreHDL nmpDefToSpef nmpDefToSpf nmpDefToSpice nmpDefToSysVerilog nmpDefToVHDL nmpDefToVHDL87 nmpDefToVHDLAMS nmpDefToVerilog nmpDefToVerilogA nmpDefToVerilogAMS nmpGcfToCDBA nmpGcfToConcept nmpGcfToDef nmpGcfToGenesis nmpGcfToIdent nmpGcfToLef nmpGcfToPrint nmpGcfToSdf nmpGcfToSpectre nmpGcfToSpectreHDL nmpGcfToSpef nmpGcfToSpf nmpGcfToSpice nmpGcfToSysVerilog nmpGcfToVHDL nmpGcfToVHDL87 nmpGcfToVHDLAMS nmpGcfToVerilog nmpGcfToVerilogA nmpGcfToVerilogAMS nmpGenesisToCDBA nmpGenesisToConcept nmpGenesisToDef nmpGenesisToGcf nmpGenesisToIdent nmpGenesisToLef nmpGenesisToPrint nmpGenesisToSdf nmpGenesisToSpectre nmpGenesisToSpectreHDL nmpGenesisToSpef nmpGenesisToSpf nmpGenesisToSpice nmpGenesisToSysVerilog nmpGenesisToVHDL nmpGenesisToVHDL87 nmpGenesisToVHDLAMS nmpGenesisToVerilog nmpGenesisToVerilogA nmpGenesisToVerilogAMS nmpGetSpaceNames nmpIdentToCDBA nmpIdentToConcept nmpIdentToDef nmpIdentToGcf nmpIdentToGenesis nmpIdentToLef nmpIdentToPrint nmpIdentToSdf nmpIdentToSpectre nmpIdentToSpectreHDL nmpIdentToSpef nmpIdentToSpf nmpIdentToSpice nmpIdentToSysVerilog nmpIdentToVHDL nmpIdentToVHDL87 nmpIdentToVHDLAMS nmpIdentToVerilog nmpIdentToVerilogA nmpIdentToVerilogAMS nmpIsLegalCDBA nmpIsLegalConcept nmpIsLegalDef nmpIsLegalGcf nmpIsLegalGenesis nmpIsLegalLef nmpIsLegalPrint nmpIsLegalSdf nmpIsLegalSpectre nmpIsLegalSpectreHDL nmpIsLegalSpef nmpIsLegalSpf nmpIsLegalSpice nmpIsLegalSysVerilog nmpIsLegalVHDL nmpIsLegalVHDL87 nmpIsLegalVHDLAMS nmpIsLegalVerilog nmpIsLegalVerilogA nmpIsLegalVerilogAMS nmpLefToCDBA nmpLefToConcept nmpLefToDef nmpLefToGcf nmpLefToGenesis nmpLefToIdent nmpLefToPrint nmpLefToSdf nmpLefToSpectre nmpLefToSpectreHDL nmpLefToSpef nmpLefToSpf nmpLefToSpice nmpLefToSysVerilog nmpLefToVHDL nmpLefToVHDL87 nmpLefToVHDLAMS nmpLefToVerilog nmpLefToVerilogA nmpLefToVerilogAMS nmpPrintToCDBA nmpPrintToConcept nmpPrintToDef nmpPrintToGcf nmpPrintToGenesis nmpPrintToIdent nmpPrintToLef nmpPrintToSdf nmpPrintToSpectre nmpPrintToSpectreHDL nmpPrintToSpef nmpPrintToSpf nmpPrintToSpice nmpPrintToSysVerilog nmpPrintToVHDL nmpPrintToVHDL87 nmpPrintToVHDLAMS nmpPrintToVerilog nmpPrintToVerilogA nmpPrintToVerilogAMS nmpSdfToCDBA nmpSdfToConcept nmpSdfToDef nmpSdfToGcf nmpSdfToGenesis nmpSdfToIdent nmpSdfToLef nmpSdfToPrint nmpSdfToSpectre nmpSdfToSpectreHDL nmpSdfToSpef nmpSdfToSpf nmpSdfToSpice nmpSdfToSysVerilog nmpSdfToVHDL nmpSdfToVHDL87 nmpSdfToVHDLAMS nmpSdfToVerilog nmpSdfToVerilogA nmpSdfToVerilogAMS nmpSpectreHDLToCDBA nmpSpectreHDLToConcept nmpSpectreHDLToDef nmpSpectreHDLToGcf nmpSpectreHDLToGenesis nmpSpectreHDLToIdent nmpSpectreHDLToLef nmpSpectreHDLToPrint nmpSpectreHDLToSdf nmpSpectreHDLToSpectre nmpSpectreHDLToSpef nmpSpectreHDLToSpf nmpSpectreHDLToSpice nmpSpectreHDLToSysVerilog nmpSpectreHDLToVHDL nmpSpectreHDLToVHDL87 nmpSpectreHDLToVHDLAMS nmpSpectreHDLToVerilog nmpSpectreHDLToVerilogA nmpSpectreHDLToVerilogAMS nmpSpectreToCDBA nmpSpectreToConcept nmpSpectreToDef nmpSpectreToGcf nmpSpectreToGenesis nmpSpectreToIdent nmpSpectreToLef nmpSpectreToPrint nmpSpectreToSdf nmpSpectreToSpectreHDL nmpSpectreToSpef nmpSpectreToSpf nmpSpectreToSpice nmpSpectreToSysVerilog nmpSpectreToVHDL nmpSpectreToVHDL87 nmpSpectreToVHDLAMS nmpSpectreToVerilog nmpSpectreToVerilogA nmpSpectreToVerilogAMS nmpSpefToCDBA nmpSpefToConcept nmpSpefToDef nmpSpefToGcf nmpSpefToGenesis nmpSpefToIdent nmpSpefToLef nmpSpefToPrint nmpSpefToSdf nmpSpefToSpectre nmpSpefToSpectreHDL nmpSpefToSpf nmpSpefToSpice nmpSpefToSysVerilog nmpSpefToVHDL nmpSpefToVHDL87 nmpSpefToVHDLAMS nmpSpefToVerilog nmpSpefToVerilogA nmpSpefToVerilogAMS nmpSpfToCDBA nmpSpfToConcept nmpSpfToDef nmpSpfToGcf nmpSpfToGenesis nmpSpfToIdent nmpSpfToLef nmpSpfToPrint nmpSpfToSdf nmpSpfToSpectre nmpSpfToSpectreHDL nmpSpfToSpef nmpSpfToSpice nmpSpfToSysVerilog nmpSpfToVHDL nmpSpfToVHDL87 nmpSpfToVHDLAMS nmpSpfToVerilog nmpSpfToVerilogA nmpSpfToVerilogAMS nmpSpiceToCDBA nmpSpiceToConcept nmpSpiceToDef nmpSpiceToGcf nmpSpiceToGenesis nmpSpiceToIdent nmpSpiceToLef nmpSpiceToPrint nmpSpiceToSdf nmpSpiceToSpectre nmpSpiceToSpectreHDL nmpSpiceToSpef nmpSpiceToSpf nmpSpiceToSysVerilog nmpSpiceToVHDL nmpSpiceToVHDL87 nmpSpiceToVHDLAMS nmpSpiceToVerilog nmpSpiceToVerilogA nmpSpiceToVerilogAMS nmpSysVerilogToAscii nmpSysVerilogToCDBA nmpSysVerilogToConcept nmpSysVerilogToDef nmpSysVerilogToGcf nmpSysVerilogToGenesis nmpSysVerilogToIdent nmpSysVerilogToLef nmpSysVerilogToPrint nmpSysVerilogToSdf nmpSysVerilogToSpectre nmpSysVerilogToSpectreHDL nmpSysVerilogToSpef nmpSysVerilogToSpf nmpSysVerilogToSpice nmpSysVerilogToVHDL nmpSysVerilogToVHDL87 nmpSysVerilogToVHDLAMS nmpSysVerilogToVerilog nmpSysVerilogToVerilogA nmpSysVerilogToVerilogAMS nmpVHDL87ToCDBA nmpVHDL87ToConcept nmpVHDL87ToDef nmpVHDL87ToGcf nmpVHDL87ToGenesis nmpVHDL87ToIdent nmpVHDL87ToLef nmpVHDL87ToPrint nmpVHDL87ToSdf nmpVHDL87ToSpectre nmpVHDL87ToSpectreHDL nmpVHDL87ToSpef nmpVHDL87ToSpf nmpVHDL87ToSpice nmpVHDL87ToSysVerilog nmpVHDL87ToVHDL nmpVHDL87ToVHDLAMS nmpVHDL87ToVerilog nmpVHDL87ToVerilogA nmpVHDL87ToVerilogAMS nmpVHDLAMSToCDBA nmpVHDLAMSToConcept nmpVHDLAMSToDef nmpVHDLAMSToGcf nmpVHDLAMSToGenesis nmpVHDLAMSToIdent nmpVHDLAMSToLef nmpVHDLAMSToPrint nmpVHDLAMSToSdf nmpVHDLAMSToSpectre nmpVHDLAMSToSpectreHDL nmpVHDLAMSToSpef nmpVHDLAMSToSpf nmpVHDLAMSToSpice nmpVHDLAMSToSysVerilog nmpVHDLAMSToVHDL nmpVHDLAMSToVHDL87 nmpVHDLAMSToVerilog nmpVHDLAMSToVerilogA nmpVHDLAMSToVerilogAMS nmpVHDLToCDBA nmpVHDLToConcept nmpVHDLToDef nmpVHDLToGcf nmpVHDLToGenesis nmpVHDLToIdent nmpVHDLToLef nmpVHDLToPrint nmpVHDLToSdf nmpVHDLToSpectre nmpVHDLToSpectreHDL nmpVHDLToSpef nmpVHDLToSpf nmpVHDLToSpice nmpVHDLToSysVerilog nmpVHDLToVHDL87 nmpVHDLToVHDLAMS nmpVHDLToVerilog nmpVHDLToVerilogA nmpVHDLToVerilogAMS nmpVerilogAMSToCDBA nmpVerilogAMSToConcept nmpVerilogAMSToDef nmpVerilogAMSToGcf nmpVerilogAMSToGenesis nmpVerilogAMSToIdent nmpVerilogAMSToLef nmpVerilogAMSToPrint nmpVerilogAMSToSdf nmpVerilogAMSToSpectre nmpVerilogAMSToSpectreHDL nmpVerilogAMSToSpef nmpVerilogAMSToSpf nmpVerilogAMSToSpice nmpVerilogAMSToSysVerilog nmpVerilogAMSToVHDL nmpVerilogAMSToVHDL87 nmpVerilogAMSToVHDLAMS nmpVerilogAMSToVerilog nmpVerilogAMSToVerilogA nmpVerilogAToCDBA nmpVerilogAToConcept nmpVerilogAToDef nmpVerilogAToGcf nmpVerilogAToGenesis nmpVerilogAToIdent nmpVerilogAToLef nmpVerilogAToPrint nmpVerilogAToSdf nmpVerilogAToSpectre nmpVerilogAToSpectreHDL nmpVerilogAToSpef nmpVerilogAToSpf nmpVerilogAToSpice nmpVerilogAToSysVerilog nmpVerilogAToVHDL nmpVerilogAToVHDL87 nmpVerilogAToVHDLAMS nmpVerilogAToVerilog nmpVerilogAToVerilogAMS nmpVerilogToCDBA nmpVerilogToConcept nmpVerilogToDef nmpVerilogToGcf nmpVerilogToGenesis nmpVerilogToIdent nmpVerilogToLef nmpVerilogToPrint nmpVerilogToSdf nmpVerilogToSpectre nmpVerilogToSpectreHDL nmpVerilogToSpef nmpVerilogToSpf nmpVerilogToSpice nmpVerilogToSysVerilog nmpVerilogToVHDL nmpVerilogToVHDL87 nmpVerilogToVHDLAMS nmpVerilogToVerilogA nmpVerilogToVerilogAMS nodeset noise noiseSummary normalQQ not nprocedure nrDialogAccept nrListColumnMove nrListColumnSort nrListItemAction nrListItemExpand nrListItemRename nrResizeWindow nrSetCurrentWindow nrSetFileFilter nrSetWindowVisibility nrUpdateMenu nth nthcdr nthelem null numOpenFiles numberp ocnAmsSetOSSNetlister ocnCloseSession ocnDisplay ocnDspfFile ocnGetAdjustedPath ocnGetInstancesModelName ocnHelp ocnPrint ocnPspiceFile ocnResetResults ocnSetAttrib ocnSetSilentMode ocnSetXLMode ocnSpefFile ocnWriteLsspToFile ocnYvsYplot ocnxlAddOrUpdateOutput ocnxlAddRelxSetup ocnxlBeginTest ocnxlConjugateGradientOptions ocnxlCorner ocnxlCornerVars ocnxlDisableCorner ocnxlDisableCornerForTest ocnxlDisableRelxSetup ocnxlDisableSweepParam ocnxlDisableSweepVar ocnxlDisableTest ocnxlEnableCorner ocnxlEnableCornerForTest ocnxlEnableSweepParam ocnxlEnableSweepVar ocnxlEnableTest ocnxlEndTest ocnxlEndXLMode ocnxlExportOutputView ocnxlFeasibilityAnalysisOptions ocnxlGetBestPointParams ocnxlGetCorners ocnxlGetCurrentHistory ocnxlGetCurrentHistoryId ocnxlGetHistory ocnxlGetJobId ocnxlGetOverwriteHistory ocnxlGetOverwriteHistoryName ocnxlGetPointId ocnxlGetReferenceHistory ocnxlGetRunDistributeOptions ocnxlGetSession ocnxlGetSpecs ocnxlGetTests ocnxlGlobalOptimizationOptions ocnxlHistoryPrefix ocnxlJobSetup ocnxlLoadCurrentEnvironment ocnxlLoadSetupState ocnxlLocalOptimizationOptions ocnxlMCIterNum ocnxlMTSBlock ocnxlMTSEnable ocnxlMainSimSession ocnxlModelGroup ocnxlMonteCarloOptions ocnxlOutputAreaGoal ocnxlOutputExpr ocnxlOutputMatlabScript ocnxlOutputOceanScript ocnxlOutputOpRegion ocnxlOutputSignal ocnxlOutputSummary ocnxlOutputTerminal ocnxlParametricSet ocnxlPreRunScript ocnxlProjectDir ocnxlPutGreaterthanSpec ocnxlPutInfoSpec ocnxlPutLessthanSpec ocnxlPutMaxSpec ocnxlPutMinSpec ocnxlPutRangeSpec ocnxlPutTargetSpec ocnxlPutToleranceSpec ocnxlRemoveSpec ocnxlRenameCurrentHistory ocnxlResultsLocation ocnxlRun ocnxlRunCalibration ocnxlRunSetupSummary ocnxlSamplingOptions ocnxlSaveSetupAs ocnxlSelectTest ocnxlSensitivityOptions ocnxlSensitivityVars ocnxlSetAllParameterPSetsDisabled ocnxlSetAllParametersDisabled ocnxlSetAllVariablePSetsDisabled ocnxlSetAllVarsDisabled ocnxlSetCalibration ocnxlSetMCdut ocnxlSetOverwriteHistory ocnxlSetOverwriteHistoryName ocnxlSetPreRunScriptEnabled ocnxlSetReferenceHistory ocnxlSetRelxAnalysisEnabled ocnxlSetRunDistributeOptions ocnxlSetupLocation ocnxlSimResultsLocation ocnxlSizeOverCornersOptions ocnxlStartingPoint ocnxlSweepParam ocnxlSweepVar ocnxlSweepsAndCornersOptions ocnxlTargetCellView ocnxlUpdatePointVariable ocnxlWaitUntilDone ocnxlWorstCaseCornersOptions ocnxlWriteDatasheet ocnxlYieldEstimationOptions ocnxlYieldImprovementOptions odcRegBlockage odcRegBoundary odcRegCPA odcRegInstance odcRegLabel odcRegMarker odcRegModgen odcRegPin odcRegRow odcRegRuler odcRegShapeCircle odcRegShapeDonut odcRegShapeEllipse odcRegShapeMPP odcRegShapePath odcRegShapePathSeg odcRegShapePolygon odcRegShapeRect odcRegTextDisplay odcRegVia odcRegisterCustomFunc oddp off onep openResults openportp option or otherp outfile outportp outputParams outputs outstring outstringp overshoot pairp parCacheFind parCacheGet parCacheListFilters parCacheListModels parCachePurge parCacheSave parDelete parFilterCreate parFind parModelCreateCustom parModelCreateNetC parModelCreateNetK parModelCreateNetL parModelCreateNetR parModelListSimParams parModelListSimSweeps parModelUpdateSimParams parModelUpdateSimSweeps parObjectListFilters parObjectListModels parRemoveMembers parResetAllParams parResetParams parSetNote parUpdateMembers parUpdateParams paramAnalysis paramRun parseString path pavg pcColinearPoints pcConcatOrient pcDefineCondition pcDefineInheritParam pcDefinePCell pcDefineParamCell pcDefineParamLabel pcDefineParamLayer pcDefineParamPath pcDefineParamPolygon pcDefineParamProp pcDefineParamRect pcDefineParamRefPointObject pcDefinePathRefPointObject pcDefineRepeat pcDefineSteppedObject pcDefineStretchLine pcDeleteCondition pcDeleteParam pcDeleteParamLayer pcDeleteParamProp pcDeleteParamShape pcDeleteRefPoint pcDeleteRepeat pcDeleteSteppedObject pcExprToProp pcExprToString pcFilterPoints pcFix pcGetBendAngle pcGetCodeParamNames pcGetCodeParamValue pcGetConditions pcGetInheritParamDefn pcGetInheritParams pcGetOffsetPath pcGetOffsetPolygon pcGetParamLabelDefn pcGetParamLabels pcGetParamLayerDefn pcGetParamLayers pcGetParamProps pcGetParamShapeDefn pcGetParamShapes pcGetParameters pcGetPathRefPoint pcGetRefPointDefn pcGetRefPoints pcGetRepeatDefn pcGetRepeats pcGetStepDirection pcGetSteppedObjectDefn pcGetSteppedObjects pcGetStretchDefn pcGetStretchSummary pcGetStretches pcGrowBox pcGrowPoints pcHICompileToSkill pcHIDefineCondition pcHIDefineInheritedParameter pcHIDefineLabel pcHIDefineLayer pcHIDefineParamCell pcHIDefineParamRefPointObject pcHIDefineParameterizedShape pcHIDefinePathRefPointObject pcHIDefineProp pcHIDefineRepeat pcHIDefineSteppedObject pcHIDefineStretch pcHIDeleteCondition pcHIDeleteLayer pcHIDeleteParameterizedShape pcHIDeleteProp pcHIDeleteRefPointObject pcHIDeleteRepeat pcHIDeleteSteppedObject pcHIDisplayCondition pcHIDisplayInheritedParameter pcHIDisplayLayer pcHIDisplayParameterizedShape pcHIDisplayParams pcHIDisplayProp pcHIDisplayRefPointObject pcHIDisplayRepeat pcHIDisplaySteppedObject pcHIEditParameters pcHIModifyCondition pcHIModifyLabel pcHIModifyLayer pcHIModifyParams pcHIModifyRefPointObject pcHIModifyRepeat pcHIModifySteppedObject pcHIModifyStretchLine pcHIQualifyStretchLine pcHIRedefineStretchLine pcHISummarizeParams pcModifyParam pcRedefineStretchLine pcRestrictStretchToObjects pcRound pcSetFTermWidth pcSkillGen pcStepAlongShape pcTechFile pcUserAdjustParameters pcUserGenerateArray pcUserGenerateInstance pcUserGenerateInstancesOfMaster pcUserGenerateLPP pcUserGeneratePin pcUserGenerateProperty pcUserGenerateShape pcUserGenerateTerminal pcUserInitRepeat pcUserPostProcessCellView pcUserPostProcessObject pcUserPreProcessCellView pcUserSetTermNetName pcdbClose pcdbGetIgnoredInstMasterGen pcdbGetInstGen pcdbGetInstMasterGen pcdbInstMasterCell pcdbInstMasterCellFixed pcdbInstMasterLib pcdbInstMasterLibFixed pcdbInstMasterView pcdbInstMasterViewFixed pcdbInstName pcdbInstWidth pcdbNextInst pcdbNextInstMaster pcdbOpen pcdbSave pcdbViewHasPcdbInfo pcfix pcreCompile pcreExecute pcreGenCompileOptBits pcreGenExecOptBits pcreListCompileOptBits pcreListExecOptBits pcreMatchAssocList pcreMatchList pcreMatchp pcreObjectp pcrePrintLastMatchErr pcreReplace pcreSubstitute pcround peak peakToPeak period_jitter pfile phase phaseDeg phaseDegUnwrapped phaseMargin phaseNoise phaseRad phaseRadUnwrapped piCellNameMap piLayerMap piPostTranslate piPreTranslate piTextMap pipoDisplay pir plist plot plotStyle plus plusp pmNoise pn poCellNameMap poLayerMap poParamCellNameMap poPostTranslate poPreTranslate poTextMap popf portp postArrayDec postArrayInc postArraySet postInstallTrigger postdecrement postincrement pow pp pprint preArrayDec preArrayInc preArraySet preXY predecrement preincrement prependInstallPath prependPath print printFunctions printGraph printObject printVariables printViolations printf printlev println printself printstruct prms probeTrigger procedure procedurep profile profileReset profileSummary prog prog1 prog2 progn psConfigLoaded psLoadCdsPlotInit psQueryPaperSize psQueryPaperSizes psQueryPlotters psQueueStatus psd psdbb pstddev pteCancelForm pteClearSearchHistory pteCloseLayerSetEdition pteCollapse pteCollapseAll pteContextMenu pteDeleteLayerSet pteDeselect pteDeselectAll pteDiscardLayerSetEdition pteDockWindow pteEditLayerSet pteEditLayerSetValidity pteExpand pteExpandAll pteExportLayerSet pteFindNext pteFindPrev pteGetCurrentPanel pteGetLSAtPosition pteGetLayerPath pteGetNextLayerSets pteGetPrevLayerSets pteGetSelection pteHideAllTools pteImportLayerSet pteIsSelectable pteIsVisible pteLoadConfig pteLoadFromTechFile pteLoadGDSNumber pteLoadLSWInfo pteMapWindow pteMoveLayerSelection pteOpenForm ptePropagateSelectability ptePropagateVisibility pteRegisterUserLSManagerTrigger pteRegisterUserSelectionTrigger pteReloadLayerSet pteSaveAsLayerSet pteSaveConfig pteSaveGDSNumber pteSaveLSWInfo pteSaveLayerSet pteSaveLayerSetList pteSaveToTechFile pteSelect pteSelectAll pteSetActiveLpp pteSetAllLSEnable pteSetAllLayerSetMember pteSetAllSelectable pteSetAllStipple pteSetAllValidity pteSetAllVisible pteSetBindkeys pteSetConfig pteSetLSActive pteSetLSEnable pteSetLSPosition pteSetLSSelectable pteSetLSVisible pteSetLayerSetMember pteSetNoneLayerSetMember pteSetNoneSelectable pteSetNoneStipple pteSetNoneValidity pteSetNoneVisible pteSetOnlySelectable pteSetOnlyVisible pteSetOption pteSetOptionString pteSetRoutingDirection pteSetSearchMatchCase pteSetSearchMatchType pteSetSearchOperator pteSetSearchText pteSetSelectable pteSetStipple pteSetValidity pteSetVisible pteSetWindowSynchro pteShowAllTools pteShowRoutingLPP pteShowUsedLPP pteShowValidLPP pteToggleAllLayerSetMember pteToggleAllSelectable pteToggleAllStipple pteToggleAllTools pteToggleAllValidity pteToggleAllVisible pteToggleLSActive pteToggleLayerSetEdition pteToggleLayerSetValidityEdition pteTogglePanels pteTogglePropagateAllSelectable pteTogglePropagateAllVisible pteToggleShowRoutingLPP pteToggleShowUsedLPP pteToggleShowValidLPP pteToggleToolbars pteToggleWindowSynchro pteUnRegisterUserLSManagerTrigger pteUnRegisterUserSelectionTrigger pteUndockWindow pteUnmapWindow pteUnsetLSActive pushf putc putd putprop putpropq putpropqq pv pvi pvr pzFrequencyAndRealFilter pzPlot pzSummary pzbode pzfilter quote quotient random range rapidIIPN rapidIPNCurves rdbLoadResults rdbReloadResults rdbSetCurrentDirectory rdbShowDialog rdbUnloadResults rdbWriteToFormat rdeCreateChamferFill rdeCreateWireChamfer rdeDone rdeEval rdeGetVar rdeHide rdeInspect rdeOpenCurrentDesign rdeReplay rdeSequencer rdeSetVar rdeShow rdeSource read readTable readstring real realp regExitAfter regExitBefore relxOption remExitProc remainder remd remdq remoteDir remove removeDependent removeFromExportList removeLabel removeMethod removeShadowImport remprop remq renameFile report restore restoreFloat resultParam results resultsDir resume resumeJob return reverse rexCompile rexExecute rexMagic rexMatchAssocList rexMatchList rexMatchp rexReplace rexSubstitute rightEdge rightshift rindex riseTime risetime rms rmsNoise rmsVoltage rn rodAddMPPChopHole rodAddPoints rodAddSubPart rodAddToX rodAddToY rodAlign rodAssignHandleToParameter rodCheck rodCheckAllMPPsInCellView rodCheckMPPs rodCoordBisect rodCoordCreate rodCoordDefineGrid rodCoordFix rodCoordGetGrid rodCoordIsOnGrid rodCoordPartition rodCoordSnap rodCoordToFloat rodCoordToInt rodCoordToString rodCreateHandle rodCreatePath rodCreatePolygon rodCreateRect rodDeleteHandle rodDeleteSubPart rodFillBBoxWithRects rodFillWithRects rodGetBBox rodGetHandle rodGetNamedShapes rodGetObj rodGetSubPart rodIsFigNameUnused rodIsHandle rodIsObj rodNameObject rodNameShape rodPointX rodPointY rodSubPoints rodUnAlign rodUnNameShape root rotatef round round2 rplaca rplacd rshift rteCheckAntenna rteCheckDataForRouting rteCheckRoutability rteComposeTrunks rteCoverObstructionHilite rteCoverObstructionUnHilite rteCreateBlockRingScheme rteCreateCellRowsScheme rteCreateCoreRingScheme rteCreatePadRingScheme rteCreatePinToTrunkScheme rteCreateStripesScheme rteCreateViasScheme rteDecomposeTrunks rteDeleteRoutedNets rteFixAntenna rteFixViolations rteGeomAnd rteGeomAndNot rteGeomNot rteGeomOr rteGeomSize rteGeomXor rteOptimizeRoute rtePowerRouteBlockRing rtePowerRouteCellRow rtePowerRouteCoreRing rtePowerRoutePadRing rtePowerRoutePinToTrunk rtePowerRouteStripes rtePowerRouteTieShield rtePowerRouteTrimStripes rtePowerRouteViaInsertion rteSearchAndRepair rteSetvar run runsim s11 s12 s21 s22 sample save saveContext saveFloat saveGraphImage saveOption saveSubckt scanf schAddSelectPt schCheck schCheckHier schCheckHierConfig schCloneSymbol schCmdOption schComputePinRef schCopy schCreateInst schCreateInstBox schCreateNetExpression schCreateNoteLabel schCreateNoteShape schCreatePin schCreateSheet schCreateSymbolLabel schCreateSymbolPin schCreateSymbolShape schCreateWire schCreateWireLabel schDelete schDeleteIndex schDeleteSheet schDeselectAllFig schDirectEdit schDrawSymbolPin schEditPinOrder schEditSheetSize schExistsEditCap schExtendSelSet schExtendSelectPt schExtractConn schExtractStatus schGetBundleDisplayMode schGetCellViewListInSearchScope schGetCheckGroups schGetEnv schGetMatchingObjects schGetPinOrder schGetPostCheckTriggers schGetPreCheckTriggers schGetSignalTypeIntegrity schGetWireColor schGetWireLineStyle schGlueLabel schHDLReturn schHdlPrintFile schHdlPrintVars schHiAbout schHiAddCPFNetSets schHiAlternateView schHiCellViewProperty schHiChangeEditMode schHiCheck schHiCheckAndSave schHiCheckHier schHiCloneSymbol schHiComputePinRef schHiCopy schHiCreateBlockInst schHiCreateInst schHiCreateInstBox schHiCreateKanjiSymbol schHiCreateMappingSchematic schHiCreateNetExpression schHiCreateNoteLabel schHiCreateNoteShape schHiCreatePatchcord schHiCreatePin schHiCreateSheet schHiCreateSymbolLabel schHiCreateSymbolPin schHiCreateSymbolShape schHiCreateWire schHiCreateWireLabel schHiCreateWireStubs schHiDefaultAction schHiDelete schHiDeleteIndex schHiDeleteSheet schHiDescend schHiDescendEdit schHiDescendRead schHiDisplayOptions schHiDrawSymbolPin schHiEditInPlace schHiEditPinOrder schHiEditSheetSize schHiEditText schHiEditTitleBlock schHiEditorOptions schHiEnvSaveLoad schHiExtractConn schHiFind schHiFindMarker schHiFollowPin schHiFontUpdate schHiGotoSheet schHiGridOptions schHiHiliteLabel schHiInstToView schHiMousePopUp schHiMove schHiNetExprAvailProps schHiNetExprEvalNames schHiNewCellView schHiObjectProperty schHiOpenCellView schHiOpenOtherView schHiOpenSymbolOrSchematicView schHiPinListToView schHiPlot schHiPlotQueueStatus schHiRegisterWireStubs schHiRemoveCPFNetSets schHiRenumberAllSheet schHiRenumberInstances schHiRenumberSheet schHiReplace schHiResetInvisibleLabels schHiReturn schHiReturnToTop schHiRotate schHiRouteFlightLine schHiSRC schHiSaveCellView schHiSelectAll schHiSelectByProperty schHiSetSymbolOrigin schHiShowScope schHiSolder schHiStretch schHiSymStretch schHiTree schHiUpdatePinOrder schHiUpdatePinsFromView schHiVHDLProperty schHiVIC schHiVICAndSave schHiViewToView schHiZoomToSelSet schInhConFind schInhConSet schInstToView schInstallHDL schIsHDLCapEnabled schIsIndexCV schIsSchEditOk schIsSheetCV schIsSymEditOk schIsTextEditable schIsViewCapEnabled schIsWireLabel schLayoutToPinList schMouseApplyOrFinish schMove schNetExprAvailProps schNetExprEvalNames schPinListToSchem schPinListToSchemGen schPinListToSymbol schPinListToSymbolGen schPinListToVerilog schPinListToView schPlot schRegPostCheckTrigger schRegPreCheckTrigger schRegisterCheckGroup schRegisterCheckRule schRegisterFixedMenu schRegisterPopUpMenu schRenumberAllSheet schRenumberInstances schRenumberSheet schReplaceProperty schReportCheckFailure schSRC schSaveCurrentPlotOptions schSchemToPinList schSelectAllFig schSelectPoint schSetAndLoadTsgTemplateType schSetBundleDisplayMode schSetCmdOption schSetEnv schSetSelectOptions schSetSignalTypeIntegrity schSetSymbolOrigin schSetTextDisplayBBox schSetWireColor schSetWireLineStyle schShiftCmdOption schSingleSelectBox schSingleSelectPt schSnapToConn schSolder schStretch schSubSelectBox schSymbolToPinList schSync schUnregPostCheckTrigger schUnregPreCheckTrigger schUnregisterFixedMenu schUnregisterPopUpMenu schUpdateUserSRCErrorAndWarn schVIC schVerilogToPinList schViewToView schZoomFit schemeTopLevelEnv selectResult set setContext setCurrentWindow setDevCheckOptions setFnWriteProtect setPrompts setSG setSaveContextVersion setShellEnvVar setSkillPath setSlotValue setVarWriteProtect setarray setcar setcdr setf setf_arrayref setf_bottomEdge setf_caaar setf_caadr setf_caar setf_cadar setf_caddr setf_cadr setf_car setf_cdaar setf_cdadr setf_cdar setf_cddar setf_cdddr setf_cddr setf_cdr setf_get setf_getSG setf_getSGq setf_getShellEnvVar setf_getd setf_getq setf_last setf_leftEdge setf_lowerLeft setf_nth setf_nthcdr setf_nthedr setf_nthelem setf_rightEdge setf_slotValue setf_topEdge setf_upperRight setf_xCoord setf_yCoord setguard setof setofs setplist setq setqbitfield setqbitfield1 settlingTime setup sevAboutTool sevActivateSelectedAnas sevActiveSelectedAna sevAddExpression sevAddMenuItemLists sevAnnotateResults sevBALMTool sevBPMTool sevChangeOutsOnSchematic sevChooseDesign sevChooseEnvironmentOptions sevChooseSimulator sevChooseTemperature sevCircuitCond sevConvergence sevCopyCellViewVariables sevCopyVariablesToCellView sevCornersTool sevCreateMainWindow sevDebug sevDeleteResults sevDeleteSelectedAnas sevDeleteSelectedOuts sevDeleteSelectedSubckts sevDeleteSelectedVars sevDeleteSelections sevDevChecking sevDirectPlotMenu sevDisplayViolations sevEditModels sevEditOptions sevEditPlottingOptions sevEditSelectedAnas sevEditSelectedOuts sevEditSelectedVars sevEditSimulationFile sevEditStimulus sevEnvironment sevEvaluateAndPlotExpressions sevExportOutputsToCSV sevExportOutputsToFile sevExportOutputsToTxt sevFindSelectedVars sevGetExpressions sevIcon sevImportOutputsFromCSV sevImportOutputsFromFile sevImportOutputsFromTxt sevInvokeNCBrowse sevInvokeSimvision sevInvokeSimvisionDebugger sevIsContinuable sevKmodelTool sevLMGTool sevLoadState sevMTSMode sevMTSOptions sevMenuItems sevMonteCarloTool sevMpuTool sevNetlistAndDebug sevNetlistAndRun sevNetlistFile sevNoAnaSelections sevNoDesign sevNoEnvironment sevNoLog sevNoOutSelections sevNoOutputLog sevNoPlottableExpressions sevNoPlottableOutputs sevNoPlottableSignals sevNoResults sevNoVarSelections sevNoViolationsFound sevNonActiveSelectedAna sevNonMixedSignal sevOpenCalculator sevOpenDRLBrowser sevOpenEncap sevOpenJobMonitor sevOpenPlotWindow sevOpenPrintWindow sevOpenSchematic sevOptimizationTool sevPCMTool sevPKGTool sevParametricTool sevParasiticsDisplayed sevParasiticsNotDisplayed sevPlotAllOutputs sevPlotSignals sevPrintResults sevQuit sevReset sevReturnVariablesWithEmptyValues sevRun sevRunEngine sevSaveOceanScript sevSaveOptions sevSaveResults sevSaveState sevSelectResults sevSession sevSetConnectModules sevSetEngineOptions sevSetMTSMode sevSetMainWindowPulldownMenus sevSetMenuItemLists sevSetPropertyForSelectedOuts sevSetSchematicPulldownMenus sevSetSimDataDir sevSetSolver sevSetTopSaveDir sevSetTypeInWindowPulldownMenus sevSetupSimulationFiles sevSetupStimuli sevSimulator sevStartSession sevStopEngine sevTopSaveDir sevViewCompilerLog sevViewElabLog sevViewNcVerilogLog sevViewNetlisterLog sevViewSimLog sevViewSimulatorOutput sevWhatsNew sh shadow shadowImport sharedInitialize shell simAddProbeCapByName simAddProbeCapByScreen simAddProbeCapForBusBit simCheckExist simCheckHeader simCheckVariables simCheckViewConfig simCleanRun simDateStamp simDeleteRunDirFile simDesignVarCdsNameExtName simDesignVarExtNameCdsName simDrain simEditFileWithName simExecute simFindFile simFlattenWithArgs simGetLoginName simGetTermList simIfNoProcedure simIlSleep simInWithArgs simInitControl simInitEnv simInitEnvWithArgs simInitRaw simInitRunDir simInitSimulator simInstCdsNameExtName simInstExtNameCdsName simJobMonitor simLoadNetlisterFiles simLoadSimulatorFiles simNetCdsNameExtName simNetExtNameCdsName simNetlistWithArgs simNoNetlist simOutWithArgs simPostNameConvert simPreNameConvert simPrintEnvironment simPrintError simPrintErrorLine simPrintMessage simPrintTermList simReadNetCapFile simRep simRunDirInfile simRunDirLoad simRunDirOutfile simRunNetAndSim simRunNetAndSimWithArgs simRunNetAndSimWithCmd simSetDef simSetDefWithNoWarn simStringsToList simSubProbeCapByName simSubProbeCapByScreen simVertToHoriz simViewFileWithArgs simWaveOpen simin simout simplifyFilename simulator sin sinh skDisableMessage skDisableMessageBlock skEnableMessageBlock skIgnoreMessage skTabulate skTabulateSKILL skUnignoreMessage skillDebugger skillDevStatus sklint slewRate slewrate slotBoundp slotUnbound slotValue smgStart soiEnableDrcDfm solver sort sortcar sp spcinGuiDisplay spectralPower spectrumMeas spectrumMeas spectrumMeasurement spm sprintf sqrt srandom ssb sscanf sstatus stacktrace startFinder status stddev step stepend stepout stimulusFile store strcat strcmp stringToFunction stringToSymbol stringToTime stringp strlen strncat strncmp strpbrk sub1 subclassesOf subclassp subst substring superclassesOf suspendJob sweepNames sweepValues sweepVarValues swindow swindowp sxtd symbolToString symbolp symeval symstrp system tableToList tablep tailp tan tangent tanh tcDisplayAttachTechForm tcDisplayCompTechForm tcDisplayDiscardTechForm tcDisplayDumpTechForm tcDisplayLoadTechForm tcDisplayNewTechForm tcDisplaySaveTechForm tcDisplayTechGraphForm tcDumpTechFile tcLoadTechFile tcNewLibDisplayRefTechForm tcQcInstallDevices tcRegPostDumpTrigger tcRegPostLoadTrigger tcRegPostSetRefTrigger tcRegPreDumpTrigger tcRegPreLoadTrigger tcUnregPostDumpTrigger tcUnregPostLoadTrigger tcUnregPostSetRefTrigger tcUnregPreDumpTrigger tcUnregPreLoadTrigger tconc techBindTechFile techCloseTechFile techCopyTechFile techCreateArraySiteDef techCreateCustomViaDef techCreateCustomViaDefByName techCreateCustomViaVariant techCreateDerivedLayer techCreateElectricalRuleTable techCreateLP techCreateLayer techCreatePurpose techCreatePurposeDef techCreateScalarSiteDef techCreateSnapPatternDef techCreateSpacingRuleTable techCreateStdViaDef techCreateStdViaVariant techCreateViaSpec techDeleteDeviceClass techDeleteLP techDeleteLayer techDeletePurpose techDeletePurposeDef techDeleteSiteDef techDeleteTechFile techDeleteTechLibName techDeleteTwoLayerProp techDeleteViaDef techDeleteViaSpec techFindLayer techFindPurposeDef techFindSiteDefByName techFindSnapPatternDefByLP techFindSnapPatternDefByName techFindViaDefByName techFindViaSpec techFindViaVariantByName techGetCellViewSiteDefs techGetCurrentDensityRuleTable techGetCurrentDensityRuleTables techGetCurrentDensityRules techGetDBUPerUU techGetDefaultTechName techGetDerivedLayer techGetDeviceCParam techGetDeviceCellView techGetDeviceClass techGetDeviceClassProp techGetDeviceClassViewList techGetDeviceFParam techGetDeviceInClass techGetDeviceProp techGetDeviceTechFile techGetElectricalRule techGetElectricalRuleTable techGetElectricalRuleTableEntry techGetElectricalRuleTables techGetElectricalRules techGetEquivLayers techGetExtractCAP techGetExtractDIODE techGetExtractDevices techGetExtractMOS techGetExtractRES techGetInstDeviceClass techGetIntegrationColorModel techGetLP techGetLPAttr techGetLPPacketName techGetLPPriorityInContext techGetLabelLayers techGetLayerAbbrev techGetLayerFunction techGetLayerFunctions techGetLayerMaskNumber techGetLayerMfgResolution techGetLayerMfgResolutions techGetLayerName techGetLayerNum techGetLayerNumColorMasks techGetLayerProp techGetLayerRoutingDirections techGetLayerRoutingGrid techGetLayerRoutingGrids techGetLeLswLayers techGetLxExtractLayers techGetLxNoOverlapLayers techGetMPPTemplateByName techGetMPPTemplateNames techGetMfgGridResolution techGetOpenTechFiles techGetOrderedElectricalRule techGetOrderedElectricalRules techGetOrderedSpacingRule techGetOrderedSpacingRules techGetOuterViaLayers techGetParam techGetParams techGetPermission techGetPermissions techGetPrGenViaParams techGetPrGenViaRules techGetPrMastersliceLayers techGetPrNonDefaultParams techGetPrNonDefaultRules techGetPrRoutingDirection techGetPrRoutingLayers techGetPrRoutingOffset techGetPrRoutingPitch techGetPrStackVias techGetPrViaParams techGetPrViaRules techGetPrViaType techGetPrViaTypes techGetPurposeAbbrev techGetPurposeName techGetPurposeNum techGetSpacingRule techGetSpacingRuleTable techGetSpacingRuleTableEntry techGetSpacingRuleTables techGetSpacingRules techGetStampLabelLayers techGetStdViaDefCutColoring techGetTechCutColoring techGetTechFile techGetTechFileDdId techGetTechFileName techGetTechLibName techGetTimeStamp techGetTrimLayerPairs techGetTwoLayerProp techGetUserUnit techGetViaLayers techGetViaSpecTableEntries techGetViaSpecTableEntriesByName techGetViaSpecTableEntry techGetViaStackLimit techGetViaStackLimits techGetViewTypeUnits techIsDBUPerUUSet techIsDevice techIsLPValidBase techIsLeLswLayer techIsLxExtractLayer techIsLxNoOverlapLayer techIsMfgGridResolutionSet techIsPrMastersliceLayer techIsPrRoutingLayer techIsPrStackVia techIsPrViaDevice techIsReadPermission techIsStdViaDefCutColoringSet techIsUserUnitSet techIsViaLayer techMakeVirtuosoIccInfo techManagerOpenDisplayToolBox techManagerOpenTechToolBox techManagerToolBox techOpenDefaultTechFile techOpenTechFile techPurgeTechFile techRefreshTechFile techReopenTechFile techSaveTechFile techSetDBUPerUU techSetDeviceClassProp techSetDeviceProp techSetElectricalRule techSetElectricalRuleTableEntry techSetEquivLayer techSetEquivLayers techSetEvaluate techSetExtractCAP techSetExtractDIODE techSetExtractMOS techSetExtractRES techSetIntegrationColorModel techSetLPAttr techSetLPPacketName techSetLPPriorityInContext techSetLabelLayer techSetLabelLayers techSetLayerAbbrev techSetLayerFunction techSetLayerFunctions techSetLayerMaskNumber techSetLayerMfgResolution techSetLayerMfgResolutions techSetLayerName techSetLayerNumColorMasks techSetLayerProp techSetLayerRoutingGrid techSetLayerRoutingGrids techSetLeLswLayer techSetLeLswLayers techSetLxExtractLayer techSetLxExtractLayers techSetLxNoOverlapLayer techSetLxNoOverlapLayers techSetMPPTemplate techSetMfgGridResolution techSetOrderedElectricalRule techSetOrderedSpacingRule techSetParam techSetPrGenViaRule techSetPrMastersliceLayer techSetPrMastersliceLayers techSetPrNonDefaultRule techSetPrRoutingLayer techSetPrRoutingLayers techSetPrRoutingOffset techSetPrRoutingPitch techSetPrStackVia techSetPrStackVias techSetPrViaRule techSetPrViaType techSetPrViaTypes techSetPrecision techSetPurposeAbbrev techSetPurposeName techSetReadPermission techSetReadWritePermission techSetSpacingRule techSetSpacingRuleTableEntry techSetStampLabelLayer techSetStampLabelLayers techSetStdViaDefCutColoring techSetTechCutColoring techSetTechLibName techSetTimeStamp techSetTwoLayerProp techSetUserUnit techSetViaDefResistancePerCut techSetViaSpecTableEntry techSetViaStackLimit techSetViaStackLimits techTruncateTechFile techUnattachTechFile techVerifyTechFileId temp textFontMap thd theEnvironment throw timeToString timeToTm times tmToTime tokenPrintCapabilities topEdge toplevel totalNoise tracef tracelevlimit tracelevunlimit tracep tracev tran transCdlOutDisplay treeSaveHierarchy treeSaveScreen truename truncate tsg type typep unalias unbreakpt unbreakptMethod uncount undrawEnterFun unimportSymbol uninstallDebugger unityGainFreq unless unprofile unsetShellEnvVar untrace untracep untracev unuseNamespace unwatch unwindProtect updateDependent updateInstanceForDifferentClass updateInstanceForRedefinedClass updateReturnPopupMenuItem upperCase upperRight useNamespace userAppTrigger userMenuTrigger userPostInstallTriggers v value vcdFile vcdInfoFile vcpfeCreateEstimatedRows vcpfePlaceConstraintGroup vcpfeRunCustomDigitalPlacer vdb vdrCreateVoltageLabel vdrCreateVoltageLabelOnNets vdrDeleteLabels vdrGenerateLabelsGUI vecFile vector vectorToList vectorp vfoAbut vfoAllocateProtocolObj vfoAllocateShapeData vfoChopInstance vfoConvertToPolygon vfoCreateObstruction vfoCreateShapeData vfoDeleteObstruction vfoDrawFluidShape vfoGRCreateDeviceClass vfoGRGeometry vfoGRGetCommonQPtr vfoGRGetCreateFormFieldProp vfoGRGetCreateFormIdentifier vfoGRGetCreateFormPointer vfoGRGetExtraArgument vfoGRGetQueuePointer vfoGRMaximizeShapes vfoGRNewCreateForm vfoGRRegCreateFormUpdateCallback vfoGRSetCreateFormAllFieldsInvisible vfoGRSetCreateFormFieldProp vfoGRSetExtraArgument vfoGRSmoothen vfoGetDeviceClassParam vfoGetDeviceFormalParam vfoGetFileListWithLoadSequence vfoGetImplementationClassName vfoGetParam vfoGetProtocolClassName vfoGetVersion vfoGrCreateCDF vfoInstallFluidDeviceFiles vfoMergeInstances vfoReInstallAllFluidGuardRingDevices vfoReInstallGuardRingDevice vfoSetParam vfoSetParams vfoSetProtocolClassName vfoSfDraw vfoSfFinalize vfoSfInitialize vfoSfOuterEdgeCornerContRemoval vfoSmoothen vfoSupportsAbut? vfoSupportsChop? vfoSupportsConvertToPolygon? vfoSupportsCreateObstruction? vfoSupportsDeleteObstruction? vfoSupportsMerge? vfoSupportsUpdateModelShape? vfoTransformFluidShape vfoUpdateModelShape vfpAlignPins vfpCPHGenPhysicalHier vfpCPHGenPhysicalHierNoPropFile vfpCPHLoadFloorplanFile vfpCreateBoundaryPinsForSelectedShapes vfpHiPushPreRoutesDown vfpLoadPhysicalView vfpPinConnectivitySetting vfpPushPreRoutesDown vfpReportIOPadLocation vfpSbDefineObstruction vfpSbDeleteObstruction vfpSbEditIOPin vfpSbEditSoftBlockType vfpSbSetPolygonalBoundary vfpSbSetRectangularBoundary vfreq vh vhdlHiImport vhdlHiInvokeToolBox vhdlImport vhdlPinListToVHDL vhdlRegisterSimulator vhdlToPinList vhmsCompilationFailure vhmsDefaultEdit vhmsGetCellParameters vhmsPinListToVHDLAMS vhmsSaveFile vhmsSymbolToPinListGen vhmsToPinList vhmsUpdateCellCDFParams vi viaRegisterCreateViaInitCallback viaRegisterPostViaEngineCallback viaRegisterPreViaEngineCallback viaSetDefaultCutClasses viaUnregisterCreateViaInitCallback viaUnregisterPostViaEngineCallback viaUnregisterPreViaEngineCallback vicOpenVlogCallBack view vii vil vim vivaInitBindkeys vm vmsUpdateCellViews vosHiDisplayNetlist vosLaunchIrunSimulation vp vpaOptimizePins vr vsaDbType vsaDefVariable vsaEMGetQRCDirAndRunName vsaEMGetSimDirAndAnalysisType vsaEMInitUserCallBack vsaEMUserCallBack vsaError vsaGetNode vsaGetR vsaGetVariable vsaIRGetSimDirAndAnalysisType vsaIRUserCallBack vsaNetlistProc vsaNodeGetIR vsaRegisterEMDataFile vsaRegisterLayerMapFile vsaRegisterQrcTechFile vsaResGetIavg vsaResGetIpeak vsaResGetIrms vsaResGetLayer vsaResGetX vsaResGetY vsaWarn vswr vtime vvDisplayBrowser vvDisplayCalculator wait warn watch waveVsWave weCWHoldWidth weGatherBusWires weGetPathSegWidth weHiEditBus weScaleMagnifierOrDecreaseWidth weScaleMagnifierOrIncreaseWidth weScrollOrCycleDownWireViaAlignment weScrollOrCycleUpWireViaAlignment weSetPathSegWidth when where whereIs which while window windowp write writeTable wtypep xCoord xLimit xcons xdifference xmax xmin xoasInDoTranslate xoasInGetField xoasInSetField xoasOutDoTranslate xoasOutGetField xoasOutSetField xoasisInOnCancel xoasisInOnCompletion xoasisInOnTranslate xoasisOutOnCancel xoasisOutOnCompletion xoasisOutOnTranslate xor xpcDumpCache xpcEnableExpressPcell xplus xquotient xstGetField xstInDoTranslate xstInGetField xstInGetVMLibs xstInOnCancel xstInOnCompletion xstInOnTranslate xstInSaveVMLib xstInSetField xstOutDoTranslate xstOutOnCancel xstOutOnCompletion xstOutOnTranslate xstSetField xtimes xval yCoord yLimit ymax ymin ypm zerop zm zpm zref zxtd"); + var indentKeys = makeKeywords("then else"); + var atomKeys = makeKeywords("t nil"); + + function stateStack(indent, type, prev) { // represents a state stack object + this.indent = indent; + this.type = type; + this.prev = prev; + } + + function pushStack(state, indent, type) { + state.indentStack = new stateStack(indent, type, state.indentStack); + } + + function popStack(state) { + state.indentStack = state.indentStack.prev; + } + + return { + startState: function () { + return { + indentStack: null, + indentation: 0, + multiline: false + }; + }, + + token: function (stream, state) { + if (state.indentStack == null && stream.sol()) { + // update indentation, but only if indentStack is empty + state.indentation = stream.indentation(); + } + + // skip spaces + if (stream.eatSpace()) { + return null; + } + var returnType = null; + var ch = stream.next(); + + if (state.multiline){ + if(ch == "*" && stream.peek() == "/"){ + state.multiline = false; + stream.next(); + } + returnType = COMMENT; + }else if (ch == "\"") { + var next, escaped = false; + while ((next = stream.next()) != null) { + if (next == "\"" && !escaped) { + break; + } + escaped = !escaped && next == "\\"; + } + returnType = STRING; + }else if (ch == "/") { + if(stream.peek() == "*"){ + state.multiline = true; + stream.next(); + returnType = COMMENT; + }else{ + returnType = "operator"; + } + }else if (ch == ";") { + stream.skipToEnd(); + returnType = COMMENT; + }else if (ch == "'") { + if(!stream.eatWhile(/\w/)){ // 'symbol + stream.eatWhile(/[^\)]/); // '(...) + stream.next(); + } + returnType = ATOM; + }else if (ch == "?") { + stream.eatWhile(/\w/); + returnType = "operator"; + }else if (/\d/.test(ch)) { + stream.eatWhile(/[\d\.]/); + returnType = NUMBER; + }else if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + returnType = "operator"; + }else if (ch == "(" || ch == "[" || ch == "{") { + returnType = BRACKET; + pushStack(state, stream.column() + 1, ch); + } else if (ch == ")" || ch == "]" || ch == "}") { + returnType = BRACKET; + if (state.indentStack != null && state.indentStack.type == (ch == ")" ? "(" : (ch == "]" ? "[" : "{"))) { + popStack(state); + } + }else { + stream.eatWhile(/\w/); + if (keywords && keywords.propertyIsEnumerable(stream.current())) { + returnType = BUILTIN; + } else if (atomKeys && atomKeys.propertyIsEnumerable(stream.current())) { + returnType = ATOM; + } else if (indentKeys && indentKeys.propertyIsEnumerable(stream.current())) { + returnType = BUILTIN; + } else returnType = "variable"; + } + return returnType; + }, + + indent: function (state, textAfter) { + var offset = 0; + if(/^[\)\]\}]/.test(textAfter)){ + offset = -1; + } + + for(var val of Object.keys(indentKeys)){ + var _regex = RegExp("^" + val); + if(_regex.test(textAfter)){ + offset = state.indentStack.prev.indent - state.indentStack.indent; + break; + } + } + + if (state.indentStack == null) return state.indentation + offset; + return state.indentStack.indent + offset; + }, + + closeBrackets: {pairs: "()[]{}\"\""}, + blockCommentStart: "/*", + blockCommentEnd: "*/", + lineComment: ";", + fold: "brace" + }; +}); + +CodeMirror.defineMIME("text/x-skill", {name: "Skill", mime: "text/x-skill", mode: "skill", ext: [".il"]}); +}); diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skill/skill.yaml b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skill/skill.yaml new file mode 100644 index 00000000..7e7054d4 --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skill/skill.yaml @@ -0,0 +1,6 @@ +Type: IPython Notebook Extension +Name: SKILL Syntax +Description: Enable SKILL syntax support for CodeMirror +Link: README.md +Main: main.js +Compatibility: 4.x, 5.x diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skip-traceback/icon.png b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skip-traceback/icon.png new file mode 100644 index 00000000..e1626da8 Binary files /dev/null and b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skip-traceback/icon.png differ diff --git a/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skip-traceback/main.js b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skip-traceback/main.js new file mode 100644 index 00000000..108c436c --- /dev/null +++ b/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/skip-traceback/main.js @@ -0,0 +1,204 @@ +// Copyright (c) IPython-Contrib Team. +// Distributed under the terms of the Modified BSD License. + +define([ + 'base/js/namespace', + 'jquery', + 'require', + 'notebook/js/outputarea', +], function ( + Jupyter, + $, + requirejs, + outputarea +) { + "use strict"; + + var mod_name = 'skip-traceback'; + var log_prefix = '[' + mod_name + ']'; + + var cfg = { + enable: true, + use_toolbar_button: false, + button_icon: 'fa-warning', + animation_duration: 100, + show_copy_buttons: true, + }; + + // this will be filled as they're registered + var actions = {}; + + var apply_patches = function () { + + outputarea.OutputArea.prototype.append_error = function (json) { + // firts part is just a copy of the original, but keeping a reference to inserted_text + var inserted_text; + var tb = json.traceback; + if (tb !== undefined && tb.length > 0) { + var s = ''; + var len = tb.length; + for (var i = 0; i < len; i++) { + s = s + tb[i] + '\n'; + } + s = s + '\n'; + var toinsert = this.create_output_area(); + var append_text = outputarea.OutputArea.append_map['text/plain']; + if (append_text) { + inserted_text = append_text.apply(this, [s, {}, toinsert]).addClass('output_error'); + } + this._safe_append(toinsert); + + // now we add our header at the top of the inserted_text + if (!inserted_text) { + return; + } + var copy_btn = $('') + .on('click', function (evt) { + // prevent event bubbling up to collapse/uncollapse traceback + evt.stopPropagation(); + var $copy_btn = $(this) + .tooltip({track: false, trigger: 'manual', placement: 'bottom'}); + // create temporary off-screen textarea for copying text + var $copy_txt_area = $('