Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
228 commits
Select commit Hold shift + click to select a range
95c22d9
Add IpylabModel and Connections, plugins, pre-commit, ruff and other …
Nov 1, 2024
edcf64f
Drop support for Python 3.10 as recommended in https://scientific-pyt…
Nov 1, 2024
09342af
Improved refresh.
Nov 2, 2024
063910c
Fix restart kernel
Nov 4, 2024
01ab285
Weakref Fixes
Nov 4, 2024
c2e4b24
Remove app as a trait of objects, use ipylab.app instead.
Nov 4, 2024
38eb21b
Drop 'hook' property and async context.
Nov 4, 2024
16844bc
Added Readonly - a lightweight descriptor style class to use instead …
Nov 5, 2024
a45fdf6
Tweak commands
Nov 7, 2024
8c62077
Switch to DocumentWidget
Nov 8, 2024
8fb8a94
Added launch_jupyterlab hookspec
Nov 9, 2024
8e3fccd
Improve logging
Nov 10, 2024
78e85b9
Update pre-commit
Nov 10, 2024
e8a4d53
Improve logging
Nov 10, 2024
7ce9973
tweak css
Nov 10, 2024
f4eee2f
Shuffle code and rework sessions.
Nov 11, 2024
ba2ca58
Fix DocumentWidget title.label
Nov 12, 2024
471739f
Added show_error_panel.
Nov 12, 2024
9739d0f
Redo on_error.
Nov 13, 2024
7658535
Removed plugin hooks: ensure_run, on_error, task_result, to_frontend_…
Nov 13, 2024
d2ee1ce
Added log_object making log associated with an owner and object.
Nov 14, 2024
312b338
Switch back from DocumentWidget to MainAreaWidget. Added AutoScroll, …
Nov 22, 2024
285c49d
Add more features to simple_output.ipynb
Nov 22, 2024
fa249c6
Various tweaks
Nov 22, 2024
fe9cae6
Put alias for JupyterFrontEnd back in.
Nov 23, 2024
92961ac
Add CodeEditor
Nov 24, 2024
98dc76c
Add completion and evaluation for CodeEditor.
Nov 27, 2024
0480752
Added key bindings.
Nov 27, 2024
e6e674c
General bugfixes.
Nov 28, 2024
0b79975
Tweaks to SimpleOutput
Dec 4, 2024
31942b4
Fix LogViewer missing outputs before loading.
Dec 4, 2024
6169213
Add CodeEditorOptions and simplify namespace usage.
Dec 6, 2024
aa5914f
Namespace changes
Dec 6, 2024
ebadb67
Make logging_handler and log_viewer optional and remove hookspec for …
Dec 7, 2024
9060a78
Tweaks to evaluate to ensure strong ref maintained to the payload obj…
Dec 7, 2024
1cdc479
Drop providing current widget, now ref is now app.current_widget.
Dec 7, 2024
d15d94f
Only one open_console function.
Dec 7, 2024
c963cab
shift open_console method to shell.
Dec 7, 2024
d07a2c5
Moved LogViewer to Shell and revise Readonly
Dec 8, 2024
e839969
Move Completer stuff into separate class.
Dec 8, 2024
11d0972
SimpleOutput accept Any.
Dec 9, 2024
056ee33
SimpleOutput methods clear and push now return self permitting onelin…
Dec 10, 2024
07accd2
Revise SimpleOutput.
Dec 10, 2024
87c70ad
Add bracelogger
Dec 11, 2024
50a77f5
make CodeEditor subclass of ValueWidget.
Dec 17, 2024
185f89c
Revise CodeEditor and add inspect tooltip.
Dec 18, 2024
4f655bf
CodeEditor - Add undo, redo and debouncer.
Dec 18, 2024
2b93154
CodeEditorModel - use custom messages to send values.
Dec 20, 2024
7eeecff
Segregate ipylab custom messages - all ipylab specific messages are k…
Dec 20, 2024
55959d8
Code editor tweaks
Dec 20, 2024
5328928
LogViewer tweaks
Jan 17, 2025
95e8f35
Update pre-commit.
Jan 18, 2025
c5fd812
Ruff format.
Jan 18, 2025
eacd5b1
Add CSSStyleSheet.
Jan 26, 2025
d64ef2d
pre-commit autoupdate.
Jan 26, 2025
07c2fff
Add Example: Jupyterlab custom styling.
Jan 26, 2025
0209921
Move LastUpdatedDict to common.py
Jan 28, 2025
3508d35
Add tests for common module with help of co-pilot.
Jan 28, 2025
fb6349a
Rename Readonly to Fixed.
Feb 2, 2025
bdf7e92
Allow sorting import in __init__.
Feb 2, 2025
7337d8b
Revert logging style from "{" to the default "%".
Feb 8, 2025
75d9597
Add per-kernel-widget-manager option with wheels.
Feb 8, 2025
806c76f
Change deprecated ServerApp.token to IdentityProvider.token.
Feb 8, 2025
7320207
Revise docstrings.
fleming79 Feb 9, 2025
2dc41ec
Revise app.evaluate and add tests.
fleming79 Feb 11, 2025
5de832b
Handle missing 'kernel.shell'.
fleming79 Feb 14, 2025
5a96ce0
Revise Iplab.ready and _ready_event.
fleming79 Feb 15, 2025
7df9947
Refactor logging to use callable owner reference and add unit tests f…
Feb 21, 2025
8fc36dd
Merge branch 'main' of https://github.com/fleming79/ipylab
fleming79 Feb 22, 2025
ca93fe3
Use future instead of response.
fleming79 Feb 22, 2025
0f350d4
Remove compatibility module and update Python version requirements to…
fleming79 Feb 22, 2025
a806cd9
Fix for _wrap_awaitable where aw fails.
fleming79 Feb 26, 2025
83358b4
Change selector from a property to a coroutine.
fleming79 Feb 26, 2025
120d004
Refactor vpath handling to use a coroutine and update references to _…
fleming79 Feb 26, 2025
5ae8c94
Refactor _on_ready_callbacks to use a List and update related methods…
fleming79 Feb 26, 2025
69595df
Refactor CSSStyleSheet usage in examples and remove import from __ini…
fleming79 Feb 27, 2025
83093f1
Refactor vpath and selector access to properties in App class and upd…
fleming79 Feb 27, 2025
78c5d91
Fix CSSStyleSheet and on_ready registration.
fleming79 Feb 27, 2025
04b408e
Add tests for on_ready callback registration and removal in Ipylab
fleming79 Feb 27, 2025
bc8a52e
Update test cases for on_ready callback in Ipylab and remove unused n…
fleming79 Feb 27, 2025
c1c7298
Fix JupyteFrontEnd no closing properly.
fleming79 Feb 27, 2025
fdbc1b6
Add ResizeBox widget with resize capabilities and update related files
fleming79 Mar 3, 2025
ca7b133
Add ResizeBox example notebook and update related files
fleming79 Mar 3, 2025
a14d272
Refine ResizeBox documentation and improve resizing behavior in widget
fleming79 Mar 4, 2025
8b6cb36
Fix SimpleOutput not rendering widgets.
fleming79 Mar 4, 2025
5664a64
Tweak show_dialog help info
fleming79 Mar 7, 2025
c32f913
Remove unused variable in _wrap_awaitable method
fleming79 Mar 7, 2025
a889d56
Improve ResizeBox documentation
fleming79 Mar 7, 2025
3eca164
Update pre-commit dependencies to latest versions
fleming79 Mar 7, 2025
bf5ca24
Merge pull request #1 from fleming79/selector-and-vpath-coro
fleming79 Mar 8, 2025
60ceac3
Update Python version to 3.12 in workflows and environment files
fleming79 Mar 8, 2025
8c84dcd
Enhance documentation for IpylabModel methods, clarifying message han…
fleming79 Mar 8, 2025
d843521
Refactor app references to use ipylab.App() instead of ipylab.app acr…
fleming79 Mar 16, 2025
8f703da
Remove TODO comments from log_viewer, menu, and shell modules
fleming79 Mar 16, 2025
af90239
Update ruff pre-commit hook to version 0.11.0
fleming79 Mar 16, 2025
b1f1102
Update ruff_defaults.toml to modify selected rules for improved linting
fleming79 Mar 16, 2025
9a87295
Enhance Ipylab class docstring to provide detailed attribute descript…
fleming79 Mar 16, 2025
72247c3
Refactor imports in __init__.py to include common module and update _…
fleming79 Mar 16, 2025
9c6ef97
Refactor initialization checks in CSSStyleSheet and Menu classes for …
fleming79 Mar 16, 2025
3f8a7f0
Add autostart_once hook for initial app readiness and update autostar…
fleming79 Mar 16, 2025
055227f
Enhance Singular class to allow None as a key for instance creation. …
fleming79 Mar 16, 2025
37478a0
Refactor Fixed usage in menu and widget classes to utilize lambda fun…
fleming79 Mar 17, 2025
c407783
Update VS Code settings and README for Pyright integration; adjust ty…
fleming79 Mar 17, 2025
064f804
Add docstring to Fixed descriptor class for improved clarity and usag…
fleming79 Mar 17, 2025
51b81db
Clarify error message for forbidden attribute setting in Fixed class
fleming79 Mar 17, 2025
8cb9d70
Refactor Fixed for faster loading.
fleming79 Mar 18, 2025
32fd503
Add Fixed to module exports for improved accessibility
fleming79 Mar 18, 2025
15b4255
Remove unused ready hook specification and related callback execution…
fleming79 Mar 20, 2025
8900681
Refactor readiness handling in Ipylab class to use for futures instea…
fleming79 Mar 20, 2025
9fc0051
Remove default_editor_key_bindings hook and clean up related code in …
fleming79 Mar 20, 2025
28b5d4d
Improve logging format in Ipylab class for better clarity during exce…
fleming79 Mar 20, 2025
bc8b1e9
Update Python version in conda environment setup to 3.12
fleming79 Mar 21, 2025
1baaed8
Mark App as final.
fleming79 Mar 27, 2025
c690e10
Fix type hint in Fixed class __get__ method for better clarity
fleming79 Mar 27, 2025
2d6531d
Make threadsafe
fleming79 Apr 2, 2025
a4fd53e
temp
fleming79 Apr 2, 2025
df462c2
Asyncio loop in app
fleming79 Apr 2, 2025
48045a2
Make most functions async instead of tasks. Make anyio compatible and…
fleming79 Apr 6, 2025
94b79cf
Update pre-commit hook versions
fleming79 Apr 6, 2025
09cd99e
Update README and pyproject.toml to simplify installation and remove …
fleming79 Apr 6, 2025
1edc755
Refactor CSSStyleSheet to update css_rules using set_trait and improv…
fleming79 Apr 6, 2025
6cd8fde
Reinstate support for Python 3.11 iaw. https://numpy.org/neps/nep-002…
fleming79 Apr 7, 2025
13dc861
Update example notebooks to for async function calls
fleming79 Apr 7, 2025
75b492d
Make on_ready a historic type callback. Plus a few minor bugfixes.
fleming79 Apr 8, 2025
1c6e205
Enhance method documentation for Ipylab class, adding detailed docstr…
fleming79 Apr 8, 2025
3c47745
Refactor LogViewer and widgets to introduce AddToShellType for improv…
fleming79 Apr 8, 2025
13ebc4d
Improve error reporting when evaluating code in another shell.
fleming79 Apr 9, 2025
c6f720f
Refactor expression evaluation in App class to use compile for better…
fleming79 Apr 9, 2025
a5b7711
Add type annotation for module_version in _frontend.py; remove unused…
fleming79 Apr 9, 2025
aa0292d
Add module_obj_to_import_string function for converting module object…
fleming79 Apr 9, 2025
1039df4
ShellConnection activate will now expand the sidebar if the widget is…
fleming79 Apr 10, 2025
a28da7e
Uses shell connection for activate when adding to the shell instead o…
fleming79 Apr 10, 2025
7b511ec
Add open_somewhere methods to RankedMenu
fleming79 Apr 11, 2025
ac2b872
RankedMenu - add extra close_with_self features for better removal of…
fleming79 Apr 11, 2025
e582200
Split out useful functionality from Ipylab into HasApp.
fleming79 Apr 12, 2025
380a27e
Shell.add will now close a launcher if it is the active widget when a…
fleming79 Apr 12, 2025
ebd7547
Add singular attribute for Singular to enable tracking of the instanc…
fleming79 Apr 17, 2025
1c72061
Enhance pack function to handle class objects and improve error messa…
fleming79 Apr 18, 2025
2ce1182
Rename `_single_instances` to `_singular_instances` in Singular class…
fleming79 Apr 18, 2025
893a986
Merge pull request #2 from fleming79/async-everywhere
fleming79 Apr 19, 2025
507ffe2
Improve Fixed type hint by using Self as value type in __set__.
fleming79 Apr 23, 2025
006494c
Remove unused 'dynamic' parameter from IpylabCompleter instantiation …
fleming79 Apr 30, 2025
666aceb
Update pre-commit hook versions for check-jsonschema and ruff
fleming79 May 7, 2025
1dc05eb
Add display flex to .ipylab-SimpleOutput for consistent layout
fleming79 May 7, 2025
7432dcc
Remove 'bqlot' from examples optional dependency in pyproject.toml
fleming79 May 7, 2025
8539c3b
Improve error viewing experience
fleming79 May 16, 2025
03e2db1
Update ruff pre-commit hook version to v0.11.10
fleming79 May 16, 2025
b208206
Show error put button in output instead of directly in panel.
fleming79 May 18, 2025
1f5eb24
Fix CodeEditor throttling logic
fleming79 May 20, 2025
5cf5e83
Pass namespace to IpylabCompleter
fleming79 May 30, 2025
11729e0
Add concept of sending signals to the backend and use it with CodeEdi…
fleming79 May 30, 2025
8936487
Fix property access from other widgets and improve listing of objects
fleming79 May 31, 2025
954c125
Correct capitalization in debug configuration name and update README …
fleming79 May 31, 2025
69dcf7a
Rename cid to connection_id to avoid clash with Backbone cid property…
fleming79 May 31, 2025
bd49968
Update ruff pre-commit hook version to v0.11.12
fleming79 May 31, 2025
5a04f62
Revise JSON structure in example notebook
fleming79 May 31, 2025
61230b9
Fix listProperties so promises and signals are separated wheras objec…
fleming79 May 31, 2025
122e510
Add signal callbaks for Ipylab base and view. and refactor message ha…
fleming79 Jun 1, 2025
86f8f0f
Enhance SimpleOutput to support stream_text parameter for push and _p…
fleming79 Jun 1, 2025
d0d3b19
Refactor Ipylab class: add override decorator to close method and mov…
fleming79 Jun 1, 2025
9b8a46a
Refactor on_edge method to use SignalCallbackData type and improve pa…
fleming79 Jun 1, 2025
6637be6
Enhance signal listing methods in Ipylab: improve docstrings and ensu…
fleming79 Jun 1, 2025
cc4c673
Refactor SimpleOutput example: replace VBox with SimpleOutput for out…
fleming79 Jun 1, 2025
2833540
Enhance SignalCallbackData to allow None as a valid argument type and…
fleming79 Jun 1, 2025
d00ca25
Update documentation in notebooks: clarify signal methods in generic.…
fleming79 Jun 1, 2025
e3ce5a8
Update terminology from `cid` to `connection_id` in documentation and…
fleming79 Jun 1, 2025
7a64858
Bump webpack to g 5.99.9
fleming79 Jun 1, 2025
df1b716
bump css-loader to 7.1.2
fleming79 Jun 1, 2025
9ca1003
Bump react version to 19.1.0 in package.json and yarn.lock
fleming79 Jun 1, 2025
2b3f41d
Bump typescript version to ^5.8.3 in package.json and yarn.lock
fleming79 Jun 1, 2025
e40c7f6
Bump rimraf to version 6.0.1 in package.json and yarn.lock
fleming79 Jun 1, 2025
4c5c366
Bump @types/react to version ^19.1.6 in package.json and yarn.lock
fleming79 Jun 1, 2025
e94c6fe
Bump @types/node to version ^22.15.29 in package.json and yarn.lock
fleming79 Jun 1, 2025
b1bc7b8
lint fix for package-lock.json
fleming79 Jun 1, 2025
e08da85
Add simple_output and widgets to imports and __all__ list
fleming79 Jun 1, 2025
b4cd855
Update build and packaging workflows to use source distribution only …
fleming79 Jun 2, 2025
ba13150
Revert react version for compatibility with labextension.
fleming79 Jun 2, 2025
4581651
Update installation command to use source distribution for ipylab
fleming79 Jun 2, 2025
7595b32
Use async_kernel
fleming79 Jun 23, 2025
ee80997
Switch from MemoryObjectSendStream to Future for passing operation re…
fleming79 Jun 24, 2025
0b6ddc7
Use PendingResult from async_kernel instead of anyioutis.Future and u…
fleming79 Jul 8, 2025
7a54a3b
Update async_kernel wheel package to version 0.1b0
fleming79 Jul 9, 2025
df5ef26
Change overflow property of .ipylab-ResizeBox from hidden to auto
fleming79 Jul 9, 2025
f1e5ebc
add session_name to app
fleming79 Jul 10, 2025
80bbd37
Bump async_kernel and use anyio.sleep instead of asyncio.
fleming79 Jul 20, 2025
e1ad239
Update Connection.repr_info
fleming79 Jul 21, 2025
5fa012c
Add filename and line info to default log info.
fleming79 Jul 21, 2025
228f43a
Replace asyncio with anyio equivalent.
fleming79 Jul 21, 2025
77c8c0a
async_kernel renamed ThreadSafeCaller to ThreadCaller.
fleming79 Jul 21, 2025
052d6a1
Bump async_kernel
fleming79 Jul 23, 2025
b62ed24
Async kernel renamed ThreadCaller as Caller and bumped version.
fleming79 Aug 7, 2025
557c58a
HasApp.start_coro should catch runtime error instead of KeyError.
fleming79 Aug 7, 2025
218f3a1
Change jupyter lab port.
fleming79 Aug 7, 2025
f6a8f50
Use async_kernel from pypi.
Aug 26, 2025
ad66c4a
Bump version to 2.0.0-rc1
Aug 26, 2025
ec32e68
Drop autorun and start_coro. Using async_kernel.Caller instead.
Aug 28, 2025
4823803
Switch to uv and basedpyright
Aug 29, 2025
3079d1e
Revise build and installation notes by running install on windows.
fleming79 Aug 29, 2025
2ad633b
Update async-kernel
Aug 31, 2025
f3b12d1
Update python lock file packages.
Sep 2, 2025
0f86498
Update lock file.
Sep 3, 2025
fd49c1e
Update pre-commit and many typing updates - basedpyright runs without…
Sep 3, 2025
b8770a1
Update readme
Sep 4, 2025
81ad760
async-kernel update/fix.
Sep 8, 2025
66e89ba
Log exceptions for operation error.
Sep 10, 2025
3dd5326
Compatibility fix for async-kernel. Notably we must pass functions th…
Sep 14, 2025
5375006
Add call_later and on_done_callback to App.
Sep 14, 2025
ad6dac0
Change log viewer layout for width
Sep 14, 2025
7a72789
Replace anyio.Event with async_kernel.AsyncEvent.
Sep 15, 2025
d541b49
Add a lock for CommandConnection methods add_command and add_menu to …
Sep 15, 2025
f260a2c
Use truncated_rep for repr and catch the exception.
Sep 15, 2025
a2d2538
Only reset _ready_event only when _ready is reset
Sep 15, 2025
ccf3fab
autoscroll_widget layout fix
fleming79 Sep 23, 2025
1f02e21
Bump async-kernel version.
fleming79 Sep 23, 2025
55eb3d6
Pre-commit autoupdate.
fleming79 Sep 23, 2025
21914e4
Update lockfile and ruff fixes.
fleming79 Sep 23, 2025
9ebc5ac
Upgrade lock file.
fleming79 Sep 23, 2025
69d71ed
Bump async-kernel version requirement.
fleming79 Sep 24, 2025
f5f1a6e
Move custom version to git release v2.0.1.
Sep 24, 2025
006c1f8
Bump async-kernel>=0.6,<0.7 and upgrade dev dependencies.
Sep 30, 2025
20392a4
Bump version to 2.0.2
Sep 30, 2025
03dd4ad
Ignore messages that have already been processed.
Oct 11, 2025
8e46b8d
Update uv lock file.
Oct 13, 2025
ef9d8bd
HasApp.close - remove even when closed.
Oct 14, 2025
39a4dbc
Bugfix in _tuple_owners recursion error.
Oct 20, 2025
551d9f3
Merge branch 'multi-page' into async-ipylab
Oct 21, 2025
921dd39
Update ipywidget dependencies.
Oct 21, 2025
6d03e4a
Add Ipylab.is_ready method and refactor App.vpath.
Oct 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .copier-answers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,3 @@ project_short_description: Control JupyterLab from Python notebooks
python_name: ipylab
repository: https://github.com/jtpio/ipylab
test: false

