added final project notebook and virtual environment files

This commit is contained in:
Brian Wright 2025-11-24 15:24:21 +00:00
parent a2daa16a47
commit 8dd392b20d
586 changed files with 112839 additions and 0 deletions

View file

@ -0,0 +1,51 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "3ba52918",
"metadata": {},
"source": [
"# Final Project Notebook\n",
"\n",
"Use the follow cells prompts to complete the final project for the course. Everything you need should be present in the notebook. "
]
},
{
"cell_type": "markdown",
"id": "8624fe27",
"metadata": {},
"source": [
"[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NovaVolunteer/ds1001_final/blob/main/Final_Project_Notebook.ipynb)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5707e81a",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "finalproj",
"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.12.1"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

247
finalproj/bin/Activate.ps1 Normal file
View file

@ -0,0 +1,247 @@
<#
.Synopsis
Activate a Python virtual environment for the current PowerShell session.
.Description
Pushes the python executable for a virtual environment to the front of the
$Env:PATH environment variable and sets the prompt to signify that you are
in a Python virtual environment. Makes use of the command line switches as
well as the `pyvenv.cfg` file values present in the virtual environment.
.Parameter VenvDir
Path to the directory that contains the virtual environment to activate. The
default value for this is the parent of the directory that the Activate.ps1
script is located within.
.Parameter Prompt
The prompt prefix to display when this virtual environment is activated. By
default, this prompt is the name of the virtual environment folder (VenvDir)
surrounded by parentheses and followed by a single space (ie. '(.venv) ').
.Example
Activate.ps1
Activates the Python virtual environment that contains the Activate.ps1 script.
.Example
Activate.ps1 -Verbose
Activates the Python virtual environment that contains the Activate.ps1 script,
and shows extra information about the activation as it executes.
.Example
Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
Activates the Python virtual environment located in the specified location.
.Example
Activate.ps1 -Prompt "MyPython"
Activates the Python virtual environment that contains the Activate.ps1 script,
and prefixes the current prompt with the specified string (surrounded in
parentheses) while the virtual environment is active.
.Notes
On Windows, it may be required to enable this Activate.ps1 script by setting the
execution policy for the user. You can do this by issuing the following PowerShell
command:
PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
For more information on Execution Policies:
https://go.microsoft.com/fwlink/?LinkID=135170
#>
Param(
[Parameter(Mandatory = $false)]
[String]
$VenvDir,
[Parameter(Mandatory = $false)]
[String]
$Prompt
)
<# Function declarations --------------------------------------------------- #>
<#
.Synopsis
Remove all shell session elements added by the Activate script, including the
addition of the virtual environment's Python executable from the beginning of
the PATH variable.
.Parameter NonDestructive
If present, do not remove this function from the global namespace for the
session.
#>
function global:deactivate ([switch]$NonDestructive) {
# Revert to original values
# The prior prompt:
if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
}
# The prior PYTHONHOME:
if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
}
# The prior PATH:
if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
Remove-Item -Path Env:_OLD_VIRTUAL_PATH
}
# Just remove the VIRTUAL_ENV altogether:
if (Test-Path -Path Env:VIRTUAL_ENV) {
Remove-Item -Path env:VIRTUAL_ENV
}
# Just remove VIRTUAL_ENV_PROMPT altogether.
if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) {
Remove-Item -Path env:VIRTUAL_ENV_PROMPT
}
# Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
}
# Leave deactivate function in the global namespace if requested:
if (-not $NonDestructive) {
Remove-Item -Path function:deactivate
}
}
<#
.Description
Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
given folder, and returns them in a map.
For each line in the pyvenv.cfg file, if that line can be parsed into exactly
two strings separated by `=` (with any amount of whitespace surrounding the =)
then it is considered a `key = value` line. The left hand string is the key,
the right hand is the value.
If the value starts with a `'` or a `"` then the first and last character is
stripped from the value before being captured.
.Parameter ConfigDir
Path to the directory that contains the `pyvenv.cfg` file.
#>
function Get-PyVenvConfig(
[String]
$ConfigDir
) {
Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
# Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
$pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
# An empty map will be returned if no config file is found.
$pyvenvConfig = @{ }
if ($pyvenvConfigPath) {
Write-Verbose "File exists, parse `key = value` lines"
$pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
$pyvenvConfigContent | ForEach-Object {
$keyval = $PSItem -split "\s*=\s*", 2
if ($keyval[0] -and $keyval[1]) {
$val = $keyval[1]
# Remove extraneous quotations around a string value.
if ("'""".Contains($val.Substring(0, 1))) {
$val = $val.Substring(1, $val.Length - 2)
}
$pyvenvConfig[$keyval[0]] = $val
Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
}
}
}
return $pyvenvConfig
}
<# Begin Activate script --------------------------------------------------- #>
# Determine the containing directory of this script
$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
$VenvExecDir = Get-Item -Path $VenvExecPath
Write-Verbose "Activation script is located in path: '$VenvExecPath'"
Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
# Set values required in priority: CmdLine, ConfigFile, Default
# First, get the location of the virtual environment, it might not be
# VenvExecDir if specified on the command line.
if ($VenvDir) {
Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
}
else {
Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
$VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
Write-Verbose "VenvDir=$VenvDir"
}
# Next, read the `pyvenv.cfg` file to determine any required value such
# as `prompt`.
$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
# Next, set the prompt from the command line, or the config file, or
# just use the name of the virtual environment folder.
if ($Prompt) {
Write-Verbose "Prompt specified as argument, using '$Prompt'"
}
else {
Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
$Prompt = $pyvenvCfg['prompt'];
}
else {
Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)"
Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
$Prompt = Split-Path -Path $venvDir -Leaf
}
}
Write-Verbose "Prompt = '$Prompt'"
Write-Verbose "VenvDir='$VenvDir'"
# Deactivate any currently active virtual environment, but leave the
# deactivate function in place.
deactivate -nondestructive
# Now set the environment variable VIRTUAL_ENV, used by many tools to determine
# that there is an activated venv.
$env:VIRTUAL_ENV = $VenvDir
if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
Write-Verbose "Setting prompt to '$Prompt'"
# Set the prompt to include the env name
# Make sure _OLD_VIRTUAL_PROMPT is global
function global:_OLD_VIRTUAL_PROMPT { "" }
Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
function global:prompt {
Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
_OLD_VIRTUAL_PROMPT
}
$env:VIRTUAL_ENV_PROMPT = $Prompt
}
# Clear PYTHONHOME
if (Test-Path -Path Env:PYTHONHOME) {
Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
Remove-Item -Path Env:PYTHONHOME
}
# Add the venv to the PATH
Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"

70
finalproj/bin/activate Normal file
View file

@ -0,0 +1,70 @@
# This file must be used with "source bin/activate" *from bash*
# You cannot run it directly
deactivate () {
# reset old environment variables
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
PATH="${_OLD_VIRTUAL_PATH:-}"
export PATH
unset _OLD_VIRTUAL_PATH
fi
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi
# Call hash to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
hash -r 2> /dev/null
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
PS1="${_OLD_VIRTUAL_PS1:-}"
export PS1
unset _OLD_VIRTUAL_PS1
fi
unset VIRTUAL_ENV
unset VIRTUAL_ENV_PROMPT
if [ ! "${1:-}" = "nondestructive" ] ; then
# Self destruct!
unset -f deactivate
fi
}
# unset irrelevant variables
deactivate nondestructive
# on Windows, a path can contain colons and backslashes and has to be converted:
if [ "$OSTYPE" = "cygwin" ] || [ "$OSTYPE" = "msys" ] ; then
# transform D:\path\to\venv to /d/path/to/venv on MSYS
# and to /cygdrive/d/path/to/venv on Cygwin
export VIRTUAL_ENV=$(cygpath "/workspaces/ds1001_final/finalproj")
else
# use the path as-is
export VIRTUAL_ENV="/workspaces/ds1001_final/finalproj"
fi
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH
# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if [ -n "${PYTHONHOME:-}" ] ; then
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
unset PYTHONHOME
fi
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
_OLD_VIRTUAL_PS1="${PS1:-}"
PS1="(finalproj) ${PS1:-}"
export PS1
VIRTUAL_ENV_PROMPT="(finalproj) "
export VIRTUAL_ENV_PROMPT
fi
# Call hash to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
hash -r 2> /dev/null

View file

@ -0,0 +1,27 @@
# This file must be used with "source bin/activate.csh" *from csh*.
# You cannot run it directly.
# Created by Davide Di Blasi <davidedb@gmail.com>.
# Ported to Python 3.3 venv by Andrew Svetlov <andrew.svetlov@gmail.com>
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate'
# Unset irrelevant variables.
deactivate nondestructive
setenv VIRTUAL_ENV "/workspaces/ds1001_final/finalproj"
set _OLD_VIRTUAL_PATH="$PATH"
setenv PATH "$VIRTUAL_ENV/bin:$PATH"
set _OLD_VIRTUAL_PROMPT="$prompt"
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
set prompt = "(finalproj) $prompt"
setenv VIRTUAL_ENV_PROMPT "(finalproj) "
endif
alias pydoc python -m pydoc
rehash

View file

@ -0,0 +1,69 @@
# This file must be used with "source <venv>/bin/activate.fish" *from fish*
# (https://fishshell.com/). You cannot run it directly.
function deactivate -d "Exit virtual environment and return to normal shell environment"
# reset old environment variables
if test -n "$_OLD_VIRTUAL_PATH"
set -gx PATH $_OLD_VIRTUAL_PATH
set -e _OLD_VIRTUAL_PATH
end
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
set -e _OLD_VIRTUAL_PYTHONHOME
end
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
set -e _OLD_FISH_PROMPT_OVERRIDE
# prevents error when using nested fish instances (Issue #93858)
if functions -q _old_fish_prompt
functions -e fish_prompt
functions -c _old_fish_prompt fish_prompt
functions -e _old_fish_prompt
end
end
set -e VIRTUAL_ENV
set -e VIRTUAL_ENV_PROMPT
if test "$argv[1]" != "nondestructive"
# Self-destruct!
functions -e deactivate
end
end
# Unset irrelevant variables.
deactivate nondestructive
set -gx VIRTUAL_ENV "/workspaces/ds1001_final/finalproj"
set -gx _OLD_VIRTUAL_PATH $PATH
set -gx PATH "$VIRTUAL_ENV/bin" $PATH
# Unset PYTHONHOME if set.
if set -q PYTHONHOME
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
set -e PYTHONHOME
end
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
# fish uses a function instead of an env var to generate the prompt.
# Save the current fish_prompt function as the function _old_fish_prompt.
functions -c fish_prompt _old_fish_prompt
# With the original prompt function renamed, we can override with our own.
function fish_prompt
# Save the return status of the last command.
set -l old_status $status
# Output the venv prompt; color taken from the blue of the Python logo.
printf "%s%s%s" (set_color 4B8BBE) "(finalproj) " (set_color normal)
# Restore the return status of the previous command.
echo "exit $old_status" | .
# Output the original/"old" prompt.
_old_fish_prompt
end
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
set -gx VIRTUAL_ENV_PROMPT "(finalproj) "
end

8
finalproj/bin/debugpy Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from debugpy.server.cli import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/debugpy-adapter Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from debugpy.adapter.__main__ import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/httpx Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from httpx import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/ipython Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from IPython import start_ipython
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(start_ipython())

8
finalproj/bin/ipython3 Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from IPython import start_ipython
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(start_ipython())

8
finalproj/bin/jlpm Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyterlab.jlpmapp import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

67
finalproj/bin/jsonpointer Executable file
View file

