commit 1de7a1032b85742a4d2ea4ef0c2e48644e969dc1 Author: Paul Romer Date: Sun Oct 19 23:23:45 2025 -0400 initial commit diff --git a/.jupyter/data/nbsignatures.db b/.jupyter/data/nbsignatures.db new file mode 100644 index 0000000..eb6bb3f Binary files /dev/null and b/.jupyter/data/nbsignatures.db differ diff --git a/.jupyter/data/notebook_secret b/.jupyter/data/notebook_secret new file mode 100644 index 0000000..5a8acff --- /dev/null +++ b/.jupyter/data/notebook_secret @@ -0,0 +1,18 @@ +puGiSq4/3cj4jw2hb1S6Ge4oJp9lBk5lnn2cHNOnUdGVViaMF4nRgjHaaraD+MS2lF0a/m3BUZKJ +lqknHXby2sxCrx/3o656zLNLunYEd0KPV8fe1i+RncbwhZsK/Z6AM956Gl0m5CIY47B/XwSPGFhX +vE4L37GxJH1Eks7hR/obEx6Os8tt+Kfpj87ULTj/t5n5bNt97JbZCUxa5CzgTy0m8sQhKjZYGT0g +FellhZoZHj1Qk18CmW5sE0CFkESNFYNh5+OvUaZUQRXvMi/+H+kAnQ7C6oz+tCoMLOiHpQAFjBap +LknpzBi3lMDPZY4D4OYGpME/2ldNRmD410Gd7may3MjvnRH6Ntyg0xAf6F1gOty4XeaybkaktE13 +8srSMxxK+0oAx8iciRJDCxJja/8iiRoDCPgbnder/lTkFHF1zHXWK6YH5+1n3DgP8ouVqHVJOryP +OQo9ExfHGQVBd7nbuxIQGESIqxQyiblfpJcJT4rQPJg9jrSJKtg/lFfHNMlQPCjzcUKjZhn6/Fpe +y6vK33l8/F4TpZhGpjHvjUyHYLKHh25/nwibN4y92dyjY8krfHIVpwrP1MH2dhvDmAiekJ7IpV/R +5qqU70EMxPZistIK/OoJ3C3XEuB0QMRwKb4cVAHifvFD/LwfGUz/5bOu+0mlapdDM0kQYPs5AlIr +9Xy6A4bByJVhCJggrbbLQ8KaZYBTxCPXW9lotqd6zMczNdnSa4F+pMIKm2s9jijjL1dri00siyWY +w8v2ghp33dNK+klevSpiiId4/HfZN7+DpaqS0VTGlYPnETyRCtt+4t3qoYdZi4KpXImD/onhGlN4 +em5iH4ZmIRBMUOo+fj6b43vxKR0WsBdSUXV6zqYGz/Gkr2b0E8Ry7INV5oOjZzTxaz2YgyF/b/CB +epqMzl1uTd8n3OthMPbzvRO8eUqCXObHKhLyPsw4XqUwHTJKh42n128Su6JOUyuXMyzwmjrfSaqk +ixOM6bdaz4A+HGX5E2QR8cgEtQeZdfwDI+MI5WkhZJki2pi+3TEN83kZYgrTcYGzETznv7InTN/u +6Yp/+3Tulw1LvENJVERe4qI2IEhdeIYZ3lGAWzkX7fBavbCve5RZHMOn+tgcrRApV4c8vPy1N9CQ +ZLbCcPGDWw9IiezmgThbZ+KIyUe4h8hGvpbKbs27VRL7TgPrnvhqke7q1iK2ZnpTspt2ANQOLkd4 +CA75UfKx50DwAJqYFKJbZwu9AzmHHiKD0cfXX3gzUbryhZsY0hTqUigCi6zV4VlXSUmKkf86Xpel +3pg8TuNu6GsCXRlbebRZnjszMjfQ/cN4Nb8s8LAZkpIug8JOCWb/72A1i9rr3WNpTQvzk3M5eg== diff --git a/.jupyter/data/runtime/jpserver-37079-open.html b/.jupyter/data/runtime/jpserver-37079-open.html new file mode 100644 index 0000000..9451352 --- /dev/null +++ b/.jupyter/data/runtime/jpserver-37079-open.html @@ -0,0 +1,17 @@ + + + + + + + Opening Jupyter Application + + + +

+ This page should redirect you to a Jupyter application. If it doesn't, + click here to go to Jupyter. +

+ + + \ No newline at end of file diff --git a/.jupyter/data/runtime/jpserver-37079.json b/.jupyter/data/runtime/jpserver-37079.json new file mode 100644 index 0000000..a210e34 --- /dev/null +++ b/.jupyter/data/runtime/jpserver-37079.json @@ -0,0 +1,13 @@ +{ + "base_url": "/", + "hostname": "localhost", + "password": false, + "pid": 37079, + "port": 8888, + "root_dir": "/Users/pr/jl_0", + "secure": false, + "sock": "", + "token": "db740a5b7380edae73c8fc4a99018d78d9c6c0fd749f7005", + "url": "http://localhost:8888/", + "version": "2.17.0" +} \ No newline at end of file diff --git a/.jupyter/data/runtime/jpserver-38875-open.html b/.jupyter/data/runtime/jpserver-38875-open.html new file mode 100644 index 0000000..cc90648 --- /dev/null +++ b/.jupyter/data/runtime/jpserver-38875-open.html @@ -0,0 +1,17 @@ + + + + + + + Opening Jupyter Application + + + +

+ This page should redirect you to a Jupyter application. If it doesn't, + click here to go to Jupyter. +

+ + + \ No newline at end of file diff --git a/.jupyter/data/runtime/jpserver-38875.json b/.jupyter/data/runtime/jpserver-38875.json new file mode 100644 index 0000000..d5db941 --- /dev/null +++ b/.jupyter/data/runtime/jpserver-38875.json @@ -0,0 +1,13 @@ +{ + "base_url": "/", + "hostname": "localhost", + "password": false, + "pid": 38875, + "port": 8889, + "root_dir": "/Users/pr/jl_m", + "secure": false, + "sock": "", + "token": "45c8786ad184cdbdbe1bc59567a8260aab423f2a479f8910", + "url": "http://localhost:8889/", + "version": "2.17.0" +} \ No newline at end of file diff --git a/.jupyter/data/runtime/jpserver-41785-open.html b/.jupyter/data/runtime/jpserver-41785-open.html new file mode 100644 index 0000000..38f43e4 --- /dev/null +++ b/.jupyter/data/runtime/jpserver-41785-open.html @@ -0,0 +1,17 @@ + + + + + + + Opening Jupyter Application + + + +

+ This page should redirect you to a Jupyter application. If it doesn't, + click here to go to Jupyter. +

+ + + \ No newline at end of file diff --git a/.jupyter/data/runtime/jpserver-41785.json b/.jupyter/data/runtime/jpserver-41785.json new file mode 100644 index 0000000..6e73214 --- /dev/null +++ b/.jupyter/data/runtime/jpserver-41785.json @@ -0,0 +1,13 @@ +{ + "base_url": "/", + "hostname": "localhost", + "password": false, + "pid": 41785, + "port": 8890, + "root_dir": "/Users/pr/jl_1", + "secure": false, + "sock": "", + "token": "30b639d0719c655bdb593c39c6c8e3d96048d27b637b79a7", + "url": "http://localhost:8890/", + "version": "2.17.0" +} \ No newline at end of file diff --git a/.jupyter/data/runtime/jpserver-44403-open.html b/.jupyter/data/runtime/jpserver-44403-open.html new file mode 100644 index 0000000..f5f7fbd --- /dev/null +++ b/.jupyter/data/runtime/jpserver-44403-open.html @@ -0,0 +1,17 @@ + + + + + + + Opening Jupyter Application + + + +

+ This page should redirect you to a Jupyter application. If it doesn't, + click here to go to Jupyter. +

+ + + \ No newline at end of file diff --git a/.jupyter/data/runtime/jpserver-44403.json b/.jupyter/data/runtime/jpserver-44403.json new file mode 100644 index 0000000..4eabbd1 --- /dev/null +++ b/.jupyter/data/runtime/jpserver-44403.json @@ -0,0 +1,13 @@ +{ + "base_url": "/", + "hostname": "localhost", + "password": false, + "pid": 44403, + "port": 8888, + "root_dir": "/Users/pr/jl_m", + "secure": false, + "sock": "", + "token": "0dbca0cc6e76593802ee2aa2997b2e06c7a2bca0fc5aa43d", + "url": "http://localhost:8888/", + "version": "2.17.0" +} \ No newline at end of file diff --git a/.jupyter/data/runtime/jpserver-46241-open.html b/.jupyter/data/runtime/jpserver-46241-open.html new file mode 100644 index 0000000..e85cbd4 --- /dev/null +++ b/.jupyter/data/runtime/jpserver-46241-open.html @@ -0,0 +1,17 @@ + + + + + + + Opening Jupyter Application + + + +

+ This page should redirect you to a Jupyter application. If it doesn't, + click here to go to Jupyter. +