35 changes: 17 additions & 18 deletions .github/workflows/binder-on-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,25 @@ on:
types: [opened]

permissions:
pull-requests:
write
pull-requests: write

jobs:
binder:
runs-on: ubuntu-latest
steps:
- name: comment on PR with Binder link
uses: actions/github-script@v1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
var PR_HEAD_USERREPO = process.env.PR_HEAD_USERREPO;
var PR_HEAD_REF = process.env.PR_HEAD_REF;
github.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/${PR_HEAD_USERREPO}/${PR_HEAD_REF}?urlpath=lab) :point_left: Try it on Binder (branch _${PR_HEAD_USERREPO}/${PR_HEAD_REF}_)`
})
env:
PR_HEAD_REF: ${{ github.event.pull_request.head.ref }}
PR_HEAD_USERREPO: ${{ github.event.pull_request.head.repo.full_name }}
- name: comment on PR with Binder link
uses: actions/github-script@v1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
var PR_HEAD_USERREPO = process.env.PR_HEAD_USERREPO;
var PR_HEAD_REF = process.env.PR_HEAD_REF;
github.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/${PR_HEAD_USERREPO}/${PR_HEAD_REF}?urlpath=lab) :point_left: Try it on Binder (branch _${PR_HEAD_USERREPO}/${PR_HEAD_REF}_)`
})
env:
PR_HEAD_REF: ${{ github.event.pull_request.head.ref }}
PR_HEAD_USERREPO: ${{ github.event.pull_request.head.repo.full_name }}
98 changes: 47 additions & 51 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,76 +2,72 @@ name: Build