@ -0,0 +1,67 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import argparse
import json
import sys
import jsonpointer
parser = argparse.ArgumentParser(
description='Resolve a JSON pointer on JSON files')
# Accept pointer as argument or as file
ptr_group = parser.add_mutually_exclusive_group(required=True)
ptr_group.add_argument('-f', '--pointer-file', type=argparse.FileType('r'),
nargs='?',
help='File containing a JSON pointer expression')
ptr_group.add_argument('POINTER', type=str, nargs='?',
help='A JSON pointer expression')
parser.add_argument('FILE', type=argparse.FileType('r'), nargs='+',
help='Files for which the pointer should be resolved')
parser.add_argument('--indent', type=int, default=None,
help='Indent output by n spaces')
parser.add_argument('-v', '--version', action='version',
version='%(prog)s ' + jsonpointer.__version__)
def main():
try:
resolve_files()
except KeyboardInterrupt:
sys.exit(1)
def parse_pointer(args):
if args.POINTER:
ptr = args.POINTER
elif args.pointer_file:
ptr = args.pointer_file.read().strip()
else:
parser.print_usage()
sys.exit(1)
return ptr
def resolve_files():
""" Resolve a JSON pointer on JSON files """
args = parser.parse_args()
ptr = parse_pointer(args)
for f in args.FILE:
doc = json.load(f)
try:
result = jsonpointer.resolve_pointer(doc, ptr)
print(json.dumps(result, indent=args.indent))
except jsonpointer.JsonPointerException as e:
print('Could not resolve pointer: %s' % str(e), file=sys.stderr)
if __name__ == "__main__":
main()

8
finalproj/bin/jsonschema Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jsonschema.cli import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/jupyter Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyter_core.command import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/jupyter-console Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyter_console.app import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/jupyter-dejavu Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from nbconvert.nbconvertapp import dejavu_main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(dejavu_main())

8
finalproj/bin/jupyter-events Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyter_events.cli import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/jupyter-execute Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from nbclient.cli import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/jupyter-kernel Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyter_client.kernelapp import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyter_client.kernelspecapp import KernelSpecApp
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(KernelSpecApp.launch_instance())

8
finalproj/bin/jupyter-lab Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyterlab.labapp import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyterlab.labextensions import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/jupyter-labhub Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyterlab.labhubapp import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/jupyter-migrate Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyter_core.migrate import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from nbconvert.nbconvertapp import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/jupyter-notebook Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from notebook.app import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/jupyter-run Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyter_client.runapp import RunApp
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(RunApp.launch_instance())

8
finalproj/bin/jupyter-server Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyter_server.serverapp import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from jupyter_core.troubleshoot import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/jupyter-trust Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from nbformat.sign import TrustNotebookApp
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(TrustNotebookApp.launch_instance())

8
finalproj/bin/normalizer Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from charset_normalizer.cli import cli_detect
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(cli_detect())

8
finalproj/bin/pip Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/pip3 Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/pip3.12 Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/pybabel Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from babel.messages.frontend import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/pygmentize Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pygments.cmdline import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/pyjson5 Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from json5.tool import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

1
finalproj/bin/python Symbolic link
View file

@ -0,0 +1 @@
python3

1
finalproj/bin/python3 Symbolic link
View file

@ -0,0 +1 @@
/home/codespace/.python/current/bin/python3

1
finalproj/bin/python3.12 Symbolic link
View file

@ -0,0 +1 @@
python3

8
finalproj/bin/send2trash Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from send2trash.__main__ import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

8
finalproj/bin/wsdump Executable file
View file

@ -0,0 +1,8 @@
#!/workspaces/ds1001_final/finalproj/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from websocket._wsdump import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

View file

@ -0,0 +1,7 @@
{
"NotebookApp": {
"nbserver_extensions": {
"jupyterlab": true
}
}
}

View file

@ -0,0 +1,7 @@
{
"ServerApp": {
"jpserver_extensions": {
"jupyter_lsp": true
}
}
}

View file

@ -0,0 +1,7 @@
{
"ServerApp": {
"jpserver_extensions": {
"jupyter_server_terminals": true
}
}
}

View file

@ -0,0 +1,7 @@
{
"ServerApp": {
"jpserver_extensions": {
"jupyterlab": true
}
}
}

View file

@ -0,0 +1,7 @@
{
"ServerApp": {
"jpserver_extensions": {
"notebook": true
}
}
}

View file

@ -0,0 +1,7 @@
{
"ServerApp": {
"jpserver_extensions": {
"notebook_shim": true
}
}
}

View file

@ -0,0 +1,5 @@
{
"load_extensions": {
"jupyter-js-widgets/extension": true
}
}

1
finalproj/lib64 Symbolic link
View file

@ -0,0 +1 @@
lib

5
finalproj/pyvenv.cfg Normal file
View file

@ -0,0 +1,5 @@
home = /home/codespace/.python/current/bin
include-system-site-packages = false
version = 3.12.1
executable = /usr/local/python/3.12.1/bin/python3.12
command = /home/codespace/.python/current/bin/python3 -m venv /workspaces/ds1001_final/finalproj

View file

@ -0,0 +1,11 @@
[Desktop Entry]
Name=Jupyter Notebook
Comment=Run Jupyter Notebook
Exec=jupyter-notebook %f
Terminal=true
Type=Application
Icon=notebook
StartupNotify=true
MimeType=application/x-ipynb+json;
Categories=Development;Education;
Keywords=python;

View file

@ -0,0 +1,11 @@
[Desktop Entry]
Name=JupyterLab
Comment=Run JupyterLab
Exec=jupyter-lab %f
Terminal=true
Type=Application
Icon=jupyterlab
StartupNotify=true
MimeType=application/x-ipynb+json;
Categories=Development;Education;
Keywords=python;

View file

@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="51"
height="51"
viewBox="0 0 51 51"
version="2.0"
id="svg40"
sodipodi:docname="jupyter.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:figma="http://www.figma.com/figma/ns">
<sodipodi:namedview
id="namedview42"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="15.862745"
inkscape:cx="19.353523"
inkscape:cy="15.381953"
inkscape:window-width="1920"
inkscape:window-height="979"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg40" />
<title
id="title2">logo-5.svg</title>
<desc
id="desc4">Created using Figma 0.90</desc>
<g
id="Canvas"
transform="translate(-1631.819,-2281)"
figma:type="canvas">
<g
id="logo"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="g"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path7 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path0_fill"
transform="translate(1669.3,2281.31)"
fill="#767677"
style="mix-blend-mode:normal"
id="use6" />
</g>
</g>
<g
id="g13"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path8 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path1_fill"
transform="translate(1639.74,2311.98)"
fill="#f37726"
style="mix-blend-mode:normal"
id="use10" />
</g>
</g>
<g
id="g18"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path9 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path2_fill"
transform="translate(1639.73,2285.48)"
fill="#f37726"
style="mix-blend-mode:normal"
id="use15" />
</g>
</g>
<g
id="g23"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path10 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path3_fill"
transform="translate(1639.8,2323.81)"
fill="#989798"
style="mix-blend-mode:normal"
id="use20" />
</g>
</g>
<g
id="g28"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path11 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path4_fill"
transform="translate(1638.36,2286.06)"
fill="#6f7070"
style="mix-blend-mode:normal"
id="use25" />
</g>
</g>
</g>
</g>
</g>
<defs
id="defs38">
<path
id="path0_fill"
d="M 5.89353,2.844 C 5.91889,3.43165 5.77085,4.01367 5.46815,4.51645 5.16545,5.01922 4.72168,5.42015 4.19299,5.66851 3.6643,5.91688 3.07444,6.00151 2.49805,5.91171 1.92166,5.8219 1.38463,5.5617 0.954898,5.16401 0.52517,4.76633 0.222056,4.24903 0.0839037,3.67757 -0.0542483,3.10611 -0.02123,2.50617 0.178781,1.95364 0.378793,1.4011 0.736809,0.920817 1.20754,0.573538 1.67826,0.226259 2.24055,0.0275919 2.82326,0.00267229 3.60389,-0.0307115 4.36573,0.249789 4.94142,0.782551 5.51711,1.31531 5.85956,2.05676 5.89353,2.844 Z" />
<path
id="path1_fill"
d="M 18.2646,7.13411 C 10.4145,7.13411 3.55872,4.2576 0,0 c 1.32539,3.8204 3.79556,7.13081 7.0686,9.47303 3.2731,2.34217 7.1871,3.60037 11.2004,3.60037 4.0133,0 7.9273,-1.2582 11.2004,-3.60037 C 32.7424,7.13081 35.2126,3.8204 36.538,0 32.9705,4.2576 26.1148,7.13411 18.2646,7.13411 Z" />
<path
id="path2_fill"
d="m 18.2733,5.93931 c 7.8502,0 14.706,2.87652 18.2647,7.13409 C 35.2126,9.25303 32.7424,5.94262 29.4694,3.6004 26.1963,1.25818 22.2823,0 18.269,0 14.2557,0 10.3417,1.25818 7.0686,3.6004 3.79556,5.94262 1.32539,9.25303 0,13.0734 3.56745,8.82463 10.4232,5.93931 18.2733,5.93931 Z" />
<path
id="path3_fill"
d="M 7.42789,3.58338 C 7.46008,4.3243 7.27355,5.05819 6.89193,5.69213 6.51031,6.32607 5.95075,6.83156 5.28411,7.1446 4.61747,7.45763 3.87371,7.56414 3.14702,7.45063 2.42032,7.33712 1.74336,7.0087 1.20184,6.50695 0.660328,6.0052 0.27861,5.35268 0.105017,4.63202 -0.0685757,3.91135 -0.0262361,3.15494 0.226675,2.45856 0.479587,1.76217 0.931697,1.15713 1.52576,0.720033 2.11983,0.282935 2.82914,0.0334395 3.56389,0.00313344 4.54667,-0.0374033 5.50529,0.316706 6.22961,0.987835 6.95393,1.65896 7.38484,2.59235 7.42789,3.58338 Z" />
<path
id="path4_fill"
d="M 2.27471,4.39629 C 1.84363,4.41508 1.41671,4.30445 1.04799,4.07843 0.679268,3.8524 0.385328,3.52114 0.203371,3.12656 0.0214136,2.73198 -0.0403798,2.29183 0.0258116,1.86181 0.0920031,1.4318 0.283204,1.03126 0.575213,0.710883 0.867222,0.39051 1.24691,0.164708 1.66622,0.0620592 2.08553,-0.0405897 2.52561,-0.0154714 2.93076,0.134235 3.33591,0.283941 3.68792,0.551505 3.94222,0.90306 4.19652,1.25462 4.34169,1.67436 4.35935,2.10916 4.38299,2.69107 4.17678,3.25869 3.78597,3.68746 3.39516,4.11624 2.85166,4.37116 2.27471,4.39629 Z" />
</defs>
<metadata
id="metadata271">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>logo-5.svg</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg>

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

