jupyterlab-code-loader 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- jupyterlab_code_loader-0.1.0/.claude/commands/populate-repo.md +36 -0
- jupyterlab_code_loader-0.1.0/.devcontainer/Dockerfile +154 -0
- jupyterlab_code_loader-0.1.0/.devcontainer/README.md +5 -0
- jupyterlab_code_loader-0.1.0/.devcontainer/devcontainer.json +41 -0
- jupyterlab_code_loader-0.1.0/.devcontainer/docker-compose.yaml +12 -0
- jupyterlab_code_loader-0.1.0/.gitignore +230 -0
- jupyterlab_code_loader-0.1.0/.prettierignore +7 -0
- jupyterlab_code_loader-0.1.0/.vscode/debug.env +13 -0
- jupyterlab_code_loader-0.1.0/.vscode/launch.json +55 -0
- jupyterlab_code_loader-0.1.0/.vscode/settings.json +8 -0
- jupyterlab_code_loader-0.1.0/.yarnrc.yml +1 -0
- jupyterlab_code_loader-0.1.0/CHANGELOG.md +30 -0
- jupyterlab_code_loader-0.1.0/LICENSE +674 -0
- jupyterlab_code_loader-0.1.0/PKG-INFO +941 -0
- jupyterlab_code_loader-0.1.0/README.md +228 -0
- jupyterlab_code_loader-0.1.0/RELEASE.md +80 -0
- jupyterlab_code_loader-0.1.0/babel.config.js +1 -0
- jupyterlab_code_loader-0.1.0/cloader.svg +2 -0
- jupyterlab_code_loader-0.1.0/conftest.py +13 -0
- jupyterlab_code_loader-0.1.0/install.json +5 -0
- jupyterlab_code_loader-0.1.0/jest.config.js +49 -0
- jupyterlab_code_loader-0.1.0/jupyter-config/server-config/jupyterlab-code-loader.json +7 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/__init__.py +57 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/_version.py +4 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/config.py +192 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/git_sync.py +91 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/handlers.py +365 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/i18n/en.json +56 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/i18n/fr.json +56 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/labextension/package.json +219 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/labextension/schemas/jupyterlab-code-loader/package.json.orig +214 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/labextension/schemas/jupyterlab-code-loader/plugin.json +8 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/labextension/static/198.2348603b334fa2fadd5b.js +1 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/labextension/static/456.9c6d1a4bb12d6eff5738.js +1 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/labextension/static/remoteEntry.aa24ca4cb5d44e0214ac.js +1 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/labextension/static/style.js +4 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/labextension/static/third-party-licenses.json +16 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/locale_resolver.py +84 -0
- jupyterlab_code_loader-0.1.0/jupyterlab-code-loader/tests/__init__.py +0 -0
- jupyterlab_code_loader-0.1.0/notebooks/.keep +0 -0
- jupyterlab_code_loader-0.1.0/package.json +214 -0
- jupyterlab_code_loader-0.1.0/pyproject.toml +80 -0
- jupyterlab_code_loader-0.1.0/schema/plugin.json +8 -0
- jupyterlab_code_loader-0.1.0/screenshot1.png +0 -0
- jupyterlab_code_loader-0.1.0/screenshot2.png +0 -0
- jupyterlab_code_loader-0.1.0/setup.py +3 -0
- jupyterlab_code_loader-0.1.0/skills/cloader-content/SKILL.md +178 -0
- jupyterlab_code_loader-0.1.0/skills/cloader-content/references/repo-structure.md +322 -0
- jupyterlab_code_loader-0.1.0/skills/cloader-content/scripts/build_registry.py +117 -0
- jupyterlab_code_loader-0.1.0/skills/cloader-content/scripts/validate.py +276 -0
- jupyterlab_code_loader-0.1.0/src/__tests__/jupyterlab_code_loader.spec.ts +8 -0
- jupyterlab_code_loader-0.1.0/src/components/CodeItemRow.ts +119 -0
- jupyterlab_code_loader-0.1.0/src/components/DomainAccordion.ts +74 -0
- jupyterlab_code_loader-0.1.0/src/components/KernelIndicator.ts +58 -0
- jupyterlab_code_loader-0.1.0/src/components/SearchBar.ts +51 -0
- jupyterlab_code_loader-0.1.0/src/components/SetupForm.ts +318 -0
- jupyterlab_code_loader-0.1.0/src/components/SnippetRow.ts +98 -0
- jupyterlab_code_loader-0.1.0/src/components/StatusBar.ts +115 -0
- jupyterlab_code_loader-0.1.0/src/components/TabBar.ts +40 -0
- jupyterlab_code_loader-0.1.0/src/handler.ts +59 -0
- jupyterlab_code_loader-0.1.0/src/icons.ts +13 -0
- jupyterlab_code_loader-0.1.0/src/index.ts +92 -0
- jupyterlab_code_loader-0.1.0/src/kernel_map.ts +92 -0
- jupyterlab_code_loader-0.1.0/src/model.ts +108 -0
- jupyterlab_code_loader-0.1.0/src/search.ts +156 -0
- jupyterlab_code_loader-0.1.0/src/typings.d.ts +4 -0
- jupyterlab_code_loader-0.1.0/src/widget.ts +748 -0
- jupyterlab_code_loader-0.1.0/style/base.css +793 -0
- jupyterlab_code_loader-0.1.0/style/index.css +1 -0
- jupyterlab_code_loader-0.1.0/style/index.js +1 -0
- jupyterlab_code_loader-0.1.0/tsconfig.json +26 -0
- jupyterlab_code_loader-0.1.0/ui-tests/jupyter_server_test_config.py +20 -0
- jupyterlab_code_loader-0.1.0/ui-tests/package.json +14 -0
- jupyterlab_code_loader-0.1.0/ui-tests/playwright.config.js +22 -0
- jupyterlab_code_loader-0.1.0/ui-tests/tests/jupyterlab_code_loader.spec.ts +22 -0
- jupyterlab_code_loader-0.1.0/ui-tests/yarn.lock +572 -0
- jupyterlab_code_loader-0.1.0/webpack.config.js +15 -0
- jupyterlab_code_loader-0.1.0/yarn.lock +11819 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Populate or update a code-loader examples repository with code examples, notebooks, scripts, and snippets. Use this command to scaffold a new repo, add domains, add code items, add snippets, add translations, validate, or rebuild the registry.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Populate Code-Loader Repository
|
|
6
|
+
|
|
7
|
+
You are managing a Git repository that serves the JupyterLab Code Loader extension with code examples and snippets.
|
|
8
|
+
|
|
9
|
+
## Skill reference
|
|
10
|
+
|
|
11
|
+
Read the skill instructions at `skills/cloader-content/SKILL.md` for the full workflow guide. For the complete repository structure specification, read `skills/cloader-content/references/repo-structure.md`.
|
|
12
|
+
|
|
13
|
+
## Available scripts
|
|
14
|
+
|
|
15
|
+
- **Validate**: `python skills/cloader-content/scripts/validate.py <repo_root>`
|
|
16
|
+
- **Build registry**: `python skills/cloader-content/scripts/build_registry.py <repo_root> [--repo-url URL]`
|
|
17
|
+
|
|
18
|
+
## Task
|
|
19
|
+
|
|
20
|
+
$ARGUMENTS
|
|
21
|
+
|
|
22
|
+
If no arguments were provided, ask the user what they would like to do:
|
|
23
|
+
|
|
24
|
+
- Scaffold a new examples repository
|
|
25
|
+
- Add a new domain
|
|
26
|
+
- Add code examples (notebooks, scripts) to a domain
|
|
27
|
+
- Add or update snippets
|
|
28
|
+
- Add translations for existing content
|
|
29
|
+
- Validate the repository structure
|
|
30
|
+
- Rebuild the registry index
|
|
31
|
+
|
|
32
|
+
## After every content change
|
|
33
|
+
|
|
34
|
+
1. Run the validation script to check for errors
|
|
35
|
+
2. Rebuild `registry.json` using the build script
|
|
36
|
+
3. Show a summary of what was created or modified
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
FROM debian:bookworm-slim AS jupyter
|
|
2
|
+
|
|
3
|
+
LABEL author=aristide
|
|
4
|
+
|
|
5
|
+
SHELL [ "/bin/bash", "-c" ]
|
|
6
|
+
ENV SHELL=/bin/bash
|
|
7
|
+
# Replace shell with bash so we can source files
|
|
8
|
+
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
|
|
9
|
+
|
|
10
|
+
# Set debconf to run non-interactively
|
|
11
|
+
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
|
|
12
|
+
|
|
13
|
+
RUN apt-get update \
|
|
14
|
+
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \
|
|
15
|
+
# For frappe framework
|
|
16
|
+
git \
|
|
17
|
+
mariadb-client \
|
|
18
|
+
postgresql-client \
|
|
19
|
+
gettext-base \
|
|
20
|
+
wget \
|
|
21
|
+
# for PDF
|
|
22
|
+
libssl-dev \
|
|
23
|
+
fonts-cantarell \
|
|
24
|
+
xfonts-75dpi \
|
|
25
|
+
xfonts-base \
|
|
26
|
+
# weasyprint dependencies
|
|
27
|
+
libpango-1.0-0 \
|
|
28
|
+
libharfbuzz0b \
|
|
29
|
+
libpangoft2-1.0-0 \
|
|
30
|
+
libpangocairo-1.0-0 \
|
|
31
|
+
# to work inside the container
|
|
32
|
+
locales \
|
|
33
|
+
build-essential \
|
|
34
|
+
cron \
|
|
35
|
+
curl \
|
|
36
|
+
vim \
|
|
37
|
+
sudo \
|
|
38
|
+
iputils-ping \
|
|
39
|
+
watch \
|
|
40
|
+
tree \
|
|
41
|
+
nano \
|
|
42
|
+
less \
|
|
43
|
+
software-properties-common \
|
|
44
|
+
bash-completion \
|
|
45
|
+
# For psycopg2
|
|
46
|
+
libpq-dev \
|
|
47
|
+
# Other
|
|
48
|
+
libffi-dev \
|
|
49
|
+
liblcms2-dev \
|
|
50
|
+
libldap2-dev \
|
|
51
|
+
libmariadb-dev \
|
|
52
|
+
libsasl2-dev \
|
|
53
|
+
libtiff5-dev \
|
|
54
|
+
libwebp-dev \
|
|
55
|
+
redis-tools \
|
|
56
|
+
rlwrap \
|
|
57
|
+
tk8.6-dev \
|
|
58
|
+
ssh-client \
|
|
59
|
+
# VSCode container requirements
|
|
60
|
+
net-tools \
|
|
61
|
+
# For pyenv build dependencies
|
|
62
|
+
# https://github.com/frappe/frappe_docker/issues/840#issuecomment-1185206895
|
|
63
|
+
make \
|
|
64
|
+
# For pandas
|
|
65
|
+
libbz2-dev \
|
|
66
|
+
# For bench execute
|
|
67
|
+
libsqlite3-dev \
|
|
68
|
+
# For other dependencies
|
|
69
|
+
zlib1g-dev \
|
|
70
|
+
libreadline-dev \
|
|
71
|
+
llvm \
|
|
72
|
+
libncurses5-dev \
|
|
73
|
+
libncursesw5-dev \
|
|
74
|
+
xz-utils \
|
|
75
|
+
tk-dev \
|
|
76
|
+
liblzma-dev \
|
|
77
|
+
file \
|
|
78
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
79
|
+
|
|
80
|
+
# Create new user with home directory, improve docker compatibility with UID/GID 1000,
|
|
81
|
+
# add user to sudo group, allow passwordless sudo, switch to that user
|
|
82
|
+
# and change directory to user home directory
|
|
83
|
+
RUN groupadd -g 1000 jupyter \
|
|
84
|
+
&& useradd --no-log-init -r -m -u 1000 -g 1000 -G sudo jupyter \
|
|
85
|
+
&& echo "jupyter ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
|
86
|
+
|
|
87
|
+
USER jupyter
|
|
88
|
+
WORKDIR /home/jupyter
|
|
89
|
+
|
|
90
|
+
# Install Python via pyenv
|
|
91
|
+
ENV PYENV_ROOT=/home/jupyter/.pyenv
|
|
92
|
+
ENV PATH=$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
|
|
93
|
+
ENV PYTHON_VERSION=3.12.7
|
|
94
|
+
|
|
95
|
+
# From https://github.com/pyenv/pyenv#basic-github-checkout
|
|
96
|
+
RUN git clone --depth 1 https://github.com/pyenv/pyenv.git .pyenv \
|
|
97
|
+
&& pyenv install $PYTHON_VERSION \
|
|
98
|
+
&& PYENV_VERSION=$PYTHON_VERSION pip install --no-cache-dir virtualenv \
|
|
99
|
+
&& pyenv global $PYTHON_VERSION \
|
|
100
|
+
&& sed -Ei -e '/^([^#]|$)/ {a export PYENV_ROOT="/home/jupyter/.pyenv" a export PATH="$PYENV_ROOT/bin:$PATH" a ' -e ':a' -e '$!{n;ba};}' ~/.profile \
|
|
101
|
+
&& echo 'eval "$(pyenv init --path)"' >>~/.profile \
|
|
102
|
+
&& echo 'eval "$(pyenv init -)"' >>~/.bashrc
|
|
103
|
+
|
|
104
|
+
# Clone and install bench in the local user home directory
|
|
105
|
+
# For development, bench source is located in ~/.bench
|
|
106
|
+
ENV PATH=/home/jupyter/.local/bin:$PATH
|
|
107
|
+
|
|
108
|
+
# Install Node via nvm
|
|
109
|
+
ENV NODE_VERSION=18.20.4
|
|
110
|
+
ENV NVM_DIR=/home/jupyter/.nvm
|
|
111
|
+
ENV PATH=${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH}
|
|
112
|
+
|
|
113
|
+
RUN wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash \
|
|
114
|
+
&& . ${NVM_DIR}/nvm.sh \
|
|
115
|
+
&& npm install -g yarn \
|
|
116
|
+
&& nvm install ${NODE_VERSION} \
|
|
117
|
+
&& nvm use v${NODE_VERSION} \
|
|
118
|
+
&& npm install -g yarn \
|
|
119
|
+
&& nvm alias default v${NODE_VERSION} \
|
|
120
|
+
&& rm -rf ${NVM_DIR}/.cache \
|
|
121
|
+
&& echo 'export NVM_DIR="/home/jupyter/.nvm"' >>~/.bashrc \
|
|
122
|
+
&& echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
|
123
|
+
&& echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >> ~/.bashrc
|
|
124
|
+
|
|
125
|
+
# Install JupyterLab 4 and hatch build tools
|
|
126
|
+
RUN pip install --no-cache-dir \
|
|
127
|
+
"jupyterlab>=4.5.0,<5" \
|
|
128
|
+
"hatchling>=1.5.0" \
|
|
129
|
+
"hatch-jupyter-builder>=0.5" \
|
|
130
|
+
"hatch-nodejs-version>=0.3.2" \
|
|
131
|
+
"pyyaml>=6.0"
|
|
132
|
+
|
|
133
|
+
# Install Claude Code CLI
|
|
134
|
+
RUN curl -fsSL https://claude.ai/install.sh | bash
|
|
135
|
+
|
|
136
|
+
EXPOSE 8888 9999
|
|
137
|
+
|
|
138
|
+
ENV PATH=/home/jupyter/.pyenv/versions/$PYTHON_VERSION/bin:$PATH
|
|
139
|
+
|
|
140
|
+
FROM jupyter AS jupyter-test
|
|
141
|
+
|
|
142
|
+
# Print version and verify bashrc is properly sourced so that everything works
|
|
143
|
+
# in the interactive shell and Dockerfile
|
|
144
|
+
|
|
145
|
+
RUN node --version \
|
|
146
|
+
&& npm --version \
|
|
147
|
+
&& yarn --version \
|
|
148
|
+
&& python --version \
|
|
149
|
+
&& jupyter lab --version \
|
|
150
|
+
&& claude --version
|
|
151
|
+
|
|
152
|
+
RUN bash -c "node --version" \
|
|
153
|
+
&& bash -c "npm --version" \
|
|
154
|
+
&& bash -c "yarn --version"
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Jupyterlab Extension",
|
|
3
|
+
"remoteUser": "jupyter",
|
|
4
|
+
"forwardPorts": [8888, 9999],
|
|
5
|
+
"portsAttributes": {
|
|
6
|
+
"8888": {
|
|
7
|
+
"label": "Jupyter Lab",
|
|
8
|
+
"onAutoForward": "openBrowser",
|
|
9
|
+
"protocol": "http",
|
|
10
|
+
"url": "http://localhost:8888/lab"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"customizations": {
|
|
14
|
+
"vscode": {
|
|
15
|
+
"openExternal": true,
|
|
16
|
+
"defaultUrl": "/lab",
|
|
17
|
+
"extensions": [
|
|
18
|
+
"ms-python.python",
|
|
19
|
+
"ms-vscode.live-server",
|
|
20
|
+
"esbenp.prettier-vscode"
|
|
21
|
+
],
|
|
22
|
+
"settings": {
|
|
23
|
+
"terminal.integrated.profiles.linux": {
|
|
24
|
+
"jupyter bash": {
|
|
25
|
+
"path": "/bin/bash"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"terminal.integrated.defaultProfile.linux": "jupyter bash",
|
|
29
|
+
"debug.node.autoAttach": "disabled"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"dockerComposeFile": "./docker-compose.yaml",
|
|
34
|
+
"service": "jupyter-code-loader",
|
|
35
|
+
"workspaceFolder": "/workspace",
|
|
36
|
+
"shutdownAction": "stopCompose",
|
|
37
|
+
"mounts": [
|
|
38
|
+
"source=${localEnv:HOME}${localEnv:USERPROFILE}/.ssh,target=/home/jupyter/.ssh,type=bind,consistency=cached"
|
|
39
|
+
],
|
|
40
|
+
"postCreateCommand": "pip install -e '.[dev]' && jupyter labextension develop . --overwrite && jupyter server extension enable jupyterlab-code-loader && jlpm build"
|
|
41
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[codz]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
# Usually these files are written by a python script from a template
|
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
+
*.manifest
|
|
33
|
+
*.spec
|
|
34
|
+
|
|
35
|
+
# Installer logs
|
|
36
|
+
pip-log.txt
|
|
37
|
+
pip-delete-this-directory.txt
|
|
38
|
+
|
|
39
|
+
# Unit test / coverage reports
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
nosetests.xml
|
|
47
|
+
coverage.xml
|
|
48
|
+
*.cover
|
|
49
|
+
*.py.cover
|
|
50
|
+
.hypothesis/
|
|
51
|
+
.pytest_cache/
|
|
52
|
+
cover/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
.pybuilder/
|
|
76
|
+
target/
|
|
77
|
+
|
|
78
|
+
# Jupyter Notebook
|
|
79
|
+
.ipynb_checkpoints
|
|
80
|
+
|
|
81
|
+
# IPython
|
|
82
|
+
profile_default/
|
|
83
|
+
ipython_config.py
|
|
84
|
+
|
|
85
|
+
# pyenv
|
|
86
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
87
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
88
|
+
# .python-version
|
|
89
|
+
|
|
90
|
+
# pipenv
|
|
91
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
92
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
93
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
94
|
+
# install all needed dependencies.
|
|
95
|
+
#Pipfile.lock
|
|
96
|
+
|
|
97
|
+
# UV
|
|
98
|
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
99
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
100
|
+
# commonly ignored for libraries.
|
|
101
|
+
#uv.lock
|
|
102
|
+
|
|
103
|
+
# poetry
|
|
104
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
105
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
106
|
+
# commonly ignored for libraries.
|
|
107
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
108
|
+
#poetry.lock
|
|
109
|
+
#poetry.toml
|
|
110
|
+
|
|
111
|
+
# pdm
|
|
112
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
113
|
+
# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
|
|
114
|
+
# https://pdm-project.org/en/latest/usage/project/#working-with-version-control
|
|
115
|
+
#pdm.lock
|
|
116
|
+
#pdm.toml
|
|
117
|
+
.pdm-python
|
|
118
|
+
.pdm-build/
|
|
119
|
+
|
|
120
|
+
# pixi
|
|
121
|
+
# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
|
|
122
|
+
#pixi.lock
|
|
123
|
+
# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
|
|
124
|
+
# in the .venv directory. It is recommended not to include this directory in version control.
|
|
125
|
+
.pixi
|
|
126
|
+
|
|
127
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
128
|
+
__pypackages__/
|
|
129
|
+
|
|
130
|
+
# Celery stuff
|
|
131
|
+
celerybeat-schedule
|
|
132
|
+
celerybeat.pid
|
|
133
|
+
|
|
134
|
+
# SageMath parsed files
|
|
135
|
+
*.sage.py
|
|
136
|
+
|
|
137
|
+
# Environments
|
|
138
|
+
.env
|
|
139
|
+
.envrc
|
|
140
|
+
.venv
|
|
141
|
+
env/
|
|
142
|
+
venv/
|
|
143
|
+
ENV/
|
|
144
|
+
env.bak/
|
|
145
|
+
venv.bak/
|
|
146
|
+
|
|
147
|
+
# Spyder project settings
|
|
148
|
+
.spyderproject
|
|
149
|
+
.spyproject
|
|
150
|
+
|
|
151
|
+
# Rope project settings
|
|
152
|
+
.ropeproject
|
|
153
|
+
|
|
154
|
+
# mkdocs documentation
|
|
155
|
+
/site
|
|
156
|
+
|
|
157
|
+
# mypy
|
|
158
|
+
.mypy_cache/
|
|
159
|
+
.dmypy.json
|
|
160
|
+
dmypy.json
|
|
161
|
+
|
|
162
|
+
# Pyre type checker
|
|
163
|
+
.pyre/
|
|
164
|
+
|
|
165
|
+
# pytype static type analyzer
|
|
166
|
+
.pytype/
|
|
167
|
+
|
|
168
|
+
# Cython debug symbols
|
|
169
|
+
cython_debug/
|
|
170
|
+
|
|
171
|
+
# PyCharm
|
|
172
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
173
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
174
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
175
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
176
|
+
#.idea/
|
|
177
|
+
|
|
178
|
+
# Abstra
|
|
179
|
+
# Abstra is an AI-powered process automation framework.
|
|
180
|
+
# Ignore directories containing user credentials, local state, and settings.
|
|
181
|
+
# Learn more at https://abstra.io/docs
|
|
182
|
+
.abstra/
|
|
183
|
+
|
|
184
|
+
# Visual Studio Code
|
|
185
|
+
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
|
|
186
|
+
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
|
|
187
|
+
# and can be added to the global gitignore or merged into this file. However, if you prefer,
|
|
188
|
+
# you could uncomment the following to ignore the entire vscode folder
|
|
189
|
+
# .vscode/
|
|
190
|
+
|
|
191
|
+
# Ruff stuff:
|
|
192
|
+
.ruff_cache/
|
|
193
|
+
|
|
194
|
+
# PyPI configuration file
|
|
195
|
+
.pypirc
|
|
196
|
+
|
|
197
|
+
# Cursor
|
|
198
|
+
# Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
|
|
199
|
+
# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
|
|
200
|
+
# refer to https://docs.cursor.com/context/ignore-files
|
|
201
|
+
.cursorignore
|
|
202
|
+
.cursorindexingignore
|
|
203
|
+
|
|
204
|
+
# Marimo
|
|
205
|
+
marimo/_static/
|
|
206
|
+
marimo/_lsp/
|
|
207
|
+
__marimo__/
|
|
208
|
+
|
|
209
|
+
scope/
|
|
210
|
+
|
|
211
|
+
# JupyterLab extension
|
|
212
|
+
node_modules/
|
|
213
|
+
jupyterlab-code-loader/labextension/
|
|
214
|
+
*.tsbuildinfo
|
|
215
|
+
*.bundle.*
|
|
216
|
+
coverage/
|
|
217
|
+
ui-tests/test-results/
|
|
218
|
+
ui-tests/playwright-report/
|
|
219
|
+
.eslintcache
|
|
220
|
+
.stylelintcache
|
|
221
|
+
|
|
222
|
+
.claude/*
|
|
223
|
+
!.claude/commands/
|
|
224
|
+
|
|
225
|
+
.yarn/
|
|
226
|
+
ui-tests/.yarn/
|
|
227
|
+
|
|
228
|
+
notebooks/*
|
|
229
|
+
!notebooks/.keep
|
|
230
|
+
.Trash*
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# set VIRTUAL_ENV to the root of your venv
|
|
2
|
+
VIRTUAL_ENV="/home/jupyter/.pyenv/versions/3.11.9"
|
|
3
|
+
|
|
4
|
+
# jupyter env vars
|
|
5
|
+
JUPYTER_CONFIG_DIR="${VIRTUAL_ENV}/etc/jupyter"
|
|
6
|
+
JUPYTER_DATA_DIR="${VIRTUAL_ENV}/share/jupyter"
|
|
7
|
+
JUPYTER_PATH="${VIRTUAL_ENV}/share/jupyter"
|
|
8
|
+
JUPYTER_RUNTIME_DIR="${JUPYTER_PATH}/runtime"
|
|
9
|
+
|
|
10
|
+
# jupyterlab env vars
|
|
11
|
+
JUPYTERLAB_DIR="${VIRTUAL_ENV}/share/jupyter/lab"
|
|
12
|
+
JUPYTERLAB_SETTINGS_DIR="${JUPYTERLAB_DIR}/settings"
|
|
13
|
+
JUPYTERLAB_WORKSPACES_DIR="${JUPYTERLAB_DIR}/workspaces"
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
// To debug jupyterlab running in a venv or conda env:
|
|
3
|
+
// - set up Python env in your workspace as per https://code.visualstudio.com/docs/python/environments
|
|
4
|
+
// - add an "envFile" prop to each backend config pointing to .vscode/debug.env
|
|
5
|
+
// - configure the .vscode/debug.env file as needed
|
|
6
|
+
"version": "0.2.0",
|
|
7
|
+
"configurations": [
|
|
8
|
+
{
|
|
9
|
+
"name": "jlpm watch",
|
|
10
|
+
"type": "node-terminal",
|
|
11
|
+
"request": "launch",
|
|
12
|
+
"command": "jlpm watch"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "jlab backend",
|
|
16
|
+
"type": "python",
|
|
17
|
+
"request": "launch",
|
|
18
|
+
"args": [
|
|
19
|
+
"--notebook-dir=notebooks",
|
|
20
|
+
"--no-browser",
|
|
21
|
+
"--NotebookApp.token=''",
|
|
22
|
+
"--port=9999",
|
|
23
|
+
"--ip=0.0.0.0",
|
|
24
|
+
"--log-level=ERROR"
|
|
25
|
+
],
|
|
26
|
+
"justMyCode": false,
|
|
27
|
+
"module": "jupyterlab.labapp",
|
|
28
|
+
"presentation": {
|
|
29
|
+
"hidden": true
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "jlab frontend",
|
|
34
|
+
"type": "chrome",
|
|
35
|
+
"request": "launch",
|
|
36
|
+
"timeout": 180000,
|
|
37
|
+
"url": "http://localhost:9999/lab",
|
|
38
|
+
// set webroot to the parent dir of your project's top level package.json
|
|
39
|
+
"webRoot": "${workspaceFolder}",
|
|
40
|
+
"presentation": {
|
|
41
|
+
"hidden": true
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"compounds": [
|
|
46
|
+
{
|
|
47
|
+
"name": "jlab debug",
|
|
48
|
+
"configurations": ["jlab backend", "jlab frontend"]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "jlab debug (watch)",
|
|
52
|
+
"configurations": ["jlpm watch", "jlab backend", "jlab frontend"]
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
nodeLinker: node-modules
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.0
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Full French (fr) internationalization of all UI strings — setup form, tooltips, badges, status bar, error messages.
|
|
8
|
+
- Bundled i18n JSON files (en.json, fr.json) shipped with the extension as fallback when the content repository doesn't provide translations.
|
|
9
|
+
- "Open" button on code example rows to copy the file to the workspace and open it.
|
|
10
|
+
- Smart snippet insertion: inserts into compatible open notebook or creates a new notebook with the correct kernel. Empty active cells are populated in-place.
|
|
11
|
+
- Bash snippets get a "Copy for terminal" button that formats commands as a single pasteable line with `&&` joins.
|
|
12
|
+
- Bash script and snippet support (`bash` code_lang, `.sh` file type, bash/sh kernel mapping).
|
|
13
|
+
- Reset button on the sidebar toolbar to clear local configuration and return to the setup form. Visibility is controlled by the `CLOADER_ALLOW_RESET` environment variable (set to `1`, `true`, or `yes` to enable).
|
|
14
|
+
- `CLOADER_SUPPORTED_LOCALES` environment variable to define supported content languages as a comma-separated list (default: `en,fr`).
|
|
15
|
+
- Automatic content language detection from JupyterLab's active language. Falls back to English if the current JupyterLab language is not in the supported locales list.
|
|
16
|
+
- DELETE endpoint on `/api/examples/config` to reset configuration to env-var defaults.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Sidebar title changed from "Examples & snippets" to "Code & snippets".
|
|
21
|
+
- Reset button is now enabled by default; set `CLOADER_ALLOW_RESET=false` to hide it.
|
|
22
|
+
- Reset now also deletes the local cache directory to free disk space.
|
|
23
|
+
- Removed locale selection from the setup form. Content language is now auto-detected from JupyterLab settings.
|
|
24
|
+
- `supported_locales` and `allow_reset` fields are now included in the config API response.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- Corrected package name references in README and RELEASE docs (was `jupyterlab-disable-download`, now `jupyterlab-code-loader`).
|
|
29
|
+
- Fixed CSS lint issues (prettier formatting, stylelint modern color notation, kebab-case keyframes).
|
|
30
|
+
- Removed unused `updateStatusBar` import in widget.ts.
|