on:
push:
branches: main
branches: ['main']
pull_request:
branches: '*'
branches:
- '*'

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout
uses: actions/checkout@v4

- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1

- name: Install dependencies
run: python -m pip install -U "jupyterlab>=4.2.0,<5"
- name: Build the extension
run: |
set -eux
pip install -e .[dev,test]

- name: Build the extension
run: |
set -eux
jlpm
python -m pip install .[test]
jupyter labextension list
jupyter labextension list 2>&1 | grep -ie "ipylab.*OK"
python -m jupyterlab.browser_check
pytest -v

jupyter labextension list
jupyter labextension list 2>&1 | grep -ie "ipylab.*OK"
python -m jupyterlab.browser_check
- name: Package the extension
run: |
set -eux

- name: Package the extension
run: |
set -eux
hatch build -t sdist
pip uninstall -y "ipylab" jupyterlab

pip install build
python -m build
pip uninstall -y "ipylab" jupyterlab

- name: Upload extension packages
uses: actions/upload-artifact@v4
with:
name: extension-artifacts
path: dist/ipylab*
if-no-files-found: error
- name: Upload extension packages
uses: actions/upload-artifact@v4
with:
name: extension-artifacts
path: dist/ipylab*
if-no-files-found: error

test_isolated:
needs: build
runs-on: ubuntu-latest