@ -0,0 +1,335 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:figma="http://www.figma.com/figma/ns"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="48"
height="48"
viewBox="0 0 48 48"
version="2.0"
id="svg85">
<metadata
id="metadata89">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>logo.svg</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<title
id="title2">logo.svg</title>
<desc
id="desc4">Created using Figma 0.90</desc>
<g
id="Canvas"
transform="matrix(0.95978128,0,0,0.95978128,-1567.3205,-2009.0932)"
figma:type="canvas">
<g
id="logo"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="Group"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="g"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path0 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path0_fill"
transform="translate(1688.87,2106.23)"
fill="#4e4e4e"
style="mix-blend-mode:normal"
id="use6"
x="0"
y="0"
width="100%"
height="100%" />
</g>
</g>
<g
id="g13"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path1 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path1_fill"
transform="translate(1705.38,2106.19)"
fill="#4e4e4e"
style="mix-blend-mode:normal"
id="use10"
x="0"
y="0"
width="100%"
height="100%" />
</g>
</g>
<g
id="g18"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path2 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path2_fill"
transform="translate(1730.18,2105.67)"
fill="#4e4e4e"
style="mix-blend-mode:normal"
id="use15"
x="0"
y="0"
width="100%"
height="100%" />
</g>
</g>
<g
id="g23"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path3 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path3_fill"
transform="translate(1752.94,2106.21)"
fill="#4e4e4e"
style="mix-blend-mode:normal"
id="use20"
x="0"
y="0"
width="100%"
height="100%" />
</g>
</g>
<g
id="g28"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path4 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path4_fill"
transform="translate(1775.8,2100.04)"
fill="#4e4e4e"
style="mix-blend-mode:normal"
id="use25"
x="0"
y="0"
width="100%"
height="100%" />
</g>
</g>
<g
id="g33"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path5 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path5_fill"
transform="translate(1791.75,2105.71)"
fill="#4e4e4e"
style="mix-blend-mode:normal"
id="use30"
x="0"
y="0"
width="100%"
height="100%" />
</g>
</g>
<g
id="g38"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path6 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path6_fill"
transform="translate(1815.77,2105.72)"
fill="#4e4e4e"
style="mix-blend-mode:normal"
id="use35"
x="0"
y="0"
width="100%"
height="100%" />
</g>
</g>
</g>
</g>
<g
id="g67"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="g45"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path7 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path7_fill"
transform="translate(1669.3,2093.31)"
fill="#767677"
style="mix-blend-mode:normal"
id="use42"
x="0"
y="0"
width="100%"
height="100%" />
</g>
</g>
<g
id="g50"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path8 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path8_fill"
transform="translate(1639.74,2123.98)"
fill="#f37726"
style="mix-blend-mode:normal"
id="use47"
x="0"
y="0"
width="100%"
height="100%" />
</g>
</g>
<g
id="g55"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path9 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path9_fill"
transform="translate(1639.73,2097.48)"
fill="#f37726"
style="mix-blend-mode:normal"
id="use52"
x="0"
y="0"
width="100%"
height="100%" />
</g>
</g>
<g
id="g60"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path10 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path10_fill"
transform="translate(1639.8,2135.81)"
fill="#989798"
style="mix-blend-mode:normal"
id="use57"
x="0"
y="0"
width="100%"
height="100%" />
</g>
</g>
<g
id="g65"
style="mix-blend-mode:normal"
figma:type="group">
<g
id="path11 fill"
style="mix-blend-mode:normal"
figma:type="vector">
<use
xlink:href="#path11_fill"
transform="translate(1638.36,2098.06)"
fill="#6f7070"
style="mix-blend-mode:normal"
id="use62"
x="0"
y="0"
width="100%"
height="100%" />
</g>
</g>
</g>
</g>
</g>
<defs
id="defs83">
<path
id="path0_fill"
d="m 5.62592,17.9276 c 0,5.1461 -0.3925,6.8263 -1.43919,8.0666 C 3.04416,27.0501 1.54971,27.6341 0,27.6304 l 0.392506,3.0612 C 2.79452,30.7249 5.12302,29.8564 6.92556,28.255 8.80086,26.3021 9.45504,23.6015 9.45504,19.4583 V 0 H 5.6172 v 17.954 z" />
<path
id="path1_fill"
d="m 17.7413,15.6229 c 0,2.2168 0,4.1696 0.1744,5.8498 h -3.3581 l -0.218,-3.5187 h -0.0873 c -0.7069,1.2298 -1.7261,2.2473 -2.9526,2.9477 -1.2265,0.7005 -2.61593,1.0585 -4.02525,1.0372 C 3.95995,21.9389 0,20.074 0,12.5441 V 0 h 3.83784 v 11.9019 c 0,4.0817 1.22113,6.8262 4.70135,6.8262 1.09173,-0.0201 2.15331,-0.3647 3.05161,-0.9907 0.8984,-0.6259 1.5936,-1.5053 1.9986,-2.5279 0.2328,-0.6395 0.351,-1.3157 0.3489,-1.9969 V 0.0175934 h 3.8379 V 15.6229 Z" />
<path
id="path2_fill"
d="M 0.174447,7.53632 C 0.174447,4.79175 0.0872236,2.57499 0,0.498968 H 3.44533 L 3.61978,4.17598 H 3.707 C 4.46074,2.85853 5.55705,1.77379 6.87754,1.03893 8.19802,0.304077 9.69248,-0.0529711 11.1995,0.0063534 c 5.0939,0 8.9317,4.3983466 8.9317,10.9078466 0,7.7147 -4.6141,11.5237 -9.5946,11.5237 C 9.25812,22.492 7.98766,22.2098 6.84994,21.6192 5.71222,21.0285 4.74636,20.1496 4.04718,19.0688 H 3.95995 V 30.7244 H 0.165725 V 7.50113 Z M 3.96868,13.2542 c 0.01001,0.5349 0.0684,1.0679 0.17444,1.5922 0.31262,1.3003 1.0491,2.4571 2.09137,3.2849 1.04228,0.8279 2.32997,1.2788 3.65667,1.2805 4.05594,0 6.40224,-3.3691 6.40224,-8.2864 0,-4.30162 -2.2242,-7.97863 -6.2714,-7.97863 C 8.66089,3.18518 7.35158,3.68134 6.30219,4.55638 5.25279,5.43143 4.52354,6.63513 4.23035,7.97615 4.07662,8.49357 3.98869,9.02858 3.96868,9.56835 v 3.67705 z" />
<path
id="path3_fill"
d="M 4.16057,0 8.7747,12.676 c 0.47973,1.4163 1.00307,3.1053 1.352,4.3984 h 0.0872 c 0.3925,-1.2843 0.8286,-2.9293 1.352,-4.4775 L 15.7526,0.00879669 h 4.0559 L 14.0604,15.3062 C 11.3129,22.6603 9.44632,26.434 6.82961,28.7388 5.50738,29.9791 3.88672,30.8494 2.12826,31.2634 L 1.1688,27.9823 C 2.39912,27.5689 3.53918,26.9208 4.52691,26.0734 5.92259,24.8972 7.02752,23.4094 7.75418,21.7278 7.90932,21.4374 8.01266,21.1218 8.05946,20.7954 8.02501,20.4436 7.93674,20.0994 7.79779,19.7749 L 0,0.00879669 h 4.18673 z" />
<path
id="path4_fill"
d="m 7.0215,0 v 6.15768 h 5.4864 V 9.13096 H 7.0215 V 20.6898 c 0,2.639 0.7414,4.1696 2.87838,4.1696 0.74972,0.0118 1.49762,-0.077 2.22422,-0.2639 l 0.1744,2.9293 C 11.207,27.9125 10.0534,28.0915 8.89681,28.0526 8.1298,28.1 7.36177,27.9782 6.64622,27.6956 5.93068,27.413 5.28484,26.9765 4.75369,26.4164 3.66339,25.2641 3.27089,23.3552 3.27089,20.8306 V 9.13096 H 0 V 6.15768 H 3.27089 V 1.01162 Z" />
<path
id="path5_fill"
d="m 3.6285,11.9283 c 0.08723,5.278 3.40172,7.4508 7.2308,7.4508 2.0019,0.0634 3.9934,-0.3149 5.8353,-1.1084 l 0.6542,2.7886 c -2.2069,0.9347 -4.585,1.3874 -6.9779,1.3283 C 3.88145,22.3876 0,18.042 0,11.5676 0,5.09328 3.75062,0 9.89116,0 16.7731,0 18.6135,6.15768 18.6135,10.1074 18.607,10.7165 18.5634,11.3246 18.4827,11.9283 H 3.65467 Z M 14.8716,9.13976 c 0.0436,-2.48067 -1.003,-6.34241 -5.31189,-6.34241 -3.88145,0 -5.57359,3.63303 -5.87887,6.34241 H 14.8803 Z" />
<path
id="path6_fill"
d="M 0.174447,7.17854 C 0.174447,4.65389 0.130835,2.48111 0,0.484261 H 3.35811 L 3.48894,4.69787 H 3.66339 C 4.62285,1.81256 6.93428,4.4283e-4 9.49865,4.4283e-4 9.8663,-0.0049786 10.233,0.0394012 10.5889,0.132393 V 3.80941 C 10.1593,3.71494 9.72029,3.67067 9.28059,3.67746 6.57666,3.67746 4.66646,5.76227 4.14312,8.68277 4.03516,9.28384 3.97681,9.89289 3.96867,10.5037 V 21.9394 H 0.174447 Z" />
<path
id="path7_fill"
d="M 5.89353,2.844 C 5.91889,3.43165 5.77085,4.01367 5.46815,4.51645 5.16545,5.01922 4.72168,5.42015 4.19299,5.66851 3.6643,5.91688 3.07444,6.00151 2.49805,5.91171 1.92166,5.8219 1.38463,5.5617 0.954898,5.16401 0.52517,4.76633 0.222056,4.24903 0.0839037,3.67757 -0.0542483,3.10611 -0.02123,2.50617 0.178781,1.95364 0.378793,1.4011 0.736809,0.920817 1.20754,0.573538 1.67826,0.226259 2.24055,0.0275919 2.82326,0.00267229 3.60389,-0.0307115 4.36573,0.249789 4.94142,0.782551 5.51711,1.31531 5.85956,2.05676 5.89353,2.844 Z" />
<path
id="path8_fill"
d="M 18.2646,7.13411 C 10.4145,7.13411 3.55872,4.2576 0,0 c 1.32539,3.8204 3.79556,7.13081 7.0686,9.47303 3.2731,2.34217 7.1871,3.60037 11.2004,3.60037 4.0133,0 7.9273,-1.2582 11.2004,-3.60037 C 32.7424,7.13081 35.2126,3.8204 36.538,0 32.9705,4.2576 26.1148,7.13411 18.2646,7.13411 Z" />
<path
id="path9_fill"
d="m 18.2733,5.93931 c 7.8502,0 14.706,2.87652 18.2647,7.13409 C 35.2126,9.25303 32.7424,5.94262 29.4694,3.6004 26.1963,1.25818 22.2823,0 18.269,0 14.2557,0 10.3417,1.25818 7.0686,3.6004 3.79556,5.94262 1.32539,9.25303 0,13.0734 3.56745,8.82463 10.4232,5.93931 18.2733,5.93931 Z" />
<path
id="path10_fill"
d="M 7.42789,3.58338 C 7.46008,4.3243 7.27355,5.05819 6.89193,5.69213 6.51031,6.32607 5.95075,6.83156 5.28411,7.1446 4.61747,7.45763 3.87371,7.56414 3.14702,7.45063 2.42032,7.33712 1.74336,7.0087 1.20184,6.50695 0.660328,6.0052 0.27861,5.35268 0.105017,4.63202 -0.0685757,3.91135 -0.0262361,3.15494 0.226675,2.45856 0.479587,1.76217 0.931697,1.15713 1.52576,0.720033 2.11983,0.282935 2.82914,0.0334395 3.56389,0.00313344 4.54667,-0.0374033 5.50529,0.316706 6.22961,0.987835 6.95393,1.65896 7.38484,2.59235 7.42789,3.58338 Z" />
<path
id="path11_fill"
d="M 2.27471,4.39629 C 1.84363,4.41508 1.41671,4.30445 1.04799,4.07843 0.679268,3.8524 0.385328,3.52114 0.203371,3.12656 0.0214136,2.73198 -0.0403798,2.29183 0.0258116,1.86181 0.0920031,1.4318 0.283204,1.03126 0.575213,0.710883 0.867222,0.39051 1.24691,0.164708 1.66622,0.0620592 2.08553,-0.0405897 2.52561,-0.0154714 2.93076,0.134235 3.33591,0.283941 3.68792,0.551505 3.94222,0.90306 4.19652,1.25462 4.34169,1.67436 4.35935,2.10916 4.38299,2.69107 4.17678,3.25869 3.78597,3.68746 3.39516,4.11624 2.85166,4.37116 2.27471,4.39629 Z" />
</defs>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -0,0 +1,14 @@
{
"argv": [
"python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3 (ipykernel)",
"language": "python",
"metadata": {
"debugger": true
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -0,0 +1,265 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
version="1.0"
id="svg2"
sodipodi:version="0.32"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
sodipodi:docname="python-logo-only.svg"
width="83.371017pt"
height="101.00108pt"
inkscape:export-filename="python-logo-only.png"
inkscape:export-xdpi="232.44"
inkscape:export-ydpi="232.44"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata371">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:window-height="2080"
inkscape:window-width="1976"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
inkscape:zoom="2.1461642"
inkscape:cx="91.558698"
inkscape:cy="47.9926"
inkscape:window-x="1092"
inkscape:window-y="72"
inkscape:current-layer="svg2"
width="210mm"
height="40mm"
units="mm"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="pt"
showgrid="false"
inkscape:window-maximized="0" />
<defs
id="defs4">
<linearGradient
id="linearGradient2795">
<stop
style="stop-color:#b8b8b8;stop-opacity:0.49803922;"
offset="0"
id="stop2797" />
<stop
style="stop-color:#7f7f7f;stop-opacity:0;"
offset="1"
id="stop2799" />
</linearGradient>
<linearGradient
id="linearGradient2787">
<stop
style="stop-color:#7f7f7f;stop-opacity:0.5;"
offset="0"
id="stop2789" />
<stop
style="stop-color:#7f7f7f;stop-opacity:0;"
offset="1"
id="stop2791" />
</linearGradient>
<linearGradient
id="linearGradient3676">
<stop
style="stop-color:#b2b2b2;stop-opacity:0.5;"
offset="0"
id="stop3678" />
<stop
style="stop-color:#b3b3b3;stop-opacity:0;"
offset="1"
id="stop3680" />
</linearGradient>
<linearGradient
id="linearGradient3236">
<stop
style="stop-color:#f4f4f4;stop-opacity:1"
offset="0"
id="stop3244" />
<stop
style="stop-color:white;stop-opacity:1"
offset="1"
id="stop3240" />
</linearGradient>
<linearGradient
id="linearGradient4671">
<stop
style="stop-color:#ffd43b;stop-opacity:1;"
offset="0"
id="stop4673" />
<stop
style="stop-color:#ffe873;stop-opacity:1"
offset="1"
id="stop4675" />
</linearGradient>
<linearGradient
id="linearGradient4689">
<stop
style="stop-color:#5a9fd4;stop-opacity:1;"
offset="0"
id="stop4691" />
<stop
style="stop-color:#306998;stop-opacity:1;"
offset="1"
id="stop4693" />
</linearGradient>
<linearGradient
x1="224.23996"
y1="144.75717"
x2="-65.308502"
y2="144.75717"
id="linearGradient2987"
xlink:href="#linearGradient4671"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(100.2702,99.61116)" />
<linearGradient
x1="172.94208"
y1="77.475983"
x2="26.670298"
y2="76.313133"
id="linearGradient2990"
xlink:href="#linearGradient4689"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(100.2702,99.61116)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4689"
id="linearGradient2587"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(100.2702,99.61116)"
x1="172.94208"
y1="77.475983"
x2="26.670298"
y2="76.313133" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4671"
id="linearGradient2589"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(100.2702,99.61116)"
x1="224.23996"
y1="144.75717"
x2="-65.308502"
y2="144.75717" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4689"
id="linearGradient2248"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(100.2702,99.61116)"
x1="172.94208"
y1="77.475983"
x2="26.670298"
y2="76.313133" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4671"
id="linearGradient2250"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(100.2702,99.61116)"
x1="224.23996"
y1="144.75717"
x2="-65.308502"
y2="144.75717" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4671"
id="linearGradient2255"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)"
x1="224.23996"
y1="144.75717"
x2="-65.308502"
y2="144.75717" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4689"
id="linearGradient2258"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)"
x1="172.94208"
y1="76.176224"
x2="26.670298"
y2="76.313133" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient2795"
id="radialGradient2801"
cx="61.518883"
cy="132.28575"
fx="61.518883"
fy="132.28575"
r="29.036913"
gradientTransform="matrix(1,0,0,0.177966,0,108.7434)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4671"
id="linearGradient1475"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.562541,0,0,0.567972,-14.99112,-11.702371)"
x1="150.96111"
y1="192.35176"
x2="112.03144"
y2="137.27299" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4689"
id="linearGradient1478"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.562541,0,0,0.567972,-14.99112,-11.702371)"
x1="26.648937"
y1="20.603781"
x2="135.66525"
y2="114.39767" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient2795"
id="radialGradient1480"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.7490565e-8,-0.23994696,1.054668,3.7915457e-7,-83.7008,142.46201)"
cx="61.518883"
cy="132.28575"
fx="61.518883"
fy="132.28575"
r="29.036913" />
</defs>
<path
style="fill:url(#linearGradient1478);fill-opacity:1"
d="M 54.918785,9.1927421e-4 C 50.335132,0.02221727 45.957846,0.41313697 42.106285,1.0946693 30.760069,3.0991731 28.700036,7.2947714 28.700035,15.032169 v 10.21875 h 26.8125 v 3.40625 h -26.8125 -10.0625 c -7.792459,0 -14.6157588,4.683717 -16.7499998,13.59375 -2.46181998,10.212966 -2.57101508,16.586023 0,27.25 1.9059283,7.937852 6.4575432,13.593748 14.2499998,13.59375 h 9.21875 v -12.25 c 0,-8.849902 7.657144,-16.656248 16.75,-16.65625 h 26.78125 c 7.454951,0 13.406253,-6.138164 13.40625,-13.625 v -25.53125 c 0,-7.2663386 -6.12998,-12.7247771 -13.40625,-13.9374997 C 64.281548,0.32794397 59.502438,-0.02037903 54.918785,9.1927421e-4 Z m -14.5,8.21875012579 c 2.769547,0 5.03125,2.2986456 5.03125,5.1249996 -2e-6,2.816336 -2.261703,5.09375 -5.03125,5.09375 -2.779476,-1e-6 -5.03125,-2.277415 -5.03125,-5.09375 -10e-7,-2.826353 2.251774,-5.1249996 5.03125,-5.1249996 z"
id="path1948" />
<path
style="fill:url(#linearGradient1475);fill-opacity:1"
d="m 85.637535,28.657169 v 11.90625 c 0,9.230755 -7.825895,16.999999 -16.75,17 h -26.78125 c -7.335833,0 -13.406249,6.278483 -13.40625,13.625 v 25.531247 c 0,7.266344 6.318588,11.540324 13.40625,13.625004 8.487331,2.49561 16.626237,2.94663 26.78125,0 6.750155,-1.95439 13.406253,-5.88761 13.40625,-13.625004 V 86.500919 h -26.78125 v -3.40625 h 26.78125 13.406254 c 7.792461,0 10.696251,-5.435408 13.406241,-13.59375 2.79933,-8.398886 2.68022,-16.475776 0,-27.25 -1.92578,-7.757441 -5.60387,-13.59375 -13.406241,-13.59375 z m -15.0625,64.65625 c 2.779478,3e-6 5.03125,2.277417 5.03125,5.093747 -2e-6,2.826354 -2.251775,5.125004 -5.03125,5.125004 -2.76955,0 -5.03125,-2.29865 -5.03125,-5.125004 2e-6,-2.81633 2.261697,-5.093747 5.03125,-5.093747 z"
id="path1950" />
<ellipse
style="opacity:0.44382;fill:url(#radialGradient1480);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15.4174;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path1894"
cx="55.816761"
cy="127.70079"
rx="35.930977"
ry="6.9673119" />
</svg>