+ + + \ No newline at end of file diff --git a/.jupyter/data/runtime/jpserver-46241.json b/.jupyter/data/runtime/jpserver-46241.json new file mode 100644 index 0000000..ea35d67 --- /dev/null +++ b/.jupyter/data/runtime/jpserver-46241.json @@ -0,0 +1,13 @@ +{ + "base_url": "/", + "hostname": "localhost", + "password": false, + "pid": 46241, + "port": 8888, + "root_dir": "/Users/pr/jl_m", + "secure": false, + "sock": "", + "token": "3a4abf914f825e9e9802859899352ae7ccde9e364f8eeffc", + "url": "http://localhost:8888/", + "version": "2.17.0" +} \ No newline at end of file diff --git a/.jupyter/data/runtime/jupyter_cookie_secret b/.jupyter/data/runtime/jupyter_cookie_secret new file mode 100644 index 0000000..74af05b --- /dev/null +++ b/.jupyter/data/runtime/jupyter_cookie_secret @@ -0,0 +1 @@ +8xVEWJeV0g7xjQt5DxXy1g9ijzfnr78Y2SimZh5JJ/I= diff --git a/.jupyter/data/runtime/kernel-02560f24-cc0f-4e38-b0a9-fb2de73d52f5.json b/.jupyter/data/runtime/kernel-02560f24-cc0f-4e38-b0a9-fb2de73d52f5.json new file mode 100644 index 0000000..0e3e7ba --- /dev/null +++ b/.jupyter/data/runtime/kernel-02560f24-cc0f-4e38-b0a9-fb2de73d52f5.json @@ -0,0 +1,13 @@ +{ + "shell_port": 52498, + "iopub_port": 52499, + "stdin_port": 52500, + "control_port": 52502, + "hb_port": 52501, + "ip": "127.0.0.1", + "key": "5be9adf2-81b603f633cb91362852f82c", + "transport": "tcp", + "signature_scheme": "hmac-sha256", + "kernel_name": "python3", + "jupyter_session": "/Users/pr/jl_m/Files/Untitled1.ipynb" +} \ No newline at end of file diff --git a/.jupyter/data/runtime/kernel-2a236137-6e38-44de-bf2a-24513fdb8b72.json b/.jupyter/data/runtime/kernel-2a236137-6e38-44de-bf2a-24513fdb8b72.json new file mode 100644 index 0000000..a9946a3 --- /dev/null +++ b/.jupyter/data/runtime/kernel-2a236137-6e38-44de-bf2a-24513fdb8b72.json @@ -0,0 +1,13 @@ +{ + "shell_port": 54551, + "iopub_port": 54552, + "stdin_port": 54553, + "control_port": 54555, + "hb_port": 54554, + "ip": "127.0.0.1", + "key": "edf33638-6350ea25899553ccc7ec2c3a", + "transport": "tcp", + "signature_scheme": "hmac-sha256", + "kernel_name": "python3", + "jupyter_session": "/Users/pr/jl_m/Files/Untitled2.ipynb" +} \ No newline at end of file diff --git a/.jupyter/data/runtime/kernel-2aae1916-b65b-4d93-b976-a673691cc587.json b/.jupyter/data/runtime/kernel-2aae1916-b65b-4d93-b976-a673691cc587.json new file mode 100644 index 0000000..db77071 --- /dev/null +++ b/.jupyter/data/runtime/kernel-2aae1916-b65b-4d93-b976-a673691cc587.json @@ -0,0 +1,13 @@ +{ + "shell_port": 54545, + "iopub_port": 54546, + "stdin_port": 54547, + "control_port": 54549, + "hb_port": 54548, + "ip": "127.0.0.1", + "key": "843aa13c-302b9cde4d2defd06b1c2e0a", + "transport": "tcp", + "signature_scheme": "hmac-sha256", + "kernel_name": "python3", + "jupyter_session": "/Users/pr/jl_m/Files/Untitled1.ipynb" +} \ No newline at end of file diff --git a/.jupyter/data/runtime/kernel-3a7cd087-e045-49cd-ae4e-e8acc1f97e71.json b/.jupyter/data/runtime/kernel-3a7cd087-e045-49cd-ae4e-e8acc1f97e71.json new file mode 100644 index 0000000..08b98e4 --- /dev/null +++ b/.jupyter/data/runtime/kernel-3a7cd087-e045-49cd-ae4e-e8acc1f97e71.json @@ -0,0 +1,13 @@ +{ + "shell_port": 56109, + "iopub_port": 56110, + "stdin_port": 56111, + "control_port": 56113, + "hb_port": 56112, + "ip": "127.0.0.1", + "key": "1ec7d5b3-aaa26487aff5bf75afff082a", + "transport": "tcp", + "signature_scheme": "hmac-sha256", + "kernel_name": "python3", + "jupyter_session": "/Users/pr/jl_1/Files/Using_pylock.ipynb" +} \ No newline at end of file diff --git a/.jupyter/data/runtime/kernel-50661378-9e2d-4de3-8809-b9d935629f55.json b/.jupyter/data/runtime/kernel-50661378-9e2d-4de3-8809-b9d935629f55.json new file mode 100644 index 0000000..2d54054 --- /dev/null +++ b/.jupyter/data/runtime/kernel-50661378-9e2d-4de3-8809-b9d935629f55.json @@ -0,0 +1,13 @@ +{ + "shell_port": 52546, + "iopub_port": 52547, + "stdin_port": 52548, + "control_port": 52550, + "hb_port": 52549, + "ip": "127.0.0.1", + "key": "6425a465-4df98aaf0143ab5c2201ed56", + "transport": "tcp", + "signature_scheme": "hmac-sha256", + "kernel_name": "python3", + "jupyter_session": "/Users/pr/jl_m/Files/Untitled2.ipynb" +} \ No newline at end of file diff --git a/.jupyter/data/runtime/kernel-8132e889-2013-453d-80f0-249d9eacb7eb.json b/.jupyter/data/runtime/kernel-8132e889-2013-453d-80f0-249d9eacb7eb.json new file mode 100644 index 0000000..b1ca485 --- /dev/null +++ b/.jupyter/data/runtime/kernel-8132e889-2013-453d-80f0-249d9eacb7eb.json @@ -0,0 +1,13 @@ +{ + "shell_port": 54305, + "iopub_port": 54306, + "stdin_port": 54307, + "control_port": 54309, + "hb_port": 54308, + "ip": "127.0.0.1", + "key": "77f0e5c1-2982525ffd15ec3b2c71fbcf", + "transport": "tcp", + "signature_scheme": "hmac-sha256", + "kernel_name": "python3", + "jupyter_session": "/Users/pr/jl_0/Files/Using_pylock.ipynb" +} \ No newline at end of file diff --git a/.jupyter/data/runtime/kernel-99d2c070-c94e-4c27-a5e8-cc7a423d8a5e.json b/.jupyter/data/runtime/kernel-99d2c070-c94e-4c27-a5e8-cc7a423d8a5e.json new file mode 100644 index 0000000..44b6431 --- /dev/null +++ b/.jupyter/data/runtime/kernel-99d2c070-c94e-4c27-a5e8-cc7a423d8a5e.json @@ -0,0 +1,13 @@ +{ + "shell_port": 56067, + "iopub_port": 56068, + "stdin_port": 56069, + "control_port": 56071, + "hb_port": 56070, + "ip": "127.0.0.1", + "key": "dd00e131-c1bdb9cc074a1f70f095bbed", + "transport": "tcp", + "signature_scheme": "hmac-sha256", + "kernel_name": "python3", + "jupyter_session": "/Users/pr/jl_1/Files/test_imports.ipynb" +} \ No newline at end of file diff --git a/.jupyter/data/runtime/kernel-b4590abf-6e7a-4bdf-94b8-c0398a7da25c.json b/.jupyter/data/runtime/kernel-b4590abf-6e7a-4bdf-94b8-c0398a7da25c.json new file mode 100644 index 0000000..700e149 --- /dev/null +++ b/.jupyter/data/runtime/kernel-b4590abf-6e7a-4bdf-94b8-c0398a7da25c.json @@ -0,0 +1,13 @@ +{ + "shell_port": 54336, + "iopub_port": 54337, + "stdin_port": 54338, + "control_port": 54340, + "hb_port": 54339, + "ip": "127.0.0.1", + "key": "c8a29aa0-0e62a0c4d21156d5e525f427", + "transport": "tcp", + "signature_scheme": "hmac-sha256", + "kernel_name": "python3", + "jupyter_session": "/Users/pr/jl_0/Files/test_imports.ipynb" +} \ No newline at end of file diff --git a/.jupyter/jupyter_lab_config.py b/.jupyter/jupyter_lab_config.py new file mode 100644 index 0000000..60d7ef5 --- /dev/null +++ b/.jupyter/jupyter_lab_config.py @@ -0,0 +1,57 @@ +# Configuration file for jupyter-server. + +from pathlib import Path + +user_home = Path.home().absolute() +project_home = Path(".").absolute() +Files = project_home / "Files" + +## upper_limit is the top of the tree that File Browser can reach +## start_dir is where File Browser starts +upper_limit = project_home +start_dir = Files.relative_to(upper_limit) + + + +c = get_config() #noqa + + +## Allow access to hidden files +c.ContentsManager.allow_hidden = True + +## Globs -- always hidden +c.ContentsManager.hide_globs = [ + '__pycache__', + '*.pyc', + '*.pyo', + '.DS_Store', + '*.so', + '*.dylib', + '*~', + '.venv', + '.jupyter', + '.ipynb_checkpoints', + ] + +c.ContentsManager.root_dir = str(upper_limit) +c.ContentsManager.preferred_dir = str(start_dir) + +## Shutdown +# Shut down the server after N seconds with no kernels +# running and no activity. This can be used together with +# culling idle kernels (MappingKernelManager.cull_idle_timeout) +# to shutdown the Jupyter server when it’s not in use. +# This is not precisely timed: it may shut down up to a minute later. +# 0 (the default) disables this automatic shutdown. +# Default = 0 +c.ServerApp.shutdown_no_activity_timeout = 1 + +## Time to wait for a kernel to terminate before killing it, +# in seconds. When a shutdown request is initiated, the kernel +# will be immediately sent an interrupt (SIGINT), +# followedby a shutdown_request message, after 1/2 of shutdown_wait_time +# it will be sent a terminate (SIGTERM) request, and finally at the end +# of shutdown_wait_time will be killed (SIGKILL). +# terminate and kill may be equivalent on windows. +# Default: 5.0 +c.KernelManager.shutdown_wait_time = 1.0 diff --git a/.jupyter/lab/user-settings/@jupyter-lsp/jupyterlab-lsp/plugin.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyter-lsp/jupyterlab-lsp/plugin.jupyterlab-settings new file mode 100644 index 0000000..15e8e66 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyter-lsp/jupyterlab-lsp/plugin.jupyterlab-settings @@ -0,0 +1,282 @@ +{ + "language_servers": { + "basedpyright": { + "priority": 50, + "serverSettings": { + "basedpyright.analysis.autoImportCompletions": true, + "basedpyright.analysis.autoSearchPaths": true, + "basedpyright.analysis.extraPaths": [], + "basedpyright.analysis.stubPath": "typings", + "basedpyright.analysis.baselineFile": "", + "basedpyright.analysis.diagnosticMode": "openFilesOnly", + "basedpyright.analysis.diagnosticSeverityOverrides": { + "reportGeneralTypeIssues": "error", + "reportPropertyTypeMismatch": "none", + "reportFunctionMemberAccess": "none", + "reportMissingImports": "error", + "reportMissingModuleSource": "warning", + "reportInvalidTypeForm": "error", + "reportMissingTypeStubs": "none", + "reportImportCycles": "none", + "reportUnusedImport": "none", + "reportUnusedClass": "none", + "reportUnusedFunction": "none", + "reportUnusedVariable": "none", + "reportDuplicateImport": "none", + "reportWildcardImportFromLibrary": "warning", + "reportAbstractUsage": "error", + "reportArgumentType": "error", + "reportAssertTypeFailure": "error", + "reportAssignmentType": "error", + "reportAttributeAccessIssue": "error", + "reportCallIssue": "error", + "reportInconsistentOverload": "error", + "reportIndexIssue": "error", + "reportInvalidTypeArguments": "error", + "reportNoOverloadImplementation": "error", + "reportOperatorIssue": "error", + "reportOptionalSubscript": "error", + "reportOptionalMemberAccess": "error", + "reportOptionalCall": "error", + "reportOptionalIterable": "error", + "reportOptionalContextManager": "error", + "reportOptionalOperand": "error", + "reportRedeclaration": "error", + "reportReturnType": "error", + "reportTypedDictNotRequiredAccess": "error", + "reportUntypedFunctionDecorator": "none", + "reportUntypedClassDecorator": "none", + "reportUntypedBaseClass": "none", + "reportUntypedNamedTuple": "none", + "reportPrivateUsage": "none", + "reportTypeCommentUsage": "none", + "reportPrivateImportUsage": "error", + "reportConstantRedefinition": "none", + "reportDeprecated": "none", + "reportIncompatibleMethodOverride": "none", + "reportIncompatibleVariableOverride": "none", + "reportInconsistentConstructor": "none", + "reportOverlappingOverload": "none", + "reportPossiblyUnboundVariable": "error", + "reportMissingSuperCall": "none", + "reportUninitializedInstanceVariable": "none", + "reportInvalidStringEscapeSequence": "warning", + "reportUnknownParameterType": "none", + "reportUnknownArgumentType": "none", + "reportUnknownLambdaType": "none", + "reportUnknownVariableType": "none", + "reportUnknownMemberType": "none", + "reportMissingParameterType": "none", + "reportMissingTypeArgument": "none", + "reportInvalidTypeVarUse": "warning", + "reportCallInDefaultInitializer": "none", + "reportUnnecessaryIsInstance": "none", + "reportUnnecessaryCast": "none", + "reportUnnecessaryComparison": "none", + "reportUnnecessaryContains": "none", + "reportAssertAlwaysTrue": "warning", + "reportSelfClsParameterName": "warning", + "reportImplicitStringConcatenation": "none", + "reportInvalidStubStatement": "none", + "reportIncompleteStub": "none", + "reportUndefinedVariable": "error", + "reportUnboundVariable": "error", + "reportUnhashable": "error", + "reportUnsupportedDunderAll": "warning", + "reportUnusedCallResult": "none", + "reportUnusedCoroutine": "error", + "reportUnusedExcept": "error", + "reportUnusedExpression": "warning", + "reportUnnecessaryTypeIgnoreComment": "none", + "reportMatchNotExhaustive": "none", + "reportUnreachable": "none", + "reportShadowedImports": "none", + "reportImplicitOverride": "none", + "reportAny": "none", + "reportExplicitAny": "none", + "reportIgnoreCommentWithoutRule": "none", + "reportPrivateLocalImportUsage": "none", + "reportImplicitRelativeImport": "none", + "reportInvalidCast": "none", + "reportUnsafeMultipleInheritance": "none", + "reportUnusedParameter": "hint", + "reportImplicitAbstractClass": "none", + "reportIncompatibleUnannotatedOverride": "none", + "reportUnannotatedClassAttribute": "none", + "reportInvalidAbstractMethod": "none" + }, + "basedpyright.analysis.fileEnumerationTimeout": 10, + "basedpyright.analysis.logLevel": "Information", + "basedpyright.analysis.typeCheckingMode": "standard", + "basedpyright.analysis.typeshedPaths": [], + "basedpyright.analysis.useLibraryCodeForTypes": false, + "basedpyright.disableLanguageServices": false, + "basedpyright.disableTaggedHints": false, + "basedpyright.disableOrganizeImports": false, + "basedpyright.disablePullDiagnostics": false, + "basedpyright.pythonPath": "python", + "basedpyright.venvPath": "", + "basedpyright.importStrategy": "fromEnvironment", + "basedpyright.analysis.inlayHints.variableTypes": true, + "basedpyright.analysis.inlayHints.callArgumentNames": true, + "basedpyright.analysis.inlayHints.callArgumentNamesMatching": false, + "basedpyright.analysis.inlayHints.functionReturnTypes": true, + "basedpyright.analysis.inlayHints.genericTypes": false, + "basedpyright.analysis.useTypingExtensions": false, + "basedpyright.analysis.autoFormatStrings": true + } + }, + "julia-language-server": { + "priority": 50, + "serverSettings": { + "julia.lint.run": false, + "julia.lint.missingrefs": "none", + "julia.lint.disabledDirs": [ + "docs", + "test" + ], + "julia.lint.call": true, + "julia.lint.iter": true, + "julia.lint.nothingcomp": true, + "julia.lint.constif": true, + "julia.lint.lazy": true, + "julia.lint.datadecl": true, + "julia.lint.typeparam": true, + "julia.lint.modname": true, + "julia.lint.pirates": true, + "julia.lint.useoffuncargs": true, + "julia.completionmode": "qualify" + } + }, + "pyrefly": { + "priority": 50, + "serverSettings": { + "python.pyrefly.disableTypeErrors": false, + "python.pyrefly.disableLanguageServices": false + } + }, + "pylsp": { + "priority": 100, + "serverSettings": { + "pylsp.configurationSources": [ + "pycodestyle" + ], + "pylsp.plugins.flake8.config": null, + "pylsp.plugins.flake8.enabled": true, + "pylsp.plugins.flake8.exclude": [ + ".git", + "__pycache__", + "build", + "dist", + ".venv" + ], + "pylsp.plugins.flake8.executable": "flake8", + "pylsp.plugins.flake8.filename": null, + "pylsp.plugins.flake8.hangClosing": null, + "pylsp.plugins.flake8.ignore": [ + "E203", + "E303" + ], + "pylsp.plugins.flake8.maxLineLength": 88, + "pylsp.plugins.flake8.indentSize": null, + "pylsp.plugins.flake8.perFileIgnores": [], + "pylsp.plugins.flake8.select": null, + "pylsp.plugins.jedi.extra_paths": [], + "pylsp.plugins.jedi.environment": null, + "pylsp.plugins.jedi_completion.enabled": true, + "pylsp.plugins.jedi_completion.include_params": true, + "pylsp.plugins.jedi_completion.include_class_objects": true, + "pylsp.plugins.jedi_completion.fuzzy": false, + "pylsp.plugins.jedi_completion.eager": false, + "pylsp.plugins.jedi_completion.resolve_at_most": 25, + "pylsp.plugins.jedi_completion.cache_for": [ + "pandas", + "numpy", + "tensorflow", + "matplotlib" + ], + "pylsp.plugins.jedi_definition.enabled": true, + "pylsp.plugins.jedi_definition.follow_imports": true, + "pylsp.plugins.jedi_definition.follow_builtin_imports": true, + "pylsp.plugins.jedi_hover.enabled": true, + "pylsp.plugins.jedi_references.enabled": true, + "pylsp.plugins.jedi_signature_help.enabled": true, + "pylsp.plugins.jedi_symbols.enabled": true, + "pylsp.plugins.jedi_symbols.all_scopes": true, + "pylsp.plugins.jedi_symbols.include_import_symbols": true, + "pylsp.plugins.mccabe.enabled": true, + "pylsp.plugins.mccabe.threshold": 15, + "pylsp.plugins.preload.enabled": true, + "pylsp.plugins.preload.modules": [], + "pylsp.plugins.pycodestyle.enabled": false, + "pylsp.plugins.pycodestyle.exclude": [], + "pylsp.plugins.pycodestyle.filename": [], + "pylsp.plugins.pycodestyle.select": [], + "pylsp.plugins.pycodestyle.ignore": [], + "pylsp.plugins.pycodestyle.hangClosing": null, + "pylsp.plugins.pycodestyle.maxLineLength": null, + "pylsp.plugins.pycodestyle.indentSize": null, + "pylsp.plugins.pydocstyle.enabled": false, + "pylsp.plugins.pydocstyle.convention": null, + "pylsp.plugins.pydocstyle.addIgnore": [], + "pylsp.plugins.pydocstyle.addSelect": [], + "pylsp.plugins.pydocstyle.ignore": [], + "pylsp.plugins.pydocstyle.select": [], + "pylsp.plugins.pydocstyle.match": "(?!test_).*\\.py", + "pylsp.plugins.pydocstyle.matchDir": "[^\\.].*", + "pylsp.plugins.pyflakes.enabled": false, + "pylsp.plugins.pylint.enabled": false, + "pylsp.plugins.pylint.args": [], + "pylsp.plugins.pylint.executable": null, + "pylsp.plugins.rope_completion.enabled": false, + "pylsp.plugins.rope_completion.eager": false, + "pylsp.plugins.yapf.enabled": false, + "pylsp.rope.extensionModules": null, + "pylsp.rope.ropeFolder": null, + "pylsp.plugins.jedi.env_vars": null + } + }, + "r-languageserver": { + "priority": 50, + "serverSettings": { + "r.lsp.debug": true, + "r.lsp.log_file": null, + "r.lsp.diagnostics": true, + "r.lsp.rich_documentation": true, + "r.lsp.snippet_support": true, + "r.lsp.max_completions": 200, + "r.lsp.lint_cache": false, + "r.lsp.link_file_size_limit": 16384 + } + }, + "texlab": { + "priority": 50, + "serverSettings": { + "rootDirectory": null, + "build.executable": "latexmk", + "build.args": [ + "-pdf", + "-interaction=nonstopmode", + "-synctex=1", + "%f" + ], + "build.onSave": false, + "build.outputDirectory": ".", + "build.forwardSearchAfter": false, + "forwardSearch.executable": null, + "forwardSearch.args": [], + "chktex.onOpenAndSave": false, + "chktex.onEdit": false, + "diagnosticsDelay": 300, + "formatterLineLength": 80, + "latexFormatter": "latexindent", + "latexindent.local": null, + "latexindent.modifyLineBreaks": false + } + } + }, + "loggingConsole": "browser", + "loggingLevel": "warn", + "logAllCommunication": false, + "setTrace": null +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyter-lsp/jupyterlab-lsp/signature.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyter-lsp/jupyterlab-lsp/signature.jupyterlab-settings new file mode 100644 index 0000000..740a1a5 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyter-lsp/jupyterlab-lsp/signature.jupyterlab-settings @@ -0,0 +1,3 @@ +{ + "disable": true, +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab-contrib/spellchecker/plugin.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab-contrib/spellchecker/plugin.jupyterlab-settings new file mode 100644 index 0000000..99c3b4c --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab-contrib/spellchecker/plugin.jupyterlab-settings @@ -0,0 +1,23 @@ +{ + "theme": "background-box", + "language": "en-us", + "checkComments": true, + "checkStrings": false, + "debounceTime": 200, + "ignore": [ + "JupyterLab", + "Jupyter", + "JupyterHub", + "Voilà", + "Xeus", + "IPython", + "Gennaker", + "gennaker" + ], + "mimeTypes": [ + "text/plain", + "text/x-ipythongfm", + "text/x-latex", + ], + "onlineDictionaries": [] +} diff --git a/.jupyter/lab/user-settings/@jupyterlab/application-extension/context-menu.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/application-extension/context-menu.jupyterlab-settings new file mode 100644 index 0000000..41ff66e --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/application-extension/context-menu.jupyterlab-settings @@ -0,0 +1,590 @@ +{ "contextMenu": [ + { + "command": "shortcuts:edit-keybinding", + "selector": ".jp-Shortcuts-ShortcutKeysContainer", + "disabled": true, + }, + { + "command": "running:kernel-new-console", + "selector": ".jp-RunningSessions-item.jp-mod-kernel", + "disabled": true, + }, + { + "command": "workspace-ui:clone", + "selector": ".jp-RunningSessions-item.jp-mod-workspace", + "rank": 0, + "disabled": true, + }, + { + "command": "fileeditor:undo", + "selector": ".jp-FileEditor", + "disabled": true, + }, + { + "command": "shortcuts:delete-keybinding", + "selector": ".jp-Shortcuts-ShortcutKeysContainer", + "disabled": true, + }, + { + "command": "console:undo", + "selector": ".jp-CodeConsole-promptCell", + "disabled": true, + }, + // { + // "command": "filebrowser:open", + // "selector": ".jp-DirListing-item[data-isdir]", + // "disabled": true, + // }, + { + "command": "notebook:cut-cell", + "selector": ".jp-Notebook .jp-Cell", + "disabled": true, + }, + { + "command": "running:kernel-new-notebook", + "selector": ".jp-RunningSessions-item.jp-mod-kernel", + "disabled": true, + }, + { + "command": "terminal:copy", + "selector": ".jp-Terminal", + "disabled": true, + }, + { + "command": "workspace-ui:rename", + "selector": ".jp-RunningSessions-item.jp-mod-workspace", + "disabled": true, + }, + { + "type": "submenu", + "selector": ".jp-DirListing-item[data-isdir=\"false\"]", + "disabled": true, + "submenu": { + "id": "jp-contextmenu-open-with", + "label": "Open With", + "items": [] + } + }, + { + "command": "filebrowser:open-browser-tab", + "selector": ".jp-DirListing-item[data-isdir=\"false\"]", + "disabled": true, + }, + { + "command": "fileeditor:redo", + "selector": ".jp-FileEditor", + "disabled": true, + }, + { + "command": "shortcuts:add-keybinding", + "selector": ".jp-Shortcuts-Row", + "disabled": true, + }, + { + "command": "console:redo", + "selector": ".jp-CodeConsole-promptCell", + "disabled": true, + }, + { + "command": "notebook:copy-cell", + "selector": ".jp-Notebook .jp-Cell", + "disabled": true, + }, + + { + "command": "terminal:paste", + "selector": ".jp-Terminal", + "disabled": true, + }, + { + "command": "workspace-ui:reset", + "selector": ".jp-RunningSessions-item.jp-mod-workspace", + "disabled": true, + }, + { + "command": "fileeditor:cut", + "selector": ".jp-FileEditor", + "disabled": true, + }, + { + "command": "shortcuts:toggle-selectors", + "selector": ".jp-Shortcuts-Top", + "disabled": true, + }, + { + "command": "notebook:paste-cell-below", + "selector": ".jp-Notebook .jp-Cell", + "disabled": true, + }, + { + "type": "submenu", + "selector": ".jp-RunningSessions-item.jp-mod-kernel", + "disabled": true, + "submenu": { + "id": "jp-contextmenu-connected-sessions", + "label": "Connected Sessions…", + "items": [] + } + }, + { + "command": "terminal:refresh", + "selector": ".jp-Terminal", + "disabled": true, + }, + { + "command": "workspace-ui:delete", + "selector": ".jp-RunningSessions-item.jp-mod-workspace", + "disabled": true, + }, + { + "command": "fileeditor:copy", + "selector": ".jp-FileEditor", + "disabled": true, + }, + { + "command": "shortcuts:reset-all", + "selector": ".jp-Shortcuts-Top", + "disabled": true, + }, + { + "command": "application:close", + "selector": "#jp-main-dock-panel .lm-DockPanel-tabBar .lm-TabBar-tab", + "disabled": true, + }, + { + "command": "application:close-other-tabs", + "selector": "#jp-main-dock-panel .lm-DockPanel-tabBar .lm-TabBar-tab", + "disabled": true, + }, + { + "command": "application:close-all", + "selector": "#jp-main-dock-panel .lm-DockPanel-tabBar .lm-TabBar-tab", + "disabled": true, + }, + { + "type": "separator", + "selector": ".jp-DirListing-item[data-isdir]", + "disabled": true, + }, + { + "type": "separator", + "selector": ".jp-Notebook .jp-Cell", + "disabled": true, + }, + { + "type": "separator", + "selector": ".jp-RunningSessions-item.jp-mod-kernel", + "disabled": true, + }, + { + "command": "workspace-ui:export", + "selector": ".jp-RunningSessions-item.jp-mod-workspace", + "disabled": true, + }, + { + "command": "fileeditor:paste", + "selector": ".jp-FileEditor", + "disabled": true, + }, + { + "command": "application:close-right-tabs", + "selector": "#jp-main-dock-panel .lm-DockPanel-tabBar .lm-TabBar-tab", + "disabled": true, + }, + // { + // "command": "filebrowser:rename", + // "selector": ".jp-DirListing-item[data-isdir]", + // "disabled": true, + // }, + { + "command": "inspector:open", + "selector": ".jp-CodeConsole-promptCell", + "disabled": true, + }, + { + "command": "notebook:delete-cell", + "selector": ".jp-Notebook .jp-Cell", + "disabled": true, + }, + { + "command": "running:kernel-shut-down", + "selector": ".jp-RunningSessions-item.jp-mod-kernel", + "disabled": true, + }, + { + "type": "separator", + "selector": ".jp-RunningSessions-item.jp-mod-workspace", + "disabled": true, + }, + { + "command": "fileeditor:select-all", + "selector": ".jp-FileEditor", + "disabled": true, + }, + { + "command": "recentmenu:reopen-last", + "selector": "#jp-main-dock-panel .lm-DockPanel-tabBar .lm-TabBar-tab", + "disabled": true, + }, + // { + // "command": "filebrowser:delete", + // "selector": ".jp-DirListing-item[data-isdir]", + // "disabled": true, + // }, + { + "type": "separator", + "selector": ".jp-Notebook .jp-Cell", + "disabled": true, + }, + { + "command": "workspace-ui:import", + "selector": ".jp-RunningSessions-section:has(.jp-mod-workspace)", + "disabled": true, + }, + // { + // "command": "filebrowser:cut", + // "selector": ".jp-DirListing-item[data-isdir]", + // "disabled": true, + // }, + { + "command": "notebook:split-cell-at-cursor", + "selector": ".jp-Notebook .jp-Cell", + "disabled": true, + }, + { + "command": "workspace-ui:create-new", + "selector": ".jp-RunningSessions-section:has(.jp-mod-workspace)", + "disabled": true, + }, + // { + // "command": "filebrowser:copy", + // "selector": ".jp-DirListing-item[data-isdir]", + // "disabled": true, + // }, + { + "command": "notebook:merge-cells", + "selector": ".jp-Notebook .jp-Cell", + "disabled": true, + }, + { + "command": "notebook:merge-cell-above", + "selector": ".jp-Notebook .jp-Cell", + "disabled": true, + }, + { + "command": "notebook:merge-cell-below", + "selector": ".jp-Notebook .jp-Cell", + "disabled": true, + }, + // { + // "command": "filebrowser:paste", + // "selector": ".jp-DirListing-content", + // "disabled": true, + // }, + // { + // "command": "filebrowser:duplicate", + // "selector": ".jp-DirListing-item[data-isdir=\"false\"]", + // "disabled": true, + // }, + // { + // "command": "filebrowser:download", + // "selector": ".jp-DirListing-item[data-isdir=\"false\"]", + // "disabled": true, + // }, + { + "type": "separator", + "selector": ".jp-Notebook .jp-Cell", + "disabled": true, + }, + { + "command": "fileeditor:create-console", + "selector": ".jp-FileEditor", + "disabled": true, + }, + { + "command": "filemenu:create-console", + "selector": "[data-type=\"document-title\"].jp-mod-current", + "disabled": true, + }, + { + "command": "console:clear", + "selector": ".jp-CodeConsole-content", + "disabled": true, + }, + { + "type": "separator", + "selector": ".jp-DirListing-item[data-isdir]", + "disabled": true, + }, + { + "command": "notebook:create-output-view", + "selector": ".jp-Notebook .jp-CodeCell", + "disabled": true, + }, + // { + // "command": "fileeditor:markdown-preview", + // "selector": ".jp-FileEditor", + // "disabled": true, + // }, + { + "command": "filebrowser:shutdown", + "selector": ".jp-DirListing-item[data-isdir=\"false\"].jp-mod-running", + "disabled": true, + }, + { + "type": "separator", + "selector": ".jp-Notebook .jp-CodeCell", + "disabled": true, + }, + { + "type": "separator", + "selector": ".jp-DirListing-item[data-isdir]", + "disabled": true, + }, + { + "type": "separator", + "selector": ".MathJax", + "disabled": true, + }, + { + "command": "notebook:clear-cell-output", + "selector": ".jp-Notebook .jp-CodeCell", + "disabled": true, + }, + // { + // "command": "filebrowser:copy-download-link", + // "selector": ".jp-DirListing-item[data-isdir=\"false\"]", + // "disabled": true, + // }, + { + "command": "mathjax:clipboard", + "selector": ".MathJax", + "disabled": true, + }, + { + "command": "mathjax:scale", + "selector": ".MathJax", + "disabled": true, + }, + { + "command": "mathjax:scale", + "selector": ".MathJax", + "disabled": true, + "args": { + "scale": 1.5 + } + }, + { + "type": "separator", + "selector": ".MathJax", + "disabled": true, + }, + { + "command": "notebook:clear-all-cell-outputs", + "selector": ".jp-Notebook", + "disabled": true, + }, + // { + // "command": "filebrowser:copy-path", + // "selector": ".jp-DirListing-item[data-isdir]", + // "disabled": true, + // }, + // { + // "command": "filebrowser:toggle-last-modified", + // "selector": ".jp-DirListing-header", + // "disabled": true, + // }, + // { + // "command": "filebrowser:toggle-file-size", + // "selector": ".jp-DirListing-header", + // "disabled": true, + // }, + // { + // "command": "filebrowser:toggle-file-checkboxes", + // "selector": ".jp-DirListing-header", + // "disabled": true, + // }, + // { + // "command": "filebrowser:toggle-sort-notebooks-first", + // "selector": ".jp-DirListing-header", + // "disabled": true, + // }, + // { + // "command": "filebrowser:share-main", + // "selector": ".jp-DirListing-item[data-isdir]", + // "disabled": true, + // }, + { + "command": "docmanager:rename", + "selector": "[data-type=\"document-title\"]", + "disabled": true, + }, + { + "command": "console:toggle-show-all-kernel-activity", + "selector": ".jp-CodeConsole", + "disabled": true, + }, + { + "type": "separator", + "selector": ".jp-Notebook", + "disabled": true, + }, + { + "command": "docmanager:duplicate", + "selector": "[data-type=\"document-title\"]", + "disabled": true, + }, + { + "command": "notebook:enable-output-scrolling", + "selector": ".jp-Notebook", + "disabled": true, + }, + { + "command": "docmanager:delete", + "selector": "[data-type=\"document-title\"]", + "disabled": true, + }, + { + "command": "notebook:disable-output-scrolling", + "selector": ".jp-Notebook", + "disabled": true, + }, + { + "command": "docmanager:clone", + "selector": "[data-type=\"document-title\"]", + "disabled": true, + }, + { + "command": "docmanager:show-in-file-browser", + "selector": "[data-type=\"document-title\"]", + "disabled": true, + }, + { + "command": "console:restart-kernel", + "selector": ".jp-CodeConsole", + "disabled": true, + }, + { + "type": "separator", + "selector": ".jp-Notebook", + "disabled": true, + }, + { + "command": "notebook:undo-cell-action", + "selector": ".jp-Notebook", + "disabled": true, + }, + { + "command": "notebook:redo-cell-action", + "selector": ".jp-Notebook", + "disabled": true, + }, + { + "command": "notebook:restart-kernel", + "selector": ".jp-Notebook", + "disabled": true, + }, + { + "type": "separator", + "selector": ".jp-Notebook", + "disabled": true, + }, + { + "command": "notebook:create-console", + "selector": ".jp-Notebook", + "disabled": true, + }, + { + "type": "separator", + "selector": ".jp-DirListing-item[data-isdir]", + "disabled": true, + }, + { + "command": "inspector:open", + "selector": ".jp-Notebook", + "disabled": true, + }, + // { + // "command": "filebrowser:create-new-file", + // "selector": ".jp-DirListing-content", + // "disabled": true, + // }, + { + "command": "notebook:create-new", + "selector": ".jp-DirListing-content", + "disabled": true, + "args": { + "isContextMenu": true + } + }, + // { + // "command": "filebrowser:create-new-directory", + // "selector": ".jp-DirListing-content", + // "disabled": true, + // }, + { + "command": "logconsole:open", + "selector": ".jp-Notebook", + "disabled": true, + }, + { + "command": "sidebar:switch", + "selector": ".jp-SideBar .lm-TabBar-tab", + "disabled": true, + }, + { + "command": "__internal:context-menu-info", + "selector": "body", + "disabled": true, + }, + { + "command": "markdownviewer:edit", + "selector": ".jp-RenderedMarkdown", + "disabled": true, + }, + { + "command": "toc:run-cells", + "selector": ".jp-TableOfContents-content[data-document-type=\"notebook\"] .jp-tocItem", + "disabled": true, + }, + + { + "command": "application:toggle-mode", + "selector": ".jp-Activity", + "disabled": false, + }, + { + "command": "application:toggle-header", + "selector": ".jp-Activity", + "disabled": false, + }, + { + "command": "application:toggle-side-tabbar", + "args": {"side": "left"}, + "selector": ".jp-Activity", + "disabled": false, + }, + { + "command": "application:toggle-left-area", + "selector": ".jp-Activity", + "disabled": false, + }, + { + "command": "application:toggle-right-area", + "selector": ".jp-Activity", + "disabled": false, + }, + { + "command": "application:toggle-side-tabbar", + "args": {"side": "right"}, + "selector": ".jp-Activity", + "disabled": false, + }, + { + "command": "application:statusbar-toggle", + "selector": ".jp-Activity", + "disabled": false, + } + ] +} + diff --git a/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/notification.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/notification.jupyterlab-settings new file mode 100644 index 0000000..a008574 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/notification.jupyterlab-settings @@ -0,0 +1,18 @@ +{ + // Notifications + // @jupyterlab/apputils-extension:notification + // Notifications settings. + // ******************************************* + + // Check for JupyterLab updates + // Whether to check for newer version of JupyterLab or not. It requires `fetchNews` to be `true` to be active. If `true`, it will make a request to a website. + "checkForUpdates": false, + + // Silence all notifications + // If `true`, no toast notifications will be automatically displayed. + "doNotDisturbMode": true, + + // Fetch official Jupyter news + // Whether to fetch news from Jupyter news feed. If `true`, it will make a request to a website. + "fetchNews": "false" +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/palette.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/palette.jupyterlab-settings new file mode 100644 index 0000000..fc9c0ad --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/palette.jupyterlab-settings @@ -0,0 +1,3 @@ +{ + "modal": true +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/sanitizer.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/sanitizer.jupyterlab-settings new file mode 100644 index 0000000..517ccd6 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/sanitizer.jupyterlab-settings @@ -0,0 +1,5 @@ +{ + // Autolink URL replacement + // Whether to replace URLs with links or not. + "autolink": false +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/sessionDialogs.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/sessionDialogs.jupyterlab-settings new file mode 100644 index 0000000..b4fe627 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/sessionDialogs.jupyterlab-settings @@ -0,0 +1,3 @@ +{ + "skipKernelRestartDialog": true +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.jupyterlab-settings new file mode 100644 index 0000000..e691e0d --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.jupyterlab-settings @@ -0,0 +1,10 @@ +{ + // Theme + // @jupyterlab/apputils-extension:themes + // Theme manager settings. + // ************************************* + + // Selected Theme + // Application-level visual styling theme. Ignored when Adaptive Theme is enabled. + "theme": "Tufte" +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/cell-toolbar-extension/plugin.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/cell-toolbar-extension/plugin.jupyterlab-settings new file mode 100644 index 0000000..03cbe68 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/cell-toolbar-extension/plugin.jupyterlab-settings @@ -0,0 +1,48 @@ +{ + "toolbar": [ + { + "name": "duplicate-cell", + "command": "notebook:duplicate-below", + "args": {}, + "disabled": true, + "rank": 50 + }, + { + "name": "move-cell-up", + "command": "notebook:move-cell-up", + "args": {}, + "disabled": true, + "rank": 50 + }, + { + "name": "move-cell-down", + "command": "notebook:move-cell-down", + "args": {}, + "disabled": true, + "rank": 50 + }, + { + "name": "insert-cell-above", + "command": "notebook:insert-cell-above", + "args": {}, + "disabled": true, + "rank": 50 + }, + { + "name": "insert-cell-below", + "command": "notebook:insert-cell-below", + "args": {}, + "disabled": true, + "rank": 50 + }, + { + "command": "notebook:delete-cell", + "icon": "ui-components:delete", + "name": "delete-cell", + "args": {}, + "disabled": true, + "rank": 50 + } + ], + "showToolbar": false +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/codemirror-extension/plugin.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/codemirror-extension/plugin.jupyterlab-settings new file mode 100644 index 0000000..1b30ce8 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/codemirror-extension/plugin.jupyterlab-settings @@ -0,0 +1,5 @@ +{ + "defaultConfig": { + "codeFolding": false + } +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension/plugin.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension/plugin.jupyterlab-settings new file mode 100644 index 0000000..30e3dea --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension/plugin.jupyterlab-settings @@ -0,0 +1,11 @@ +{ + // Extension Manager + // @jupyterlab/extensionmanager-extension:plugin + // Extension manager settings. + // ********************************************* + + // Enabled Status + // Enables extension manager. + // WARNING: installing untrusted extensions may be unsafe. + "enabled": false +} diff --git a/.jupyter/lab/user-settings/@jupyterlab/filebrowser-extension/browser.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/filebrowser-extension/browser.jupyterlab-settings new file mode 100644 index 0000000..d0f4466 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/filebrowser-extension/browser.jupyterlab-settings @@ -0,0 +1,12 @@ +{ + "sortNotebooksFirst": true, + "showFullPath": true, + "showHiddenFiles": false, + "navigateToCurrentDirectory": false, + "useFuzzyFilter": false, + "filterDirectories": true, + "showLastModifiedColumn": true, + "showFileSizeColumn": false, + "showFileCheckboxes": false, + "singleClickNavigation": false +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/filebrowser-extension/widget.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/filebrowser-extension/widget.jupyterlab-settings new file mode 100644 index 0000000..d4eec84 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/filebrowser-extension/widget.jupyterlab-settings @@ -0,0 +1,36 @@ +{ + "toolbar": [ + { + "name": "new-launcher", + "command": "launcher:create", + "rank": 1 + }, + { + "name": "new-directory", + "command": "filebrowser:create-new-directory", + "rank": 10 + }, + { + "name": "uploader", + "rank": 20 + }, + { + "name": "refresh", + "command": "filebrowser:refresh", + "rank": 30 + }, + { + "name": "gitClone", + "args": {}, + "command": "", + "disabled": true, + "rank": 31 + }, + { + "name": "toggle-file-filter", + "command": "filebrowser:toggle-file-filter", + "rank": 40 + }, + + ] +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/fileeditor-extension/plugin.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/fileeditor-extension/plugin.jupyterlab-settings new file mode 100644 index 0000000..8fdef6a --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/fileeditor-extension/plugin.jupyterlab-settings @@ -0,0 +1,7 @@ +{ + "editorConfig": { + "codeFolding": true + }, + "scrollPastEnd": true, + "toolbar": [] +} diff --git a/.jupyter/lab/user-settings/@jupyterlab/mainmenu-extension/plugin.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/mainmenu-extension/plugin.jupyterlab-settings new file mode 100644 index 0000000..c794258 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/mainmenu-extension/plugin.jupyterlab-settings @@ -0,0 +1,862 @@ +{ + +// "jupyter.lab.menus": { +"menus": [ + +{ "disabled": true, "id": "jp-mainmenu-file"}, + +{ "disabled": true, "id": "jp-mainmenu-run"}, + +{ "disabled": true, "id": "jp-mainmenu-kernel"}, + +{ "disabled": true, "id": "jp-mainmenu-tabs"}, + +{ "disabled": true, "id": "jp-mainmenu-view"}, + +// { "disabled": true, "id": "jp-mainmenu-settings"}, + + + +{ "disabled": false, "id": "jp-mainmenu-file2", + "items": [ + { + "command": "launcher:create", + "rank": 5 + }, + { + "type": "submenu", + "submenu": { + "id": "jp-mainmenu-file-new", + "label": "New", + "items": [ + { + "command": "console:create", + "rank": 20 + }, + { + "command": "notebook:create-new", + "rank": 10 + }, + { + "command": "terminal:create-new", + "rank": 10 + }, + { + "command": "fileeditor:create-new", + "rank": 10 + }, + { + "command": "fileeditor:create-new-markdown-file", + "rank": 10 + } + ] + }, + "rank": 1 + }, + { + "command": "docmanager:save", + "rank": 13 + }, + { + "command": "docmanager:save-as", + "rank": 14 + }, + { + "type": "submenu", + "rank": 20, + "submenu": { + "id": "jp-mainmenu-file-workspaces", + "label": "Workspaces", + "items": [ + { + "command": "workspace-ui:open", + "rank": 0 + }, + { + "command": "workspace-ui:create-new", + "rank": 1 + }, + { + "command": "workspace-ui:clone", + "rank": 2 + }, + { + "command": "workspace-ui:rename", + "rank": 3 + }, + { + "command": "workspace-ui:save", + "rank": 4 + }, + { + "command": "workspace-ui:save-as", + "rank": 5 + }, + { + "command": "workspace-ui:import", + "rank": 6 + }, + { + "command": "workspace-ui:export", + "rank": 7 + }, + { + "type": "separator", + "rank": 8 + }, + { + "command": "workspace-ui:reset", + "rank": 9 + }, + { + "command": "workspace-ui:delete", + "rank": 10 + } + ] + } + }, + { + "command": "filemenu:shutdown", + "rank": 99 + } +], +"label": "File", +"mnemonic": -1, +"rank": 1 +}, + +{ "disabled": false, "id": "jp-mainmenu-edit", + "items": [ + { + "command": "editmenu:undo", + "disabled": true + }, + { + "command": "editmenu:redo", + "disabled": true + }, + { + "command": "editmenu:clear-current", + "disabled": true + }, + { + "command": "editmenu:clear-all", + "disabled": true + }, + { + "command": "editmenu:go-to-line", + "disabled": true + }, + { + "command": "notebook:undo-cell-action", + "disabled": true + }, + { + "command": "notebook:redo-cell-action", + "disabled": true + }, + { + "command": "notebook:cut-cell", + "disabled": true + }, + { + "command": "notebook:copy-cell", + "disabled": true + }, + { + "command": "notebook:paste-cell-below", + "disabled": true + }, + { + "command": "notebook:paste-cell-above", + "disabled": true + }, + { + "command": "notebook:paste-and-replace-cell", + "disabled": true + }, + { + "command": "notebook:delete-cell", + "disabled": true + }, + { + "command": "notebook:select-all", + "disabled": true + }, + { + "command": "notebook:deselect-all", + "disabled": true + }, + { + "command": "notebook:move-cell-up", + "disabled": true + }, + { + "command": "notebook:move-cell-down", + "disabled": true + }, + { + "command": "notebook:split-cell-at-cursor", + "disabled": true + }, + { + "command": "notebook:merge-cells", + "disabled": true + }, + { + "command": "notebook:merge-cell-above", + "disabled": true + }, + { + "command": "notebook:merge-cell-below", + "disabled": true + }, + { + "type": "separator", + "rank": 20 + }, + { + "type": "submenu", + "submenu": { + "id": "jp-mainmenu-text_edit:empty", + "label": "Shortcut Reminders", + "items": [ + { "type": "submenu", + "submenu": { + "id": "jp-mainmenu-text_edit:empty2", + "label": "Use Shortcuts, Not These Menu Items", + "items": [ ]}, + "rank": 0}, + { + "command": "filebrowser:copy", + "rank": 200 + }, + { + "command": "filebrowser:cut", + "rank": 210 + }, + { + "command": "filebrowser:paste", + "rank": 220 + } + ] + } + } + ], + "label": "Edit", + "mnemonic": -1, + "rank": 2 + }, + + +{ "disabled": false, "id": "jp-mainmenu-cell", + "items": [ + { + "command": "notebook:cut-cell", + "rank": 5 + }, + { + "command": "notebook:copy-cell", + "rank": 5 + }, + { + "command": "notebook:paste-cell-below", + "rank": 5 + }, + { + "type": "separator", + "rank": 10 + }, + { + "command": "notebook:undo-cell-action", + "rank": 15 + }, + { + "command": "notebook:redo-cell-action", + "rank": 17 + }, + { + "type": "separator", + "rank": 20 + }, + { + "command": "notebook:insert-cell-above", + "rank": 25 + }, + { + "command": "notebook:insert-cell-below", + "rank": 27 + }, + { + "type": "separator", + "rank": 30 + }, + { + "command": "notebook:merge-cell-below", + "rank": 33 + }, + { + "command": "notebook:split-cell-at-cursor", + "rank": 36 + }, + + { + "type": "separator", + "rank": 40 + }, + { + "command": "notebook:change-cell-to-markdown", + "rank": 43 + }, + { + "command": "notebook:change-cell-to-code", + "rank": 46 + }, + { + "command": "notebook:change-cell-to-raw", + "rank": 48 + } + ], + "label": "Cell", + "mnemonic": -1, + "rank": 3 +}, + +{ "disabled": false, "id": "jp-mainmenu-view2", + "items": [ + { + "command": "filebrowser:toggle-hidden-files", + "rank": 0 + }, + { + "command": "apputils:activate-command-palette", + "rank": 1 + }, + { + "command": "viewmenu:line-numbering", + "rank": 2 + }, + { + "command": "viewmenu:match-brackets", + "rank": 3 + }, + { + "command": "viewmenu:word-wrap", + "rank": 4 + }, + { + "type": "submenu", + "rank": 10, + "submenu": { + "id": "jp-mainmenu-view-appearance", + "label": "Appearance", + "items": [ + { + "command": "application:toggle-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 + }, + { + "command": "statusbar:toggle", + "rank": 15 + } + ] + }, + "disabled": false + } + ], + "label": "View", + "mnemonic": -1, + "rank": 4 +}, + + +{ "disabled": false, "id": "jp-mainmenu-run2", +"items": [ + { + "command": "runmenu:run", + "rank": 10 + }, + { + "command": "notebook:run-cell-and-insert-below", + "rank": 10 + }, + { + "command": "notebook:run-cell", + "rank": 10 + }, + { + "type": "separator", + "rank": 20 + }, + { + "command": "kernelmenu:restart-and-clear", + "rank": 100 + }, + { + "command": "notebook:restart-and-run-to-selected", + "rank": 100 + }, + { + "command": "notebook:restart-run-all", + "rank": 100 + }, + { + "type": "separator", + "rank": 200 + }, + { + "command": "kernelmenu:interrupt", + "rank": 1000 + } + +], +"label": "Run", +"mnemonic": -1, +"rank": 5 +}, + +{ "disabled": false, "id": "jp-mainmenu-help", + "items": [ + { + "command": "helpmenu:open", + "rank": 1000 + }, + { + "type": "separator", + "rank": 0.1 + }, + { + "command": "apputils:display-shortcuts", + "rank": 0.1 + }, + { + "type": "separator", + "rank": 0.1 + }, + { + "command": "help:about", + "rank": 0 + }, + { + "type": "separator", + "rank": 0 + }, + { + "type": "separator", + "rank": 2 + }, + { + "command": "help:jupyter-forum", + "rank": 2 + }, + { + "type": "separator", + "rank": 2 + }, + { + "type": "separator", + "rank": 0.1 + }, + { + "command": "inspector:open", + "rank": 0.1 + }, + { + "type": "separator", + "rank": 0.1 + } + ], + "label": "Help", + "mnemonic": -1, + "rank": 1000 +}, +{ + "disabled": false, + "id": "jp-mainmenu-settings", + "items": [ + { + "command": "settingeditor:open", + "rank": 1000 + }, + { + "type": "submenu", + "submenu": { + "id": "jp-mainmenu-settings-apputilstheme", + "label": "Theme", + "items": [ + // { + // "type": "separator" + // }, + { + "command": "apputils:adaptive-theme" + }, + // { + // "type": "separator" + // }, + { + "disabled": true, + "command": "apputils:theme-scrollbars" + }, + // { + // "type": "separator" + // }, + { + "disabled": true, + "command": "apputils:incr-font-size", + "args": { + "key": "code-font-size" + } + }, + { + "disabled": true, + "command": "apputils:decr-font-size", + "args": { + "key": "code-font-size" + } + }, + // { + // "type": "separator" + // }, + { + "disabled": true, + "command": "apputils:incr-font-size", + "args": { + "key": "content-font-size1" + } + }, + { + "disabled": true, + "command": "apputils:decr-font-size", + "args": { + "key": "content-font-size1" + } + }, + // { + // "type": "separator" + // }, + { + "disabled": true, + "command": "apputils:incr-font-size", + "args": { + "key": "ui-font-size1" + } + }, + { + "disabled": true, + "command": "apputils:decr-font-size", + "args": { + "key": "ui-font-size1" + } + } + ] + }, + "rank": 0 + }, + { + "type": "separator", + "rank": 9 + }, + { + "type": "submenu", + "submenu": { + "id": "jp-mainmenu-settings-consoleexecute", + "label": "Console Run Keystroke", + "items": [ + { + "command": "console:interaction-mode", + "args": { + "interactionMode": "terminal" + } + }, + { + "command": "console:interaction-mode", + "args": { + "interactionMode": "notebook" + } + } + ] + }, + "rank": 9 + }, + // { + // "type": "separator", + // "rank": 9 + // }, + // { + // "type": "separator", + // "rank": 100 + // }, + { + "disabled": true, + "command": "extensionmanager:toggle", + "rank": 100 + }, + // "type": "separator", + // "rank": 100 + // }, + // { + // "type": "separator", + // "rank": 1 + // }, + { + "disabled": true, + "type": "submenu", + "rank": 1, + "submenu": { + "id": "jp-mainmenu-settings-language", + "label": "Language" + } + }, + // { + // "type": "separator", + // "rank": 1 + // } + ], + "label": "Settings", + "mnemonic": -1, + "rank": 999 +}, + + + + +// { "disabled": true, "id": "jp-mainmenu-view", +// "items": [ +// { +// "type": "separator", +// "rank": 10 +// }, +// { +// "command": "viewmenu:line-numbering", +// "disabled": true +// }, +// { +// "command": "viewmenu:match-brackets", +// "disabled": true +// }, +// { +// "command": "viewmenu:word-wrap", +// "disabled": true +// }, +// { +// "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 +// }, +// { +// "command": "statusbar:toggle", +// "rank": 15 +// } +// ] +// }, +// "disabled": true +// }, +// { +// "type": "separator", +// "disabled": true +// }, +// { +// "command": "property-inspector:show-panel", +// "disabled": true +// }, +// { +// "type": "separator", +// "disabled": true +// }, +// { +// "command": "apputils:display-notifications", +// "disabled": true +// }, +// { +// "type": "separator", +// "disabled": true +// }, +// { +// "command": "apputils:activate-command-palette", +// "rank": 0 +// }, +// { +// "type": "separator", +// "disabled": true +// }, +// { +// "command": "extensionmanager:show-panel", +// "disabled": true +// }, +// { +// "command": "filebrowser:toggle-hidden-files", +// "disabled": true +// }, +// { +// "type": "separator", +// "disabled": true +// }, +// { +// "command": "logconsole:open", +// "disabled": true +// }, +// { +// "type": "separator", +// "disabled": true +// }, +// { +// "type": "separator", +// "disabled": true +// }, +// { +// "command": "notebook:hide-cell-code", +// "disabled": true +// }, +// { +// "command": "notebook:hide-cell-outputs", +// "disabled": true +// }, +// { +// "command": "notebook:hide-all-cell-code", +// "disabled": true +// }, +// { +// "command": "notebook:hide-all-cell-outputs", +// "disabled": true +// }, +// { +// "type": "separator", +// "disabled": true +// }, +// { +// "command": "notebook:show-cell-code", +// "disabled": true +// }, +// { +// "command": "notebook:show-cell-outputs", +// "disabled": true +// }, +// { +// "command": "notebook:show-all-cell-code", +// "disabled": true +// }, +// { +// "command": "notebook:show-all-cell-outputs", +// "disabled": true +// }, +// { +// "type": "separator", +// "disabled": true +// }, +// { +// "command": "notebook:toggle-render-side-by-side-current", +// "disabled": true +// }, +// { +// "type": "separator", +// "disabled": true +// }, +// { +// "command": "running:show-panel", +// "disabled": true +// }, +// { +// "command": "toc:show-panel", +// "disabled": true +// } +// ], +// "label": "View", +// "mnemonic": -1, +// "rank": 3 +// }, +] +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/markdownviewer-extension/plugin.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/markdownviewer-extension/plugin.jupyterlab-settings new file mode 100644 index 0000000..864a017 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/markdownviewer-extension/plugin.jupyterlab-settings @@ -0,0 +1,13 @@ +{ + // Markdown Viewer + // @jupyterlab/markdownviewer-extension:plugin + // Markdown viewer settings. + // ******************************************* + + // Hide Front Matter + // Whether to hide YAML front matter. + // The YAML front matter must be placed at the top of the document, + // started by a line of three dashes (---) and ended by a line of + // three dashes (---) or three points (...). + "hideFrontMatter": true +} diff --git a/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/panel.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/panel.jupyterlab-settings new file mode 100644 index 0000000..0ea0d8f --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/panel.jupyterlab-settings @@ -0,0 +1,112 @@ +{ + "toolbar": [ + { + "name": "save", + "args": {}, + "command": "", + "disabled": true, + "rank": 10 + }, + { + "name": "insert", + "args": {}, + "command": "notebook:insert-cell-below", + "disabled": true, + "icon": "ui-components:add", + "rank": 20 + }, + { + "name": "cut", + "args": {}, + "command": "notebook:cut-cell", + "disabled": true, + "rank": 21 + }, + { + "name": "copy", + "args": {}, + "command": "notebook:copy-cell", + "disabled": true, + "rank": 22 + }, + { + "name": "paste", + "args": {}, + "command": "notebook:paste-cell-below", + "disabled": true, + "rank": 23 + }, + { + "name": "run", + "args": {}, + "command": "notebook:run-cell-and-select-next", + "disabled": true, + "rank": 30 + }, + { + "name": "interrupt", + "args": {}, + "command": "notebook:interrupt-kernel", + "disabled": true, + "rank": 31 + }, + { + "name": "restart", + "args": {}, + "command": "notebook:restart-kernel", + "disabled": true, + "rank": 32 + }, + { + "name": "restart-and-run", + "args": {}, + "command": "notebook:restart-run-all", + "disabled": true, + "rank": 33 + }, + { + "name": "cellType", + "args": {}, + "command": "", + "disabled": false, + "rank": 40 + }, + { + "name": "spacer", + "args": {}, + "command": "", + "disabled": false, + "type": "spacer", + "rank": 100 + }, + { + "name": "spacer", + "args": {}, + "command": "", + "disabled": false, + "type": "spacer", + "rank": 100 + }, + { + "name": "kernelName", + "args": {}, + "command": "", + "disabled": true, + "rank": 1000 + }, + { + "name": "executionProgress", + "args": {}, + "command": "", + "disabled": true, + "rank": 1002 + }, + { + "name": "scrollbar", + "args": {}, + "command": "notebook:toggle-virtual-scrollbar", + "disabled": true, + "rank": 1003 + } + ] +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/tracker.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/tracker.jupyterlab-settings new file mode 100644 index 0000000..6a0a382 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/tracker.jupyterlab-settings @@ -0,0 +1,39 @@ +{ + "autoStartDefaultKernel": true, + "kernelShutdown": true, + "scrollHeadingToTop": true, + "windowingMode": "none", + "enableKernelInitNotification": false, + "codeCellConfig": { + "lineNumbers": false, + "lineWrap": false + }, + "defaultCell": "code", + "showInputPlaceholder": true, + "inputHistoryScope": "global", + "markdownCellConfig": { + "lineNumbers": false, + "matchBrackets": false + }, + "autoRenderMarkdownCells": false, + "rawCellConfig": { + "lineNumbers": false, + "matchBrackets": false + }, + "scrollPastEnd": true, + "recordTiming": false, + "overscanCount": 1, + "maxNumberOutputs": 50, + "showEditorForReadOnlyMarkdown": true, + "kernelStatus": { + "showOnStatusBar": false, + "showProgress": true + }, + "documentWideUndoRedo": false, + "showHiddenCellsButton": true, + "renderingLayout": "default", + "sideBySideLeftMarginOverride": "10px", + "sideBySideRightMarginOverride": "10px", + "sideBySideOutputRatio": 1, + "accessKernelHistory": false +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/shortcuts.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/shortcuts.jupyterlab-settings new file mode 100644 index 0000000..46350a0 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/shortcuts.jupyterlab-settings @@ -0,0 +1,24 @@ +{"shortcuts":[ + {"command":"notebook:copy-cell","keys":["C"],"selector":".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus","disabled":true,"args":{}}, + {"command":"notebook:cut-cell","keys":["X"],"selector":".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus","disabled":true,"args":{}}, + {"command":"notebook:paste-cell-below","keys":["V"],"selector":".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus","disabled":true,"args":{}}, + {"command":"notebook:undo-cell-action","keys":["Z"],"selector":".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus","disabled":true,"args":{}}, + {"command":"notebook:change-cell-to-markdown","keys":["M"],"selector":".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus","disabled":true,"args":{}}, + {"command":"notebook:change-cell-to-code","keys":["Y"],"selector":".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus","disabled":true,"args":{}}, + {"command":"notebook:change-cell-to-raw","keys":["R"],"selector":".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus","disabled":true,"args":{}}, + {"command":"notebook:insert-cell-above","keys":["A"],"selector":".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus","disabled":true,"args":{}}, + {"command":"notebook:insert-cell-below","keys":["B"],"selector":".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus","disabled":true,"args":{}}, + {"command":"kernelmenu:restart-and-clear","keys":["Alt ,"],"selector":"body","args":{}}, + {"command":"notebook:restart-and-run-to-selected","keys":["Alt ."],"selector":"body","args":{}}, + {"command":"notebook:restart-run-all","keys":["Alt /"],"selector":"body","args":{}}, + {"command":"notebook:copy-cell","keys":["Alt C"],"selector":"body","args":{}}, + {"command":"notebook:cut-cell","keys":["Alt X"],"selector":"body","args":{}}, + {"command":"notebook:paste-cell-below","keys":["Alt V"],"selector":"body","args":{}}, + {"command":"notebook:undo-cell-action","keys":["Alt Z"],"selector":"body","args":{}}, + {"command":"notebook:change-cell-to-markdown","keys":["Alt M"],"selector":"body","args":{}}, + {"command":"notebook:change-cell-to-code","keys":["Alt P"],"selector":"body","args":{}}, + {"command":"notebook:change-cell-to-raw","keys":["Alt R"],"selector":"body","args":{}}, + {"command":"notebook:insert-cell-above","keys":["Alt A"],"selector":"body","args":{}}, + {"command":"notebook:insert-cell-below","keys":["Alt B"],"selector":"body","args":{}} + ] +} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/statusbar-extension/plugin.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/statusbar-extension/plugin.jupyterlab-settings new file mode 100644 index 0000000..ecef492 --- /dev/null +++ b/.jupyter/lab/user-settings/@jupyterlab/statusbar-extension/plugin.jupyterlab-settings @@ -0,0 +1,10 @@ +{ + // Status Bar + // @jupyterlab/statusbar-extension:plugin + // Status Bar settings. + // ************************************** + + // Status Bar Visibility + // Whether to show status bar or not + "visible": false +} \ No newline at end of file diff --git a/.jupyter/lab/workspaces/auto-0-1753.jupyterlab-workspace b/.jupyter/lab/workspaces/auto-0-1753.jupyterlab-workspace new file mode 100644 index 0000000..b1d5dac --- /dev/null +++ b/.jupyter/lab/workspaces/auto-0-1753.jupyterlab-workspace @@ -0,0 +1 @@ +{"data":{"file-browser-filebrowser:columns":{"sizes":{"name":139.5,"file_size":null,"is_selected":18,"last_modified":86.5}},"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":2,"widgets":["notebook:Files/Using_pylock.ipynb","terminal:1","editor:pylock.toml","editor:Files/requirements.txt","editor:requirements.in","notebook:Files/test_imports.ipynb"]},"current":"terminal:1"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin"],"widgetStates":{"jp-running-sessions":{"sizes":[0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666],"expansionStates":[false,false,false,false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector"],"widgetStates":{}},"relativeSizes":[0.180835734870317,0.819164265129683,0],"top":{"simpleVisibility":true}},"docmanager:recents":{"opened":[{"path":"","contentType":"directory","root":"~/jl_0"},{"path":"requirements.in","contentType":"file","factory":"Editor","root":"~/jl_0"},{"path":"pylock.toml","contentType":"file","factory":"Editor","root":"~/jl_0"},{"path":"requirements.txt","contentType":"file","factory":"Editor","root":"~/jl_0"},{"path":"Files","contentType":"directory","root":"~/jl_0"},{"path":"Files/requirements.txt","contentType":"file","factory":"Editor","root":"~/jl_0"},{"path":"Files/Using_pylock.ipynb","contentType":"notebook","factory":"Notebook","root":"~/jl_0"},{"path":"Files/test_imports.ipynb","contentType":"notebook","factory":"Notebook","root":"~/jl_0"},{"path":"test_2.py","contentType":"file","factory":"Editor","root":"~/jl_0"},{"path":"Files/Untitled.ipynb","contentType":"notebook","factory":"Notebook","root":"~/jl_0"}],"closed":[{"path":"requirements.txt","contentType":"file","factory":"Editor","root":"~/jl_0"},{"path":"Files/Untitled.ipynb","contentType":"notebook","factory":"Notebook","root":"~/jl_0"},{"path":"Using_pylock.ipynb","contentType":"notebook","factory":"Notebook","root":"~/jl_0"}]},"file-browser-filebrowser:cwd":{"path":""},"notebook:Files/Using_pylock.ipynb":{"data":{"path":"Files/Using_pylock.ipynb","factory":"Notebook"}},"notebook:Files/test_imports.ipynb":{"data":{"path":"Files/test_imports.ipynb","factory":"Notebook"}},"terminal:1":{"data":{"name":"1"}},"editor:Files/requirements.txt":{"data":{"path":"Files/requirements.txt","factory":"Editor"}},"editor:requirements.in":{"data":{"path":"requirements.in","factory":"Editor"}},"editor:pylock.toml":{"data":{"path":"pylock.toml","factory":"Editor"}}},"metadata":{"id":"auto-0"}} \ No newline at end of file diff --git a/.jupyter/lab/workspaces/auto-d-ab05.jupyterlab-workspace b/.jupyter/lab/workspaces/auto-d-ab05.jupyterlab-workspace new file mode 100644 index 0000000..3aa6002 --- /dev/null +++ b/.jupyter/lab/workspaces/auto-d-ab05.jupyterlab-workspace @@ -0,0 +1 @@ +{"data":{"file-browser-filebrowser:columns":{"sizes":{"name":139.5,"file_size":null,"is_selected":18,"last_modified":86.5}},"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":1,"widgets":["terminal:1","editor:Files/jl_w_pylock.txt","notebook:Files/test_imports.ipynb","editor:Files/requirements.txt","notebook:Files/Using_pylock.ipynb"]},"current":"editor:Files/jl_w_pylock.txt"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin"],"widgetStates":{"jp-running-sessions":{"sizes":[0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666],"expansionStates":[false,false,false,false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector"],"widgetStates":{}},"relativeSizes":[0.180835734870317,0.819164265129683,0],"top":{"simpleVisibility":true}},"docmanager:recents":{"opened":[{"path":"Files","contentType":"directory","root":"~/jl_1"},{"path":"Files/jl_w_pylock.txt","contentType":"file","factory":"Editor","root":"~/jl_1"},{"path":"Files/setup_jl.txt","contentType":"file","factory":"Editor","root":"~/jl_1"},{"path":"Files/untitled.txt","contentType":"file","factory":"Editor","root":"~/jl_1"},{"path":"Files/test_imports.ipynb","contentType":"notebook","factory":"Notebook","root":"~/jl_1"},{"path":"Files/Using_pylock.ipynb","contentType":"notebook","factory":"Notebook","root":"~/jl_1"},{"path":"Files/requirements.txt","contentType":"file","factory":"Editor","root":"~/jl_1"}],"closed":[{"path":"Files/untitled.txt","contentType":"file","factory":"Editor","root":"~/jl_1"}]},"terminal:1":{"data":{"name":"1"}},"notebook:Files/test_imports.ipynb":{"data":{"path":"Files/test_imports.ipynb","factory":"Notebook"}},"notebook:Files/Using_pylock.ipynb":{"data":{"path":"Files/Using_pylock.ipynb","factory":"Notebook"}},"editor:Files/requirements.txt":{"data":{"path":"Files/requirements.txt","factory":"Editor"}},"editor:Files/jl_w_pylock.txt":{"data":{"path":"Files/jl_w_pylock.txt","factory":"Editor"}}},"metadata":{"id":"auto-D"}} \ No newline at end of file diff --git a/.jupyter/lab/workspaces/auto-e-23e3.jupyterlab-workspace b/.jupyter/lab/workspaces/auto-e-23e3.jupyterlab-workspace new file mode 100644 index 0000000..14978db --- /dev/null +++ b/.jupyter/lab/workspaces/auto-e-23e3.jupyterlab-workspace @@ -0,0 +1 @@ +{"data":{"file-browser-filebrowser:columns":{"sizes":{"name":53.5,"file_size":null,"is_selected":18,"last_modified":40.5}},"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":["terminal:1"]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin"],"widgetStates":{"jp-running-sessions":{"sizes":[0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666],"expansionStates":[false,false,false,false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector"],"widgetStates":{}},"relativeSizes":[0.18092832869257522,0.8190716713074248,0],"top":{"simpleVisibility":true}},"docmanager:recents":{"opened":[],"closed":[]},"terminal:1":{"data":{"name":"1"}}},"metadata":{"id":"auto-e"}} \ No newline at end of file diff --git a/.jupyter/lab/workspaces/auto-f-4f86.jupyterlab-workspace b/.jupyter/lab/workspaces/auto-f-4f86.jupyterlab-workspace new file mode 100644 index 0000000..32086ef --- /dev/null +++ b/.jupyter/lab/workspaces/auto-f-4f86.jupyterlab-workspace @@ -0,0 +1 @@ +{"data":{"file-browser-filebrowser:columns":{"sizes":{"name":53.5,"file_size":null,"is_selected":18,"last_modified":40.5}},"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":1,"widgets":["notebook:Files/test_imports.ipynb","editor:Files/untitled.txt","terminal:1"]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin"],"widgetStates":{"jp-running-sessions":{"sizes":[0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666],"expansionStates":[false,false,false,false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector"],"widgetStates":{}},"relativeSizes":[0.18092832869257522,0.8190716713074248,0],"top":{"simpleVisibility":true}},"docmanager:recents":{"opened":[{"path":"Files","contentType":"directory","root":"~/jl_1"},{"path":"Files/untitled.txt","contentType":"file","factory":"Editor","root":"~/jl_1"},{"path":"Files/test_imports.ipynb","contentType":"notebook","factory":"Notebook","root":"~/jl_1"}],"closed":[]},"notebook:Files/test_imports.ipynb":{"data":{"path":"Files/test_imports.ipynb","factory":"Notebook"}},"editor:Files/untitled.txt":{"data":{"path":"Files/untitled.txt","factory":"Editor"}},"terminal:1":{"data":{"name":"1"}}},"metadata":{"id":"auto-f"}} \ No newline at end of file diff --git a/.jupyter/lab/workspaces/auto-i-81a0.jupyterlab-workspace b/.jupyter/lab/workspaces/auto-i-81a0.jupyterlab-workspace new file mode 100644 index 0000000..21f4344 --- /dev/null +++ b/.jupyter/lab/workspaces/auto-i-81a0.jupyterlab-workspace @@ -0,0 +1 @@ +{"data":{"file-browser-filebrowser:columns":{"sizes":{"name":139.5,"file_size":null,"is_selected":18,"last_modified":86.5}},"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":[]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin"],"widgetStates":{"jp-running-sessions":{"sizes":[0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666],"expansionStates":[false,false,false,false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector"],"widgetStates":{}},"relativeSizes":[0.2040650406504065,0.7959349593495935,0],"top":{"simpleVisibility":true}},"docmanager:recents":{"opened":[],"closed":[]}},"metadata":{"id":"auto-I"}} \ No newline at end of file diff --git a/.jupyter/lab/workspaces/auto-l-8fe7.jupyterlab-workspace b/.jupyter/lab/workspaces/auto-l-8fe7.jupyterlab-workspace new file mode 100644 index 0000000..1bfeec5 --- /dev/null +++ b/.jupyter/lab/workspaces/auto-l-8fe7.jupyterlab-workspace @@ -0,0 +1 @@ +{"data":{"file-browser-filebrowser:columns":{"sizes":{"name":139.5,"file_size":null,"is_selected":18,"last_modified":86.5}},"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":[]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin"],"widgetStates":{"jp-running-sessions":{"sizes":[0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666],"expansionStates":[false,false,false,false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector"],"widgetStates":{}},"relativeSizes":[0.17370242214532872,0.8262975778546713,0],"top":{"simpleVisibility":true}},"docmanager:recents":{"opened":[],"closed":[]},"file-browser-filebrowser:cwd":{"path":""}},"metadata":{"id":"auto-L"}} \ No newline at end of file diff --git a/.jupyter/lab/workspaces/auto-q-549e.jupyterlab-workspace b/.jupyter/lab/workspaces/auto-q-549e.jupyterlab-workspace new file mode 100644 index 0000000..838ac39 --- /dev/null +++ b/.jupyter/lab/workspaces/auto-q-549e.jupyterlab-workspace @@ -0,0 +1 @@ +{"data":{"file-browser-filebrowser:columns":{"sizes":{"name":139.5,"file_size":null,"is_selected":18,"last_modified":86.5}},"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":[]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin"],"widgetStates":{"jp-running-sessions":{"sizes":[0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666],"expansionStates":[false,false,false,false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector"],"widgetStates":{}},"relativeSizes":[0.2040650406504065,0.7959349593495935,0],"top":{"simpleVisibility":true}},"docmanager:recents":{"opened":[],"closed":[]}},"metadata":{"id":"auto-Q"}} \ No newline at end of file diff --git a/.jupyter/lab/workspaces/default-37a8.jupyterlab-workspace b/.jupyter/lab/workspaces/default-37a8.jupyterlab-workspace new file mode 100644 index 0000000..482b9ab --- /dev/null +++ b/.jupyter/lab/workspaces/default-37a8.jupyterlab-workspace @@ -0,0 +1 @@ +{"data":{"file-browser-filebrowser:columns":{"sizes":{"name":155.25,"file_size":null,"is_selected":18,"last_modified":91.75}},"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":[]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin"],"widgetStates":{"jp-running-sessions":{"sizes":[0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666],"expansionStates":[false,false,false,false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector"],"widgetStates":{}},"relativeSizes":[0.22153574580759047,0.7784642541924095,0],"top":{"simpleVisibility":true}},"docmanager:recents":{"opened":[{"path":"Files","contentType":"directory","root":"~/jl_0"},{"path":"","contentType":"directory","root":"~/jl_0"},{"path":"s.sh","contentType":"file","factory":"Editor","root":"~/jl_0"}],"closed":[{"path":"s.sh","contentType":"file","factory":"Editor","root":"~/jl_0"}]},"file-browser-filebrowser:cwd":{"path":"Files"}},"metadata":{"id":"default"}} \ No newline at end of file diff --git a/.jupyter/labconfig/page_config.json b/.jupyter/labconfig/page_config.json new file mode 100644 index 0000000..631f58b --- /dev/null +++ b/.jupyter/labconfig/page_config.json @@ -0,0 +1,5 @@ +{ + "disabledExtensions": { + "@jupyterlab/debugger-extension": true + } +} diff --git a/.jupyter/migrated b/.jupyter/migrated new file mode 100644 index 0000000..65dade8 --- /dev/null +++ b/.jupyter/migrated @@ -0,0 +1 @@ +2025-09-20T00:31:12.276627+00:00 \ No newline at end of file diff --git a/.local-libraries/clear_run_to_selected-0.3.0-py3-none-any.whl b/.local-libraries/clear_run_to_selected-0.3.0-py3-none-any.whl new file mode 100644 index 0000000..bc09f2f Binary files /dev/null and b/.local-libraries/clear_run_to_selected-0.3.0-py3-none-any.whl differ diff --git a/.local-libraries/tufte-0.7.0-py3-none-any.whl b/.local-libraries/tufte-0.7.0-py3-none-any.whl new file mode 100644 index 0000000..d09f00e Binary files /dev/null and b/.local-libraries/tufte-0.7.0-py3-none-any.whl differ diff --git a/Files/Using_pylock.ipynb b/Files/Using_pylock.ipynb new file mode 100644 index 0000000..b69944f --- /dev/null +++ b/Files/Using_pylock.ipynb @@ -0,0 +1,126 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "2d3833aa-a58b-4752-9b8e-060fae34ed83", + "metadata": {}, + "outputs": [], + "source": [ + "import re" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "005fe62c-1bf4-48bc-bc18-5cc46ea2e1ce", + "metadata": {}, + "outputs": [], + "source": [ + "lck = r\"^pylock\\.([^.]+)\\.toml$\"" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "f3768a43-f740-4590-bf20-fba50486f627", + "metadata": {}, + "outputs": [], + "source": [ + "pl = re.compile(lck)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "b5d1fc98-4d71-42b7-a013-bbf18649f6c0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "None\n" + ] + } + ], + "source": [ + "print(pl.match(\"pylock.toml\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "b001ae47-6eac-4a18-9a7e-c379df48577d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(pl.match(\"pylock.name.toml\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "2b86f199-f780-44c1-833e-9e3fc69b9f90", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'v1'" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "filename = \"pylock.v1.toml\"\n", + "if len(filename) > 11 and filename.startswith(\"pylock.\") and filename.endswith(\".toml\"):\n", + " name = filename.removeprefix(\"pylock.\").removesuffix(\".toml\")\n", + "\n", + "name " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8a1d59ef-6c70-4693-a25c-0e58a6e37e21", + "metadata": {}, + "outputs": [], + "source": [ + "uv --version" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.13.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Files/jl_w_pylock.txt b/Files/jl_w_pylock.txt new file mode 100644 index 0000000..dc4adf4 --- /dev/null +++ b/Files/jl_w_pylock.txt @@ -0,0 +1,40 @@ +Using pylock.toml: + +1. Create a requirements.in file that has the full path to the local libraries folder: + + .local-libraries/tufte-0.7.0-py3-none-any.whl + .local-libraries/clear_run_to_selected-0.3.0-py3-none-any.whl + +This is somewhat inconvenient because it means that the requirements.in file has to be updated when the version of one of these libraries changes. + + +2. Use uv to create the pylock.toml file: + + uv pip compile requirements.in -o pylock.toml + + +3. Have uv create the venv: + + uv venv + + uv pip sync pylock.toml + + + +4. Use the t.sh script to run Jupyter lab. The script creates environment variables for the Jupyter paths, adds .venv/bin to the PATH and and starts jupyter with the lab option: + + #!/bin/bash + export JUPYTERLAB_SETTINGS_DIR="${PWD}/.jupyter/lab/user-settings" + export JUPYTER_DATA_DIR="${PWD}/.jupyter/data" + export JUPYTER_CONFIG_DIR="${PWD}/.jupyter" + export VIRTUAL_ENV_PROMPT=.venv + export PATH=".venv/bin:$PATH" + jupyter lab + + +5. Note that this approach pins all of the versions, including all the versions for Jupyter Lab. One can argue that this is good in the sense that users will not run new libraries created after the date when the current lock file was generated. However, if we want to always be just 30 days behind the most recent versions, we have to continually: + +- update the update the requirements.in file and the wheels in the local-libraries folder +- recreate the `pylock.toml` file generated from the requirements.in file +- re-run the command `uv pip sync pylock.toml` + diff --git a/Files/requirements.txt b/Files/requirements.txt new file mode 100644 index 0000000..22a10dc --- /dev/null +++ b/Files/requirements.txt @@ -0,0 +1,11 @@ +jupyterlab +pyjson5 +tomlkit +jupyterlab-lsp +python-lsp-server[all]>=1.13.1 +jupyterlab-spellchecker +jupyterlab-code-formatter +black +isort +ipywidgets +jupyterlab-quickopen diff --git a/Files/test_imports.ipynb b/Files/test_imports.ipynb new file mode 100644 index 0000000..d912e08 --- /dev/null +++ b/Files/test_imports.ipynb @@ -0,0 +1,63 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "44b3c147-264e-444f-9828-1872dbe730b1", + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'watchdog'", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mModuleNotFoundError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 5\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mpyjson5\u001b[39;00m\n\u001b[32m 3\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mtomlkit\u001b[39;00m\n\u001b[32m----> \u001b[39m\u001b[32m5\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mwatchdog\u001b[39;00m\n\u001b[32m 7\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mnbconvert\u001b[39;00m\n\u001b[32m 9\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mnbformat\u001b[39;00m\n", + "\u001b[31mModuleNotFoundError\u001b[39m: No module named 'watchdog'" + ] + } + ], + "source": [ + "import pyjson5\n", + "\n", + "import tomlkit\n", + "\n", + "import watchdog\n", + "\n", + "import nbconvert\n", + "\n", + "import nbformat" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9942d496-edb0-49a4-856a-17930b806376", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.13.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Files/untitled.txt b/Files/untitled.txt new file mode 100644 index 0000000..23b76e8 --- /dev/null +++ b/Files/untitled.txt @@ -0,0 +1,38 @@ +Using pylock.toml: + +1. Create a requirements.in file that has full path to the local libraries: + +.local-libraries/tufte-0.7.0-py3-none-any.whl +.local-libraries/clear_run_to_selected-0.3.0-py3-none-any.whl + +This is somewhat inconvenient because it means that the requirements.in file has to be updated when the version of the library changes. + + +2. Use uv to create the pylock.toml file: + + uv pip compile requirements.in -o pylock.toml + + +3. Have uv create the venv: + + uv pip sync pylock.toml + + + +4. Use the t.sh script to run Jupyter lab. The script creates environment variables for the Jupyter paths, adds .venv/bin to the PATH and and starts jupyter with the lab option: + + #!/bin/bash + export JUPYTERLAB_SETTINGS_DIR="${PWD}/.jupyter/lab/user-settings" + export JUPYTER_DATA_DIR="${PWD}/.jupyter/data" + export JUPYTER_CONFIG_DIR="${PWD}/.jupyter" + export VIRTUAL_ENV_PROMPT=.venv + export PATH=".venv/bin:$PATH" + jupyter lab + + +5. Note that this approach pins all of the versions, including all the versions for Jupyter Lab. One can argue that this is good in the sense that users will not run new libraries created after the date when the current lock file was generated. However, if we want to always be just 30 days behind the most recent versions, we have to continually: + +- update the update the requirements.in file and the wheels in the local-libraries folder +- recreate the `pylock.toml` file generated from the requirements.in file +- re-run the command `uv pip sync pylock.toml` + diff --git a/README.md b/README.md new file mode 100644 index 0000000..cacd416 --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +README.md + +`jl_0` and `jl_` are configured to use default libraries, including tomlkit, and pyjson5. + +Both use pip so they work offline as long as the venv does not have to be rebuilt. + +Use `s.sh` to rebuild the venv. +Use `t.sh` to activate the venv and start jupyterlab + +It uses the paths that Gennaker specifies so the settings are all local to this folder. + +The `jl_1` folder does essentially the same thing. Use `jl_1` for experiments and `jl_0` as the source of truth about the settings in .jupyter. diff --git a/requirements.in b/requirements.in new file mode 100644 index 0000000..72d5333 --- /dev/null +++ b/requirements.in @@ -0,0 +1,13 @@ +jupyterlab +pyjson5 +tomlkit +jupyterlab-lsp +python-lsp-server[all]>=1.13.1 +jupyterlab-spellchecker +jupyterlab-code-formatter +black +isort +ipywidgets +jupyterlab-quickopen +tufte +clear_run_to_selected diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..49ab936 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,13 @@ +jupyterlab +pyjson5 +tomlkit +jupyterlab-lsp +python-lsp-server[all]>=1.13.1 +jupyterlab-spellchecker +jupyterlab-code-formatter +black +isort +ipywidgets +jupyterlab-quickopen +.local-libraries/tufte-0.7.0-py3-none-any.whl +.local-libraries/clear_run_to_selected-0.3.0-py3-none-any.whl diff --git a/s.sh b/s.sh new file mode 100755 index 0000000..b0b63b4 --- /dev/null +++ b/s.sh @@ -0,0 +1,18 @@ +#!/bin/bash +if [ -d .venv ]; then + rm -rf .venv +fi + +python3 -m venv .venv --upgrade-deps + +export JUPYTERLAB_SETTINGS_DIR="${PWD}/.jupyter/lab/user-settings" +export JUPYTER_DATA_DIR="${PWD}/.jupyter/data" +export JUPYTER_CONFIG_DIR="${PWD}/.jupyter" + +. .venv/bin/activate + +pip install -r requirements.txt +# pip install --no-index --find-links ./.local-libraries tufte +# pip install --no-index --find-links ./.local-libraries clear-run-to-selected + +jupyter lab diff --git a/t.sh b/t.sh new file mode 100755 index 0000000..ce89df6 --- /dev/null +++ b/t.sh @@ -0,0 +1,7 @@ +#!/bin/bash +export JUPYTERLAB_SETTINGS_DIR="${PWD}/.jupyter/lab/user-settings" +export JUPYTER_DATA_DIR="${PWD}/.jupyter/data" +export JUPYTER_CONFIG_DIR="${PWD}/.jupyter" +export VIRTUAL_ENV_PROMPT=.venv +export PATH=".venv/bin:$PATH" +jupyter lab