steps:
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: '3.9'
architecture: 'x64'
- uses: actions/download-artifact@v4
with:
name: extension-artifacts
- name: Install and Test
run: |
set -eux
# Remove NodeJS, twice to take care of system and locally installed node versions.
sudo rm -rf $(which node)
sudo rm -rf $(which node)

pip install "jupyterlab>=4.0.0,<5" ipylab*.whl


jupyter labextension list
jupyter labextension list 2>&1 | grep -ie "ipylab.*OK"
python -m jupyterlab.browser_check --no-browser-test

- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
architecture: 'x64'
- uses: actions/download-artifact@v4
with:
name: extension-artifacts
- name: Install and Test
run: |
set -eux
# Remove NodeJS, twice to take care of system and locally installed node versions.
sudo rm -rf $(which node)
sudo rm -rf $(which node)

pip install ipylab*.tar.gz


jupyter labextension list
jupyter labextension list 2>&1 | grep -ie "ipylab.*OK"
python -m jupyterlab.browser_check --no-browser-test

check_links:
name: Check Links
Expand Down
35 changes: 0 additions & 35 deletions .github/workflows/lint.yml

This file was deleted.

21 changes: 10 additions & 11 deletions .github/workflows/packaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ name: Packaging

on:
push:
branches: [ main ]
branches:
- main
pull_request:
branches: '*'
branches:
- '*'