After

Width:  |  Height:  |  Size: 9.4 KiB

View file

@ -0,0 +1,83 @@
{
"title": "Jupyter Notebook Menu Entries",
"description": "Jupyter Notebook Menu Entries",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-file",
"items": [
{
"command": "application:rename",
"rank": 4.5
},
{
"command": "application:duplicate",
"rank": 4.8
},
{
"command": "notebook:trust",
"rank": 20
},
{
"type": "separator",
"rank": 30
},
{
"command": "filemenu:close-and-cleanup",
"rank": 40
},
{
"command": "application:close",
"disabled": true
}
]
},
{
"id": "jp-mainmenu-view",
"items": [
{
"type": "submenu",
"disabled": true,
"submenu": {
"id": "jp-mainmenu-view-appearance"
}
}
]
},
{
"id": "jp-mainmenu-run",
"items": [
{
"type": "separator",
"rank": 1000
},
{
"type": "submenu",
"rank": 1010,
"submenu": {
"id": "jp-runmenu-change-cell-type",
"label": "Cell Type",
"items": [
{
"command": "notebook:change-cell-to-code",
"rank": 0
},
{
"command": "notebook:change-cell-to-markdown",
"rank": 0
},
{
"command": "notebook:change-cell-to-raw",
"rank": 0
}
]
}
}
]
}
]
},
"properties": {},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,70 @@
{
"name": "@jupyter-notebook/application-extension",
"version": "7.5.0",
"description": "Jupyter Notebook - Application Extension",
"homepage": "https://github.com/jupyter/notebook",
"bugs": {
"url": "https://github.com/jupyter/notebook/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/jupyter/notebook.git"
},
"license": "BSD-3-Clause",
"author": "Project Jupyter",
"sideEffects": [
"style/**/*.css",
"style/index.js"
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"style": "style/index.css",
"directories": {
"lib": "lib/"
},
"files": [
"lib/*.d.ts",
"lib/*.js.map",
"lib/*.js",
"schema/*.json",
"style/**/*.css",
"style/index.js"
],
"scripts": {
"build": "tsc -b",
"build:prod": "tsc -b",
"clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
"docs": "typedoc src",
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyter-notebook/application": "^7.5.0",
"@jupyter-notebook/ui-components": "^7.5.0",
"@jupyterlab/application": "~4.5.0",
"@jupyterlab/apputils": "~4.6.0",
"@jupyterlab/codeeditor": "~4.5.0",
"@jupyterlab/console": "~4.5.0",
"@jupyterlab/coreutils": "~6.5.0",
"@jupyterlab/docmanager": "~4.5.0",
"@jupyterlab/docregistry": "~4.5.0",
"@jupyterlab/mainmenu": "~4.5.0",
"@jupyterlab/rendermime": "~4.5.0",
"@jupyterlab/settingregistry": "~4.5.0",
"@jupyterlab/translation": "~4.5.0",
"@lumino/coreutils": "^2.2.2",
"@lumino/disposable": "^2.1.5",
"@lumino/widgets": "^2.7.2"
},
"devDependencies": {
"rimraf": "^3.0.2",
"typescript": "~5.5.4"
},
"publishConfig": {
"access": "public"
},
"jupyterlab": {
"extension": true,
"schemaDir": "schema"
},
"styleModule": "style/index.js"
}

View file

@ -0,0 +1,24 @@
{
"title": "Jupyter Notebook Pages",
"description": "Jupyter Notebook Pages",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-view",
"items": [
{
"command": "application:open-lab",
"rank": 2
},
{
"command": "application:open-tree",
"rank": 2
}
]
}
]
},
"properties": {},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,36 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "Notebook Shell",
"description": "Notebook Shell layout settings.",
"properties": {
"layout": {
"$ref": "#/definitions/layout",
"type": "object",
"title": "Customize shell widget positioning",
"description": "Overrides default widget position in the application layout",
"default": {
"Debugger Console": { "area": "down" },
"Markdown Preview": { "area": "right" },
"Plugins": { "area": "left" }
}
}
},
"additionalProperties": false,
"type": "object",
"definitions": {
"layout": {
"type": "object",
"properties": {
"[\\w-]+": {
"type": "object",
"properties": {
"area": {
"enum": ["left", "right"]
}
},
"additionalProperties": false
}
}
}
}
}

View file

@ -0,0 +1,16 @@
{
"jupyter.lab.setting-icon": "notebook-ui-components:jupyter",
"jupyter.lab.setting-icon-label": "Jupyter Notebook shortcuts",
"title": "Jupyter Notebook Shortcuts",
"description": "Keyboard shortcuts for Jupyter Notebook",
"jupyter.lab.shortcuts": [
{
"args": {},
"command": "notebook:toggle-cell-outputs",
"keys": ["O"],
"selector": ".jp-Notebook.jp-mod-commandMode"
}
],
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,10 @@
{
"title": "Title widget",
"description": "Title widget",
"jupyter.lab.toolbars": {
"TopBar": [{ "name": "widgetTitle", "rank": 10 }]
},
"properties": {},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,30 @@
{
"jupyter.lab.setting-icon": "notebook-ui-components:jupyter",
"jupyter.lab.setting-icon-label": "Jupyter Notebook Top Area",
"title": "Jupyter Notebook Top Area",
"description": "Jupyter Notebook Top Area settings",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-view",
"items": [
{
"command": "application:toggle-top",
"rank": 2
}
]
}
]
},
"properties": {
"visible": {
"type": "string",
"enum": ["yes", "no", "automatic"],
"title": "Top Bar Visibility",
"description": "Whether to show the top bar or not, yes for always showing, no for always not showing, automatic for adjusting to screen size",
"default": "automatic"
}
},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,20 @@
{
"title": "Jupyter Notebook Zen Mode",
"description": "Jupyter Notebook Zen Mode",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-view",
"items": [
{
"command": "application:toggle-zen",
"rank": 3
}
]
}
]
},
"properties": {},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,58 @@
{
"name": "@jupyter-notebook/documentsearch-extension",
"version": "7.5.0",
"description": "Jupyter Notebook - Document Search Extension",
"homepage": "https://github.com/jupyter/notebook",
"bugs": {
"url": "https://github.com/jupyter/notebook/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/jupyter/notebook.git"
},
"license": "BSD-3-Clause",
"author": "Project Jupyter",
"sideEffects": [
"style/**/*.css",
"style/index.js"
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"style": "style/index.css",
"directories": {
"lib": "lib/"
},
"files": [
"lib/*.d.ts",
"lib/*.js.map",
"lib/*.js",
"schema/*.json",
"style/**/*.css",
"style/index.js"
],
"scripts": {
"build": "tsc -b",
"build:prod": "tsc -b",
"clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
"docs": "typedoc src",
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyter-notebook/application": "^7.5.0",
"@jupyterlab/application": "~4.5.0",
"@jupyterlab/documentsearch": "~4.5.0",
"@lumino/widgets": "^2.7.2"
},
"devDependencies": {
"rimraf": "^3.0.2",
"typescript": "~5.5.4"
},
"publishConfig": {
"access": "public"
},
"jupyterlab": {
"extension": true,
"schemaDir": "schema"
},
"styleModule": "style/index.js"
}

View file

@ -0,0 +1,24 @@
{
"title": "Jupyter Notebook Help Menu Entries",
"description": "Jupyter Notebook Help Menu Entries",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-help",
"items": [
{
"command": "help:about",
"rank": 0
},
{
"type": "separator",
"rank": 1
}
]
}
]
},
"properties": {},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,61 @@
{
"name": "@jupyter-notebook/help-extension",
"version": "7.5.0",
"description": "Jupyter Notebook - Help Extension",
"homepage": "https://github.com/jupyter/notebook",
"bugs": {
"url": "https://github.com/jupyter/notebook/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/jupyter/notebook.git"
},
"license": "BSD-3-Clause",
"author": "Project Jupyter",
"sideEffects": [
"style/**/*.css",
"style/index.js"
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"style": "style/index.css",
"directories": {
"lib": "lib/"
},
"files": [
"lib/*.d.ts",
"lib/*.js.map",
"lib/*.js",
"schema/*.json",
"style/**/*.css",
"style/index.js"
],
"scripts": {
"build": "tsc -b",
"build:prod": "tsc -b",
"clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
"docs": "typedoc src",
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyter-notebook/ui-components": "^7.5.0",
"@jupyterlab/application": "~4.5.0",
"@jupyterlab/apputils": "~4.6.0",
"@jupyterlab/mainmenu": "~4.5.0",
"@jupyterlab/translation": "~4.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"rimraf": "^3.0.2",
"typescript": "~5.5.4"
},
"publishConfig": {
"access": "public"
},
"jupyterlab": {
"extension": true,
"schemaDir": "schema"
},
"styleModule": "style/index.js"
}

View file

@ -0,0 +1,18 @@
{
"title": "Notebook checkpoint indicator",
"description": "Notebook checkpoint indicator",
"jupyter.lab.toolbars": {
"TopBar": [{ "name": "checkpoint", "rank": 20 }]
},
"properties": {
"checkpointPollingInterval": {
"type": "number",
"title": "Checkpoint Polling Interval (seconds)",
"description": "How often to check for checkpoints (in seconds). Set to 0 to disable polling.",
"default": 30,
"minimum": 0
}
},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,37 @@
{
"title": "Jupyter Notebook Menu Entries",
"description": "Jupyter Notebook Menu Entries",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-file",
"items": [
{
"command": "notebook:open-tree-tab",
"rank": 1
}
]
},
{
"id": "jp-mainmenu-edit",
"items": [
{
"type": "separator",
"rank": 8.5
},
{
"command": "notebook:edit-metadata",
"rank": 8.5
},
{
"type": "separator",
"rank": 8.5
}
]
}
]
},
"properties": {},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,27 @@
{
"title": "Jupyter Notebook Full Width Notebook",
"description": "Jupyter Notebook Notebook With settings",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-view",
"items": [
{
"command": "notebook:toggle-full-width",
"rank": 4
}
]
}
]
},
"properties": {
"fullWidthNotebook": {
"type": "boolean",
"title": "Full Width Notebook",
"description": "Whether to the notebook should take up the full width of the application",
"default": false
}
},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,10 @@
{
"title": "Kernel logo",
"description": "Kernel logo in the top area",
"jupyter.lab.toolbars": {
"TopBar": [{ "name": "kernelLogo", "rank": 110 }]
},
"properties": {},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,66 @@
{
"name": "@jupyter-notebook/notebook-extension",
"version": "7.5.0",
"description": "Jupyter Notebook - Notebook Extension",
"homepage": "https://github.com/jupyter/notebook",
"bugs": {
"url": "https://github.com/jupyter/notebook/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/jupyter/notebook.git"
},
"license": "BSD-3-Clause",
"author": "Project Jupyter",
"sideEffects": [
"style/**/*.css",
"style/index.js"
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"style": "style/index.css",
"directories": {
"lib": "lib/"
},
"files": [
"lib/*.d.ts",
"lib/*.js.map",
"lib/*.js",
"schema/*.json",
"style/**/*.css",
"style/index.js"
],
"scripts": {
"build": "tsc -b",
"build:prod": "tsc -b",
"clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
"docs": "typedoc src",
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyter-notebook/application": "^7.5.0",
"@jupyterlab/application": "~4.5.0",
"@jupyterlab/apputils": "~4.6.0",
"@jupyterlab/cells": "~4.5.0",
"@jupyterlab/docmanager": "~4.5.0",
"@jupyterlab/notebook": "~4.5.0",
"@jupyterlab/settingregistry": "~4.5.0",
"@jupyterlab/translation": "~4.5.0",
"@lumino/polling": "^2.1.5",
"@lumino/widgets": "^2.7.2",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"rimraf": "^3.0.2",
"typescript": "~5.5.4"
},
"publishConfig": {
"access": "public"
},
"jupyterlab": {
"extension": true,
"schemaDir": "schema"
},
"styleModule": "style/index.js"
}

View file

@ -0,0 +1,16 @@
{
"jupyter.lab.setting-icon": "notebook-ui-components:jupyter",
"jupyter.lab.setting-icon-label": "Jupyter Notebook Notebook",
"title": "Jupyter Notebook Notebook",
"description": "Jupyter Notebook Notebook settings",
"properties": {
"autoScrollOutputs": {
"type": "boolean",
"title": "Auto Scroll Outputs",
"description": "Whether to auto scroll the output area when the outputs become too long",
"default": true
}
},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,17 @@
{
"title": "File Browser Widget - File Actions",
"description": "File Browser widget - File Actions settings.",
"jupyter.lab.toolbars": {
"FileBrowser": [
{ "name": "fileAction-placeholder", "rank": 0 },
{ "name": "fileAction-open", "rank": 1 },
{ "name": "fileAction-download", "rank": 2 },
{ "name": "fileAction-rename", "rank": 3 },
{ "name": "fileAction-duplicate", "rank": 4 },
{ "name": "fileAction-delete", "rank": 5 }
]
},
"properties": {},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,71 @@
{
"name": "@jupyter-notebook/tree-extension",
"version": "7.5.0",
"description": "Jupyter Notebook - Tree Extension",
"homepage": "https://github.com/jupyter/notebook",
"bugs": {
"url": "https://github.com/jupyter/notebook/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/jupyter/notebook.git"
},
"license": "BSD-3-Clause",
"author": "Project Jupyter",
"sideEffects": [
"style/**/*.css",
"style/index.js"
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"style": "style/index.css",
"directories": {
"lib": "lib/"
},
"files": [
"lib/*.d.ts",
"lib/*.js.map",
"lib/*.js",
"schema/*.json",
"style/**/*.css",
"style/index.js"
],
"scripts": {
"build": "tsc -b",
"build:prod": "tsc -b",
"clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
"docs": "typedoc src",
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyter-notebook/application": "^7.5.0",
"@jupyter-notebook/tree": "^7.5.0",
"@jupyterlab/application": "~4.5.0",
"@jupyterlab/apputils": "~4.6.0",
"@jupyterlab/coreutils": "~6.5.0",
"@jupyterlab/docmanager": "~4.5.0",
"@jupyterlab/filebrowser": "~4.5.0",
"@jupyterlab/mainmenu": "~4.5.0",
"@jupyterlab/services": "~7.5.0",
"@jupyterlab/settingeditor": "~4.5.0",
"@jupyterlab/settingregistry": "~4.5.0",
"@jupyterlab/statedb": "~4.5.0",
"@jupyterlab/translation": "~4.5.0",
"@jupyterlab/ui-components": "~4.5.0",
"@lumino/algorithm": "^2.0.4",
"@lumino/commands": "^2.3.3",
"@lumino/widgets": "^2.7.2"
},
"devDependencies": {
"rimraf": "^3.0.2",
"typescript": "~5.5.4"
},
"publishConfig": {
"access": "public"
},
"jupyterlab": {
"extension": true,
"schemaDir": "schema"
},
"styleModule": "style/index.js"
}

View file

@ -0,0 +1,80 @@
{
"title": "File Browser Widget",
"description": "File Browser widget settings.",
"jupyter.lab.toolbars": {
"FileBrowser": [
{ "name": "spacer", "type": "spacer", "rank": 900 },
{
"name": "toggle-file-filter",
"label": "",
"command": "filebrowser:toggle-file-filter",
"rank": 990
},
{ "name": "new-dropdown", "rank": 1000 },
{ "name": "uploader", "rank": 1010 },
{ "name": "refresh", "command": "filebrowser:refresh", "rank": 1020 }
]
},
"jupyter.lab.transform": true,
"properties": {
"toolbar": {
"title": "File browser toolbar items",
"description": "Note: To disable a toolbar item,\ncopy it to User Preferences and add the\n\"disabled\" key. The following example will disable the uploader button:\n{\n \"toolbar\": [\n {\n \"name\": \"uploader\",\n \"disabled\": true\n }\n ]\n}\n\nToolbar description:",
"items": {
"$ref": "#/definitions/toolbarItem"
},
"type": "array",
"default": []
}
},
"additionalProperties": false,
"type": "object",
"definitions": {
"toolbarItem": {
"properties": {
"name": {
"title": "Unique name",
"type": "string"
},
"args": {
"title": "Command arguments",
"type": "object"
},
"command": {
"title": "Command id",
"type": "string",
"default": ""
},
"disabled": {
"title": "Whether the item is ignored or not",
"type": "boolean",
"default": false
},
"icon": {
"title": "Item icon id",
"description": "If defined, it will override the command icon",
"type": "string"
},
"label": {
"title": "Item label",
"description": "If defined, it will override the command label",
"type": "string"
},
"type": {
"title": "Item type",
"type": "string",
"enum": ["command", "spacer"]
},
"rank": {
"title": "Item rank",
"type": "number",
"minimum": 0,
"default": 50
}
},
"required": ["name"],
"additionalProperties": false,
"type": "object"
}
}
}

View file

@ -0,0 +1,376 @@
{
"title": "Application Commands",
"description": "Application commands settings.",
"jupyter.lab.shortcuts": [
{
"command": "application:activate-next-tab",
"keys": ["Ctrl Shift ]"],
"selector": "body"
},
{
"command": "application:activate-previous-tab",
"keys": ["Ctrl Shift ["],
"selector": "body"
},
{
"command": "application:activate-next-tab-bar",
"keys": ["Ctrl Shift ."],
"selector": "body"
},
{
"command": "application:activate-previous-tab-bar",
"keys": ["Ctrl Shift ,"],
"selector": "body"
},
{
"command": "application:close",
"keys": ["Alt W"],
"selector": ".jp-Activity"
},
{
"command": "application:toggle-mode",
"keys": ["Accel Shift D"],
"selector": "body"
},
{
"command": "application:toggle-left-area",
"keys": ["Accel B"],
"selector": "body"
},
{
"command": "application:toggle-right-area",
"keys": ["Accel J"],
"selector": "body"
},
{
"command": "application:toggle-presentation-mode",
"keys": [""],
"selector": "body"
},
{
"command": "application:toggle-fullscreen-mode",
"keys": ["F11"],
"selector": "body"
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt 1"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "left",
"index": 0
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt 2"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "left",
"index": 1
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt 3"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "left",
"index": 2
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt 4"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "left",
"index": 3
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt 5"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "left",
"index": 4
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt 6"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "left",
"index": 5
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt 7"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "left",
"index": 6
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt 8"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "left",
"index": 7
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt 9"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "left",
"index": 8
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt 0"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "left",
"index": 9
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt Shift 1"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "right",
"index": 0
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt Shift 2"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "right",
"index": 1
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt Shift 3"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "right",
"index": 2
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt Shift 4"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "right",
"index": 3
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt Shift 5"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "right",
"index": 4
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt Shift 6"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "right",
"index": 5
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt Shift 7"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "right",
"index": 6
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt Shift 8"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "right",
"index": 7
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt Shift 9"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "right",
"index": 8
}
},
{
"command": "application:toggle-sidebar-widget",
"keys": ["Alt Shift 0"],
"macKeys": [""],
"selector": "body",
"args": {
"side": "right",
"index": 9
}
}
],
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-file",
"items": [
{
"type": "separator",
"rank": 3
},
{
"command": "application:close",
"rank": 3
},
{
"command": "application:close-all",
"rank": 3.2
}
]
},
{
"id": "jp-mainmenu-view",
"items": [
{
"type": "submenu",
"rank": 1,
"submenu": {
"id": "jp-mainmenu-view-appearance",
"label": "Appearance",
"items": [
{
"command": "application:toggle-mode",
"rank": 0
},
{
"command": "application:toggle-presentation-mode",
"rank": 0
},
{
"command": "application:toggle-fullscreen-mode",
"rank": 0
},
{
"type": "separator",
"rank": 10
},
{
"command": "application:toggle-left-area",
"rank": 11
},
{
"command": "application:toggle-side-tabbar",
"rank": 12,
"args": {
"side": "left"
}
},
{
"command": "application:toggle-right-area",
"rank": 13
},
{
"command": "application:toggle-side-tabbar",
"rank": 14,
"args": {
"side": "right"
}
},
{
"command": "application:toggle-header",
"rank": 15
},
{
"type": "separator",
"rank": 50
},
{
"command": "application:reset-layout",
"rank": 51
}
]
}
},
{
"type": "separator",
"rank": 1
}
]
}
],
"context": [
{
"command": "application:close",
"selector": "#jp-main-dock-panel .lm-DockPanel-tabBar .lm-TabBar-tab",
"rank": 4
},
{
"command": "application:close-other-tabs",
"selector": "#jp-main-dock-panel .lm-DockPanel-tabBar .lm-TabBar-tab",
"rank": 4
},
{
"command": "application:close-all",
"selector": "#jp-main-dock-panel .lm-DockPanel-tabBar .lm-TabBar-tab",
"rank": 4
},
{
"command": "application:close-right-tabs",
"selector": "#jp-main-dock-panel .lm-DockPanel-tabBar .lm-TabBar-tab",
"rank": 5
},
{
"command": "__internal:context-menu-info",
"selector": "body",
"rank": 9007199254740991
}
]
},
"properties": {},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,120 @@
{
"title": "Application Context Menu",
"description": "JupyterLab context menu settings.",
"jupyter.lab.setting-icon-label": "Application Context Menu",
"jupyter.lab.shortcuts": [],
"jupyter.lab.transform": true,
"properties": {
"contextMenu": {
"title": "The application context menu.",
"description": "Note: To disable a context menu item,\ncopy it to User Preferences and add the\n\"disabled\" key. The following example will disable Download item on files:\n{\n \"contextMenu\": [\n {\n \"command\": \"filebrowser:download\",\n \"selector\": \".jp-DirListing-item[data-isdir=\\\"false\\\"]\",\n \"disabled\": true\n }\n ]\n}\n\nContext menu description:",
"items": {
"allOf": [
{ "$ref": "#/definitions/menuItem" },
{
"properties": {
"selector": {
"description": "The CSS selector for the context menu item.",
"type": "string"
}
}
}
]
},
"type": "array",
"default": []
},
"disabled": {
"description": "Whether the application context (right-click) menu is disabled",
"type": "boolean",
"default": false
}
},
"additionalProperties": false,
"definitions": {
"menu": {
"properties": {
"disabled": {
"description": "Whether the menu is disabled or not",
"type": "boolean",
"default": false
},
"icon": {
"description": "Menu icon id",
"type": "string"
},
"id": {
"description": "Menu unique id",
"type": "string",
"pattern": "[a-z][a-z0-9\\-_]+"
},
"items": {
"description": "Menu items",
"type": "array",
"items": {
"$ref": "#/definitions/menuItem"
}
},
"label": {
"description": "Menu label",
"type": "string"
},
"mnemonic": {
"description": "Mnemonic index for the label",
"type": "number",
"minimum": -1,
"default": -1
},
"rank": {
"description": "Menu rank",
"type": "number",
"minimum": 0
}
},
"required": ["id"],
"additionalProperties": false,
"type": "object"
},
"menuItem": {
"properties": {
"args": {
"description": "Command arguments",
"type": "object"
},
"command": {
"description": "Command id",
"type": "string"
},
"disabled": {
"description": "Whether the item is disabled or not",
"type": "boolean",
"default": false
},
"type": {
"description": "Item type",
"type": "string",
"enum": ["command", "submenu", "separator"],
"default": "command"
},
"rank": {
"description": "Item rank",
"type": "number",
"minimum": 0
},
"submenu": {
"description": "Submenu definition",
"oneOf": [
{
"$ref": "#/definitions/menu"
},
{
"type": "null"
}
]
}
},
"type": "object"
}
},
"type": "object"
}

View file

@ -0,0 +1,68 @@
{
"name": "@jupyterlab/application-extension",
"version": "4.5.0",
"description": "JupyterLab - Application Extension",
"homepage": "https://github.com/jupyterlab/jupyterlab",
"bugs": {
"url": "https://github.com/jupyterlab/jupyterlab/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/jupyterlab/jupyterlab.git"
},
"license": "BSD-3-Clause",
"author": "Project Jupyter",
"sideEffects": [
"style/**/*.css",
"style/index.js"
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"style": "style/index.css",
"directories": {
"lib": "lib/"
},
"files": [
"lib/*.d.ts",
"lib/*.js.map",
"lib/*.js",
"schema/*.json",
"style/**/*.css",
"style/index.js",
"src/**/*.{ts,tsx}"
],
"scripts": {
"build": "tsc -b",
"clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyterlab/application": "^4.5.0",
"@jupyterlab/apputils": "^4.6.0",
"@jupyterlab/coreutils": "^6.5.0",
"@jupyterlab/property-inspector": "^4.5.0",
"@jupyterlab/settingregistry": "^4.5.0",
"@jupyterlab/statedb": "^4.5.0",
"@jupyterlab/statusbar": "^4.5.0",
"@jupyterlab/translation": "^4.5.0",
"@jupyterlab/ui-components": "^4.5.0",
"@lumino/algorithm": "^2.0.4",
"@lumino/commands": "^2.3.3",
"@lumino/coreutils": "^2.2.2",
"@lumino/disposable": "^2.1.5",
"@lumino/widgets": "^2.7.2",
"react": "^18.2.0"
},
"devDependencies": {
"rimraf": "~5.0.5",
"typescript": "~5.5.4"
},
"publishConfig": {
"access": "public"
},
"jupyterlab": {
"extension": true,
"schemaDir": "schema"
},
"styleModule": "style/index.js"
}

View file

@ -0,0 +1,27 @@
{
"title": "Property Inspector",
"description": "Property Inspector Settings.",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-view",
"items": [
{
"command": "property-inspector:show-panel",
"rank": 2
}
]
}
]
},
"jupyter.lab.shortcuts": [
{
"command": "property-inspector:show-panel",
"keys": ["Accel Shift U"],
"selector": "body"
}
],
"properties": {},
"additionalProperties": false,
"type": "object"
}