env:
PIP_DISABLE_PIP_VERSION_CHECK: 1
Expand All @@ -23,10 +25,10 @@ jobs:
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
- name: Install dependencies
run: |
python -m pip install "jupyterlab>=4,<5" build
python -m pip install "jupyterlab>=4,<5" hatch
- name: Build pypi distributions
run: |
python -m build
hatch build -t sdist
- name: Build npm distributions
run: |
npm pack
Expand All @@ -48,12 +50,12 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu, macos, windows]
python: ['3.8', '3.12']
python: ['3.11', '3.13']
include:
- python: '3.8'
- python: '3.11'
dist: 'ipylab*.tar.gz'
- python: '3.13'
dist: 'ipylab*.tar.gz'
- python: '3.12'
dist: 'ipylab*.whl'
- os: windows
py_cmd: python
pip_cmd: python -m pip
Expand All @@ -73,9 +75,6 @@ jobs:
with:
name: dist ${{ github.run_number }}
path: ./dist
- name: Install the prerequisites
run: |
${{ matrix.pip_cmd }} install --upgrade pip wheel jupyterlab~=4.0
- name: Install the package
run: |
cd dist
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Pre-Commit Check
on:
push:
branches: ['main']
pull_request:
branches:
- '*'
jobs:
pre_commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
- uses: jupyterlab/maintainer-tools/.github/actions/pre-commit@v1
4 changes: 2 additions & 2 deletions .gitpod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ tasks:
micromamba activate
EOT
source /workspace/bin/activate-env.sh
micromamba install -n base -y python=3.11 nodejs=14 jupyterlab=4 yarn
micromamba install -n base -y python=3.12 nodejs=14 jupyterlab=4 yarn
python -m pip install -e ".[dev,test]" && jlpm && jlpm run build && jupyter labextension develop . --overwrite
gp sync-done setup
command: |
gp sync-done setup
source /workspace/bin/activate-env.sh
jupyter lab --no-browser --ServerApp.allow_remote_access=True --ServerApp.token=''
jupyter lab --no-browser --ServerApp.allow_remote_access=True --IdentityProvider.token=''