View file

@ -0,0 +1,96 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "JupyterLab Shell",
"description": "JupyterLab Shell layout settings.",
"jupyter.lab.menus": {
"context": [
{
"command": "sidebar:switch",
"selector": ".jp-SideBar .lm-TabBar-tab",
"rank": 500
}
]
},
"properties": {
"hiddenMode": {
"type": "string",
"title": "Hidden mode of main panel widgets",
"description": "The method for hiding widgets in the main dock panel. Using `scale` will increase performance on Firefox but don't use it with Chrome, Chromium or Edge. Similar performance gains are seen with `contentVisibility` which is only available in Chromium-based browsers.",
"enum": ["display", "scale", "contentVisibility"],
"default": "display"
},
"startMode": {
"enum": ["", "single", "multiple"],
"title": "Start mode: ``, `single` or `multiple`",
"description": "The mode under which JupyterLab should start. If empty, the mode will be imposed by the URL",
"default": ""
},
"layout": {
"type": "object",
"title": "Customize shell widget positioning",
"description": "Overrides default widget position in the application layout\ne.g. to position terminals in the right sidebar in multiple documents mode and in the down are in single document mode, {\n \"single\": { \"Terminal\": { \"area\": \"down\" } },\n \"multiple\": { \"Terminal\": { \"area\": \"right\" } }\n}.",
"properties": {
"single": {
"$ref": "#/definitions/layout",
"default": {
"Linked Console": { "area": "down" },
"Inspector": { "area": "down" },
"Cloned Output": { "area": "down" }
}
},
"multiple": { "$ref": "#/definitions/layout", "default": {} }
},
"default": {
"single": {
"Linked Console": { "area": "down" },
"Inspector": { "area": "down" },
"Cloned Output": { "area": "down" }
},
"multiple": {}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"type": "object",
"definitions": {
"layout": {
"type": "object",
"properties": {
"[\\w-]+": {
"type": "object",
"properties": {
"area": {
"enum": ["main", "left", "right", "down"]
},
"options": {
"$ref": "#/definitions/options"
}
},
"additionalProperties": false
}
}
},
"options": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"split-top",
"split-left",
"split-right",
"split-bottom",
"tab-before",
"tab-after"
]
},
"rank": { "type": "number", "minimum": 0 },
"ref": {
"type": "string",
"minLength": 1
}
}
}
}
}

View file

@ -0,0 +1,80 @@
{
"title": "Top Bar",
"description": "Top Bar settings.",
"jupyter.lab.toolbars": {
"TopBar": [
{
"name": "spacer",
"type": "spacer",
"rank": 50
}
]
},
"jupyter.lab.transform": true,
"properties": {
"toolbar": {
"title": "Top bar items",
"description": "Note: To disable a item,\ncopy it to User Preferences and add the\n\"disabled\" key. The following example will disable the user menu:\n{\n \"toolbar\": [\n {\n \"name\": \"user-menu\",\n \"disabled\": true\n }\n ]\n}\n\nTop bar description:",
"items": {
"$ref": "#/definitions/toolbarItem"
},
"type": "array",
"default": []
}
},
"additionalProperties": false,
"type": "object",
"definitions": {
"toolbarItem": {
"properties": {
"name": {
"title": "Unique name",
"type": "string"
},
"args": {
"title": "Command arguments",
"type": "object"
},
"command": {
"title": "Command id",
"type": "string",
"default": ""
},
"disabled": {
"title": "Whether the item is ignored or not",
"type": "boolean",
"default": false
},
"icon": {
"title": "Item icon id",
"description": "If defined, it will override the command icon",
"type": "string"
},
"label": {
"title": "Item label",
"description": "If defined, it will override the command label",
"type": "string"
},
"caption": {
"title": "Item caption",
"description": "If defined, it will override the command caption",
"type": "string"
},
"type": {
"title": "Item type",
"type": "string",
"enum": ["command", "spacer"]
},
"rank": {
"title": "Item rank",
"type": "number",
"minimum": 0,
"default": 50
}
},
"required": ["name"],
"additionalProperties": false,
"type": "object"
}
}
}

View file

@ -0,0 +1,27 @@
{
"title": "Kernels",
"description": "Kernels and kernel sessions settings",
"jupyter.lab.setting-icon": "ui-components:kernel",
"jupyter.lab.setting-icon-label": "Kernel",
"additionalProperties": false,
"properties": {
"showStatusBarItem": {
"type": "boolean",
"title": "Show the status bar item",
"description": "Whether to show the running kernels item in the status bar",
"default": true
},
"commsOverSubshells": {
"type": "string",
"title": "Kernel Comms over subshells",
"description": "Whether comm messages should be sent to kernel subshells, if the kernel supports it.",
"default": "perCommTarget",
"oneOf": [
{ "const": "disabled", "title": "Disabled" },
{ "const": "perComm", "title": "One subshell per comm" },
{ "const": "perCommTarget", "title": "One subshell per comm-target" }
]
}
},
"type": "object"
}

View file

@ -0,0 +1,53 @@
{
"title": "Notifications",
"description": "Notifications settings.",
"jupyter.lab.setting-icon": "ui-components:bell",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-view",
"items": [
{
"type": "separator",
"rank": 9.9
},
{
"command": "apputils:display-notifications",
"rank": 9.92
},
{
"type": "separator",
"rank": 9.99
}
]
}
]
},
"additionalProperties": false,
"properties": {
"checkForUpdates": {
"title": "Check for JupyterLab updates",
"description": "Whether to check for newer versions of JupyterLab or not. It requires `fetchNews` to be set to Always (`true`) to be active. If `true`, it will make a request to a website.",
"type": "boolean",
"default": true
},
"doNotDisturbMode": {
"title": "Silence all notifications",
"description": "If `true`, no toast notifications will be automatically displayed.",
"type": "boolean",
"default": false
},
"fetchNews": {
"title": "Fetch official Jupyter news",
"description": "Whether to fetch news from the Jupyter news feed. If Always (`true`), it will make a request to a website.",
"type": "string",
"oneOf": [
{ "const": "true", "title": "Always" },
{ "const": "false", "title": "Never" },
{ "const": "none", "title": "Ask (None)" }
],
"default": "none"
}
},
"type": "object"
}

View file

@ -0,0 +1,76 @@
{
"name": "@jupyterlab/apputils-extension",
"version": "4.5.0",
"description": "JupyterLab - Application Utilities Extension",
"homepage": "https://github.com/jupyterlab/jupyterlab",
"bugs": {
"url": "https://github.com/jupyterlab/jupyterlab/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/jupyterlab/jupyterlab.git"
},
"license": "BSD-3-Clause",
"author": "Project Jupyter",
"sideEffects": [
"style/**/*"
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"style": "style/index.css",
"directories": {
"lib": "lib/"
},
"files": [
"lib/*.d.ts",
"lib/*.js.map",
"lib/*.js",
"style/*.css",
"style/images/*.svg",
"schema/*.json",
"style/index.js",
"src/**/*.{ts,tsx}"
],
"scripts": {
"build": "tsc -b",
"clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyterlab/application": "^4.5.0",
"@jupyterlab/apputils": "^4.6.0",
"@jupyterlab/coreutils": "^6.5.0",
"@jupyterlab/docregistry": "^4.5.0",
"@jupyterlab/mainmenu": "^4.5.0",
"@jupyterlab/rendermime-interfaces": "^3.13.0",
"@jupyterlab/services": "^7.5.0",
"@jupyterlab/settingregistry": "^4.5.0",
"@jupyterlab/statedb": "^4.5.0",
"@jupyterlab/statusbar": "^4.5.0",
"@jupyterlab/translation": "^4.5.0",
"@jupyterlab/ui-components": "^4.5.0",
"@jupyterlab/workspaces": "^4.5.0",
"@lumino/algorithm": "^2.0.4",
"@lumino/commands": "^2.3.3",
"@lumino/coreutils": "^2.2.2",
"@lumino/disposable": "^2.1.5",
"@lumino/domutils": "^2.0.4",
"@lumino/polling": "^2.1.5",
"@lumino/widgets": "^2.7.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-toastify": "^9.0.8"
},
"devDependencies": {
"rimraf": "~5.0.5",
"typescript": "~5.5.4"
},
"publishConfig": {
"access": "public"
},
"jupyterlab": {
"extension": true,
"schemaDir": "schema"
},
"styleModule": "style/index.js"
}

View file

@ -0,0 +1,40 @@
{
"title": "Command Palette",
"description": "Command palette settings.",
"jupyter.lab.setting-icon": "ui-components:palette",
"jupyter.lab.setting-icon-label": "Command Palette",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-view",
"items": [
{
"command": "apputils:activate-command-palette",
"rank": 0
},
{
"type": "separator",
"rank": 0
}
]
}
]
},
"jupyter.lab.shortcuts": [
{
"command": "apputils:activate-command-palette",
"keys": ["Accel Shift C"],
"selector": "body"
}
],
"properties": {
"modal": {
"title": "Modal Command Palette",
"description": "Whether the command palette should be modal or in the left panel.",
"type": "boolean",
"default": true
}
},
"type": "object",
"additionalProperties": false
}

View file

@ -0,0 +1,31 @@
{
"title": "Print",
"description": "Print settings.",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-file",
"items": [
{
"type": "separator",
"rank": 98
},
{
"command": "apputils:print",
"rank": 98
}
]
}
]
},
"jupyter.lab.shortcuts": [
{
"command": "apputils:print",
"keys": ["Accel P"],
"selector": "body"
}
],
"additionalProperties": false,
"properties": {},
"type": "object"
}

View file

@ -0,0 +1,31 @@
{
"title": "HTML Sanitizer",
"description": "HTML Sanitizer settings.",
"jupyter.lab.setting-icon": "ui-components:html5",
"additionalProperties": false,
"properties": {
"allowedSchemes": {
"title": "Allowed URL Scheme",
"description": "Scheme allowed by the HTML sanitizer.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
},
"default": ["http", "https", "ftp", "mailto", "tel"]
},
"autolink": {
"type": "boolean",
"title": "Autolink URL replacement",
"description": "Whether to replace URLs with links or not.",
"default": true
},
"allowNamedProperties": {
"type": "boolean",
"title": "Allow named properties",
"description": "Whether to allow untrusted elements to include `name` and `id` attributes. These attributes are stripped by default to prevent DOM clobbering attacks.",
"default": false
}
},
"type": "object"
}

View file

@ -0,0 +1,14 @@
{
"title": "Kernel dialogs",
"description": "Kernel dialogs settings.",
"additionalProperties": false,
"properties": {
"skipKernelRestartDialog": {
"title": "Skip kernel restart Dialog",
"description": "Whether the kernel restart confirmation dialog is skipped when restarting the kernel.",
"type": "boolean",
"default": false
}
},
"type": "object"
}

View file

@ -0,0 +1,155 @@
{
"title": "Theme",
"jupyter.lab.setting-icon-label": "Theme Manager",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-settings",
"items": [
{
"type": "submenu",
"submenu": {
"id": "jp-mainmenu-settings-apputilstheme",
"label": "Theme",
"items": [
{ "type": "separator" },
{
"command": "apputils:adaptive-theme"
},
{ "type": "separator" },
{
"command": "apputils:theme-scrollbars"
},
{ "type": "separator" },
{
"command": "apputils:incr-font-size",
"args": {
"key": "code-font-size"
}
},
{
"command": "apputils:decr-font-size",
"args": {
"key": "code-font-size"
}
},
{ "type": "separator" },
{
"command": "apputils:incr-font-size",
"args": {
"key": "content-font-size1"
}
},
{
"command": "apputils:decr-font-size",
"args": {
"key": "content-font-size1"
}
},
{ "type": "separator" },
{
"command": "apputils:incr-font-size",
"args": {
"key": "ui-font-size1"
}
},
{
"command": "apputils:decr-font-size",
"args": {
"key": "ui-font-size1"
}
}
]
},
"rank": 0
}
]
}
]
},
"description": "Theme manager settings.",
"type": "object",
"additionalProperties": false,
"definitions": {
"cssOverrides": {
"type": "object",
"additionalProperties": false,
"description": "The description field of each item is the CSS property that will be used to validate an override's value",
"properties": {
"code-font-family": {
"type": ["string", "null"],
"description": "font-family"
},
"code-font-size": {
"type": ["string", "null"],
"description": "font-size"
},
"content-font-family": {
"type": ["string", "null"],
"description": "font-family"
},
"content-font-size1": {
"type": ["string", "null"],
"description": "font-size"
},
"ui-font-family": {
"type": ["string", "null"],
"description": "font-family"
},
"ui-font-size1": {
"type": ["string", "null"],
"description": "font-size"
}
}
}
},
"properties": {
"theme": {
"type": "string",
"title": "Selected Theme",
"description": "Application-level visual styling theme. Ignored when Adaptive Theme is enabled.",
"default": "JupyterLab Light"
},
"adaptive-theme": {
"type": "boolean",
"title": "Adaptive Theme",
"description": "Synchronize visual styling theme with system settings",
"default": false
},
"preferred-light-theme": {
"type": "string",
"title": "Preferred Light Theme",
"description": "Application-level light visual styling theme. Ignored when Adaptive Theme is disabled.",
"default": "JupyterLab Light"
},
"preferred-dark-theme": {
"type": "string",
"title": "Preferred Dark Theme",
"description": "Application-level dark visual styling theme. Ignored when Adaptive Theme is disabled.",
"default": "JupyterLab Dark"
},
"theme-scrollbars": {
"type": "boolean",
"title": "Scrollbar Theming",
"description": "Enable/disable styling of the application scrollbars",
"default": false
},
"overrides": {
"title": "Theme CSS Overrides",
"description": "Override theme CSS variables by setting key-value pairs here",
"$ref": "#/definitions/cssOverrides",
"default": {
"code-font-family": null,
"code-font-size": null,
"content-font-family": null,
"content-font-size1": null,
"ui-font-family": null,
"ui-font-size1": null
}
}
}
}