- name: watch
command: |
Expand Down
58 changes: 58 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
ci:
autoupdate_schedule: monthly
skip:
- prettier
default_language_version:
node: system
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-case-conflict
- id: check-ast
- id: check-docstring-first
- id: check-executables-have-shebangs
- id: check-added-large-files
- id: check-case-conflict
- id: check-merge-conflict
- id: check-toml
- id: check-yaml
- id: debug-statements
- id: end-of-file-fixer
- id: trailing-whitespace
- id: forbid-new-submodules
- id: end-of-file-fixer
exclude: galata/.*-snapshots
- id: requirements-txt-fixer
- id: check-builtin-literals
- repo: https://gitlab.com/bmares/check-json5
rev: 'v1.0.0'
hooks:
- id: check-json5
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.34.0
hooks:
- id: check-github-workflows
- repo: https://github.com/ComPWA/taplo-pre-commit
rev: v0.9.3
hooks:
- id: taplo-format
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.13.1
hooks:
- id: ruff
types_or: [python, jupyter]
args: ['--fix']
- id: ruff-format
types_or: [python, jupyter]
- repo: https://github.com/codespell-project/codespell
rev: 'v2.4.1'
hooks:
- id: codespell
additional_dependencies:
- tomli

- repo: https://github.com/kynan/nbstripout
rev: '0.8.1'
hooks:
- id: nbstripout
7 changes: 1 addition & 6 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,6 +1 @@
node_modules
**/node_modules
**/lib
**/package.json
!/package.json
ipylab
**/.venv
Loading