View file

@ -0,0 +1,35 @@
{
"title": "Shortcuts Help",
"description": "Shortcut help settings.",
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-help",
"items": [
{
"type": "separator",
"rank": 0.1
},
{
"command": "apputils:display-shortcuts",
"rank": 0.1
},
{
"type": "separator",
"rank": 0.1
}
]
}
]
},
"jupyter.lab.shortcuts": [
{
"command": "apputils:display-shortcuts",
"keys": ["Accel Shift H"],
"selector": "body"
}
],
"properties": {},
"type": "object",
"additionalProperties": false
}

View file

@ -0,0 +1,55 @@
{
"name": "@jupyterlab/cell-toolbar-extension",
"version": "4.5.0",
"description": "Extension for cell toolbar adapted from jlab-enhanced-cell-toolbar",
"homepage": "https://github.com/jupyterlab/jupyterlab",
"bugs": {
"url": "https://github.com/jupyterlab/jupyterlab/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/jupyterlab/jupyterlab.git"
},
"license": "BSD-3-Clause",
"author": "Project Jupyter",
"sideEffects": [
"style/**/*"
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"style": "style/index.css",
"directories": {
"lib": "lib/"
},
"files": [
"lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}",
"schema/*.json",
"style/**/*.{css,eot,gif,html,jpg,json,png,svg,woff2,ttf}",
"style/index.js",
"src/**/*.{ts,tsx}"
],
"scripts": {
"build": "tsc -b",
"clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyterlab/application": "^4.5.0",
"@jupyterlab/apputils": "^4.6.0",
"@jupyterlab/cell-toolbar": "^4.5.0",
"@jupyterlab/settingregistry": "^4.5.0",
"@jupyterlab/translation": "^4.5.0"
},
"devDependencies": {
"rimraf": "~5.0.5",
"typescript": "~5.5.4"
},
"publishConfig": {
"access": "public"
},
"jupyterlab": {
"extension": true,
"schemaDir": "schema"
},
"styleModule": "style/index.js"
}

View file

@ -0,0 +1,101 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "Cell Toolbar",
"description": "Cell Toolbar Settings.",
"jupyter.lab.toolbars": {
"Cell": [
{
"name": "duplicate-cell",
"command": "notebook:duplicate-below"
},
{ "name": "move-cell-up", "command": "notebook:move-cell-up" },
{ "name": "move-cell-down", "command": "notebook:move-cell-down" },
{
"name": "insert-cell-above",
"command": "notebook:insert-cell-above"
},
{
"name": "insert-cell-below",
"command": "notebook:insert-cell-below"
},
{
"command": "notebook:delete-cell",
"icon": "ui-components:delete",
"name": "delete-cell"
}
]
},
"jupyter.lab.transform": true,
"properties": {
"showToolbar": {
"title": "Show cell toolbar",
"description": "Show a toolbar inside the active cell, if there is enough room for one",
"type": "boolean",
"default": true
},
"toolbar": {
"title": "List of toolbar items",
"description": "An item is defined by a 'name', a 'command' name, and an 'icon' name",
"type": "array",
"items": {
"$ref": "#/definitions/toolbarItem"
},
"default": []
}
},
"additionalProperties": false,
"type": "object",
"definitions": {
"toolbarItem": {
"properties": {
"name": {
"title": "Unique name",
"type": "string"
},
"args": {
"title": "Command arguments",
"type": "object"
},
"command": {
"title": "Command id",
"type": "string",
"default": ""
},
"disabled": {
"title": "Whether the item is ignored or not",
"type": "boolean",
"default": false
},
"icon": {
"title": "Item icon id",
"description": "If defined, it will override the command icon",
"type": "string"
},
"label": {
"title": "Item label",
"description": "If defined, it will override the command label",
"type": "string"
},
"caption": {
"title": "Item caption",
"description": "If defined, it will override the command caption",
"type": "string"
},
"type": {
"title": "Item type",
"type": "string",
"enum": ["command", "spacer"]
},
"rank": {
"title": "Item rank",
"type": "number",
"minimum": 0,
"default": 50
}
},
"required": ["name"],
"additionalProperties": false,
"type": "object"
}
}
}

View file

@ -0,0 +1,63 @@
{
"name": "@jupyterlab/celltags-extension",
"version": "4.5.0",
"description": "An extension for manipulating tags in cell metadata",
"keywords": [
"jupyter",
"jupyterlab",
"jupyterlab-extension"
],
"homepage": "https://github.com/jupyterlab/jupyterlab",
"bugs": {
"url": "https://github.com/jupyterlab/jupyterlab/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/jupyterlab/jupyterlab.git"
},
"license": "BSD-3-Clause",
"author": "Project Jupyter",
"sideEffects": [
"style/*.css",
"style/index.js"
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"style": "style/index.css",
"directories": {
"lib": "lib/"
},
"files": [
"lib/*.{d.ts,js,js.map}",
"style/*.css",
"style/index.js",
"src/**/*.{ts,tsx}",
"schema/*.json"
],
"scripts": {
"build": "tsc",
"clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
"watch": "tsc -b --watch"
},
"dependencies": {
"@jupyterlab/application": "^4.5.0",
"@jupyterlab/notebook": "^4.5.0",
"@jupyterlab/translation": "^4.5.0",
"@jupyterlab/ui-components": "^4.5.0",
"@lumino/algorithm": "^2.0.4",
"@rjsf/utils": "^5.13.4",
"react": "^18.2.0"
},
"devDependencies": {
"rimraf": "~5.0.5",
"typescript": "~5.5.4"
},
"publishConfig": {
"access": "public"
},
"jupyterlab": {
"extension": true,
"schemaDir": "schema"
},
"styleModule": "style/index.js"
}

View file

@ -0,0 +1,33 @@
{
"type": "object",
"title": "Common tools",
"description": "Setting for the common tools",
"jupyter.lab.metadataforms": [
{
"id": "commonToolsSection",
"label": "Common tools",
"metadataSchema": {
"type": "object",
"properties": {
"/tags": {
"title": "Cell tag",
"type": "array",
"default": [],
"items": {
"type": "string"
}
}
}
},
"uiSchema": {
"ui:order": ["_CELL-TOOL", "/tags", "*"]
},
"metadataOptions": {
"/tags": {
"customRenderer": "@jupyterlab/celltags-extension:plugin.renderer"
}
}
}
],
"additionalProperties": false
}

View file

@ -0,0 +1,75 @@
{
"name": "@jupyterlab/codemirror-extension",
"version": "4.5.0",
"description": "JupyterLab - CodeMirror Provider Extension",
"homepage": "https://github.com/jupyterlab/jupyterlab",
"bugs": {
"url": "https://github.com/jupyterlab/jupyterlab/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/jupyterlab/jupyterlab.git"
},
"license": "BSD-3-Clause",
"author": "Project Jupyter",
"sideEffects": [
"style/**/*.css",
"style/index.js"
],
"main": "lib/index.js",
"types": "lib/index.d.ts",
"style": "style/index.css",
"directories": {
"lib": "lib/"
},
"files": [
"lib/*.d.ts",
"lib/*.js.map",
"lib/*.js",
"schema/*.json",
"style/**/*.css",
"style/index.js",
"src/**/*.{ts,tsx}"
],
"scripts": {
"build": "tsc -b",
"clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
"watch": "tsc -b --watch"
},
"dependencies": {
"@codemirror/commands": "^6.8.1",
"@codemirror/lang-markdown": "^6.3.2",
"@codemirror/language": "^6.11.0",
"@codemirror/legacy-modes": "^6.5.1",
"@codemirror/search": "^6.5.10",
"@codemirror/view": "^6.38.1",
"@jupyter/ydoc": "^3.1.0",
"@jupyterlab/application": "^4.5.0",
"@jupyterlab/apputils": "^4.6.0",
"@jupyterlab/codeeditor": "^4.5.0",
"@jupyterlab/codemirror": "^4.5.0",
"@jupyterlab/notebook": "^4.5.0",
"@jupyterlab/settingregistry": "^4.5.0",
"@jupyterlab/statusbar": "^4.5.0",
"@jupyterlab/translation": "^4.5.0",
"@jupyterlab/ui-components": "^4.5.0",
"@lumino/coreutils": "^2.2.2",
"@lumino/widgets": "^2.7.2",
"@rjsf/utils": "^5.13.4",
"@rjsf/validator-ajv8": "^5.13.4",
"react": "^18.2.0"
},
"devDependencies": {
"@types/react": "^18.0.26",
"rimraf": "~5.0.5",
"typescript": "~5.5.4"
},
"publishConfig": {
"access": "public"
},
"jupyterlab": {
"extension": true,
"schemaDir": "schema"
},
"styleModule": "style/index.js"
}

View file

@ -0,0 +1,85 @@
{
"jupyter.lab.setting-icon": "ui-components:text-editor",
"jupyter.lab.setting-icon-label": "CodeMirror",
"jupyter.lab.shortcuts": [
{
"command": "codemirror:delete-line",
"keys": ["Accel D"],
"selector": ".cm-content"
},
{
"command": "codemirror:delete-line",
"keys": ["Accel Shift K"],
"selector": ".cm-content"
},
{
"command": "codemirror:toggle-block-comment",
"keys": ["Alt A"],
"selector": ".cm-content"
},
{
"command": "codemirror:toggle-comment",
"keys": ["Accel /"],
"selector": ".cm-content"
},
{
"command": "codemirror:select-next-occurrence",
"keys": ["Accel Shift D"],
"selector": ".cm-content"
}
],
"jupyter.lab.menus": {
"main": [
{
"id": "jp-mainmenu-view",
"items": [
{
"type": "submenu",
"rank": 10,
"submenu": {
"id": "jp-mainmenu-codefold",
"label": "Code Folding",
"items": [
{
"command": "codemirror:fold-current",
"rank": 1
},
{
"command": "codemirror:unfold-current",
"rank": 2
},
{
"command": "codemirror:fold-subregions",
"rank": 3
},
{
"command": "codemirror:unfold-subregions",
"rank": 4
},
{
"command": "codemirror:fold-all",
"rank": 5
},
{
"command": "codemirror:unfold-all",
"rank": 6
}
]
}
}
]
}
]
},
"title": "CodeMirror",
"description": "Text editor settings for all CodeMirror editors.",
"properties": {
"defaultConfig": {
"default": {},
"title": "Default editor configuration",
"description": "Base configuration used by all CodeMirror editors.",
"type": "object"
}
},
"type": "object"
}

Some files were not shown because too many files have changed in this diff Show more