From feba965cc535dc661805e641e325ac7473543a4a Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sun, 26 Jul 2026 11:21:55 +0000 Subject: [PATCH 1/2] Move Python package to lib/pdwidgets; depend on graphics-py. Relocate sources under lib/, point CI/PYTHONPATH at sibling lib/ trees, and require graphics with pypi=graphics-py after the graphics repo extraction. --- .github/workflows/docs.yml | 4 ++-- .github/workflows/tests.yml | 18 +++++++++----- AGENTS.md | 10 ++++---- README.md | 4 ++-- assets/icons/README.md | 2 +- ci/github-workflows/docs.yml | 4 ++-- ci/github-workflows/tests.yml | 24 ++++++++++++++----- docs/getting-started.md | 2 +- docs/installation.md | 2 +- {src => lib}/pdwidgets/WIDGET_DEPS.md | 0 {src => lib}/pdwidgets/__init__.py | 0 {src => lib}/pdwidgets/_constants.py | 0 {src => lib}/pdwidgets/_focus.py | 0 {src => lib}/pdwidgets/_icon_load.py | 0 {src => lib}/pdwidgets/_themes.py | 0 {src => lib}/pdwidgets/_util.py | 0 {src => lib}/pdwidgets/_write_font.py | 0 {src => lib}/pdwidgets/console.py | 0 {src => lib}/pdwidgets/display.py | 0 {src => lib}/pdwidgets/icons/LICENSE | 0 {src => lib}/pdwidgets/icons/README.md | 0 {src => lib}/pdwidgets/icons/__init__.py | 0 {src => lib}/pdwidgets/icons/add_18dp.py | 0 {src => lib}/pdwidgets/icons/add_24dp.py | 0 {src => lib}/pdwidgets/icons/add_36dp.py | 0 {src => lib}/pdwidgets/icons/add_48dp.py | 0 .../icons/battery_full_color_24dp.py | 0 .../pdwidgets/icons/bluetooth_color_24dp.py | 0 .../pdwidgets/icons/check_box_18dp.py | 0 .../pdwidgets/icons/check_box_24dp.py | 0 .../pdwidgets/icons/check_box_36dp.py | 0 .../pdwidgets/icons/check_box_48dp.py | 0 .../icons/check_box_outline_blank_18dp.py | 0 .../icons/check_box_outline_blank_24dp.py | 0 .../icons/check_box_outline_blank_36dp.py | 0 .../icons/check_box_outline_blank_48dp.py | 0 {src => lib}/pdwidgets/icons/close_18dp.py | 0 {src => lib}/pdwidgets/icons/close_24dp.py | 0 {src => lib}/pdwidgets/icons/close_36dp.py | 0 {src => lib}/pdwidgets/icons/close_48dp.py | 0 {src => lib}/pdwidgets/icons/error_18dp.py | 0 {src => lib}/pdwidgets/icons/error_24dp.py | 0 {src => lib}/pdwidgets/icons/error_36dp.py | 0 {src => lib}/pdwidgets/icons/error_48dp.py | 0 .../pdwidgets/icons/expand_more_18dp.py | 0 .../pdwidgets/icons/expand_more_24dp.py | 0 .../pdwidgets/icons/expand_more_36dp.py | 0 .../pdwidgets/icons/expand_more_48dp.py | 0 .../pdwidgets/icons/home_filled_18dp.py | 0 .../pdwidgets/icons/home_filled_24dp.py | 0 .../pdwidgets/icons/home_filled_36dp.py | 0 .../pdwidgets/icons/home_filled_48dp.py | 0 {src => lib}/pdwidgets/icons/info_18dp.py | 0 {src => lib}/pdwidgets/icons/info_24dp.py | 0 {src => lib}/pdwidgets/icons/info_36dp.py | 0 {src => lib}/pdwidgets/icons/info_48dp.py | 0 .../icons/keyboard_arrow_down_18dp.py | 0 .../icons/keyboard_arrow_down_24dp.py | 0 .../icons/keyboard_arrow_down_36dp.py | 0 .../icons/keyboard_arrow_down_48dp.py | 0 .../icons/keyboard_arrow_left_18dp.py | 0 .../icons/keyboard_arrow_left_24dp.py | 0 .../icons/keyboard_arrow_left_36dp.py | 0 .../icons/keyboard_arrow_left_48dp.py | 0 .../icons/keyboard_arrow_right_18dp.py | 0 .../icons/keyboard_arrow_right_24dp.py | 0 .../icons/keyboard_arrow_right_36dp.py | 0 .../icons/keyboard_arrow_right_48dp.py | 0 .../pdwidgets/icons/keyboard_arrow_up_18dp.py | 0 .../pdwidgets/icons/keyboard_arrow_up_24dp.py | 0 .../pdwidgets/icons/keyboard_arrow_up_36dp.py | 0 .../pdwidgets/icons/keyboard_arrow_up_48dp.py | 0 {src => lib}/pdwidgets/icons/menu_18dp.py | 0 {src => lib}/pdwidgets/icons/menu_24dp.py | 0 {src => lib}/pdwidgets/icons/menu_36dp.py | 0 {src => lib}/pdwidgets/icons/menu_48dp.py | 0 .../icons/notifications_color_24dp.py | 0 .../icons/radio_button_checked_18dp.py | 0 .../icons/radio_button_checked_24dp.py | 0 .../icons/radio_button_checked_36dp.py | 0 .../icons/radio_button_checked_48dp.py | 0 .../icons/radio_button_unchecked_18dp.py | 0 .../icons/radio_button_unchecked_24dp.py | 0 .../icons/radio_button_unchecked_36dp.py | 0 .../icons/radio_button_unchecked_48dp.py | 0 {src => lib}/pdwidgets/icons/remove_18dp.py | 0 {src => lib}/pdwidgets/icons/remove_24dp.py | 0 {src => lib}/pdwidgets/icons/remove_36dp.py | 0 {src => lib}/pdwidgets/icons/remove_48dp.py | 0 .../pdwidgets/icons/toggle_off_18dp.py | 0 .../pdwidgets/icons/toggle_off_24dp.py | 0 .../pdwidgets/icons/toggle_off_36dp.py | 0 .../pdwidgets/icons/toggle_off_48dp.py | 0 .../pdwidgets/icons/toggle_on_18dp.py | 0 .../pdwidgets/icons/toggle_on_24dp.py | 0 .../pdwidgets/icons/toggle_on_36dp.py | 0 .../pdwidgets/icons/toggle_on_48dp.py | 0 {src => lib}/pdwidgets/icons/warning_18dp.py | 0 {src => lib}/pdwidgets/icons/warning_24dp.py | 0 {src => lib}/pdwidgets/icons/warning_36dp.py | 0 {src => lib}/pdwidgets/icons/warning_48dp.py | 0 {src => lib}/pdwidgets/pct.py | 0 {src => lib}/pdwidgets/screen.py | 0 {src => lib}/pdwidgets/task.py | 0 {src => lib}/pdwidgets/widget.py | 0 {src => lib}/pdwidgets/widgets/__init__.py | 0 {src => lib}/pdwidgets/widgets/_layout.py | 0 {src => lib}/pdwidgets/widgets/_raised.py | 0 {src => lib}/pdwidgets/widgets/accordion.py | 0 {src => lib}/pdwidgets/widgets/app_bar.py | 0 {src => lib}/pdwidgets/widgets/badge.py | 0 .../pdwidgets/widgets/bottom_sheet.py | 0 {src => lib}/pdwidgets/widgets/button.py | 0 {src => lib}/pdwidgets/widgets/card.py | 0 {src => lib}/pdwidgets/widgets/chart.py | 0 {src => lib}/pdwidgets/widgets/check_box.py | 0 {src => lib}/pdwidgets/widgets/chip.py | 0 .../pdwidgets/widgets/color_picker.py | 0 {src => lib}/pdwidgets/widgets/column.py | 0 {src => lib}/pdwidgets/widgets/date_picker.py | 0 {src => lib}/pdwidgets/widgets/dialog.py | 0 .../pdwidgets/widgets/digital_clock.py | 0 {src => lib}/pdwidgets/widgets/divider.py | 0 {src => lib}/pdwidgets/widgets/drawer.py | 0 {src => lib}/pdwidgets/widgets/dropdown.py | 0 {src => lib}/pdwidgets/widgets/form.py | 0 {src => lib}/pdwidgets/widgets/form_row.py | 0 {src => lib}/pdwidgets/widgets/gauge.py | 0 {src => lib}/pdwidgets/widgets/grid.py | 0 {src => lib}/pdwidgets/widgets/icon.py | 0 {src => lib}/pdwidgets/widgets/icon_button.py | 0 {src => lib}/pdwidgets/widgets/image.py | 0 {src => lib}/pdwidgets/widgets/keyboard.py | 0 {src => lib}/pdwidgets/widgets/label.py | 0 {src => lib}/pdwidgets/widgets/list_view.py | 0 {src => lib}/pdwidgets/widgets/menu.py | 0 {src => lib}/pdwidgets/widgets/navigator.py | 0 .../pdwidgets/widgets/number_stepper.py | 0 {src => lib}/pdwidgets/widgets/page.py | 0 .../pdwidgets/widgets/password_field.py | 0 {src => lib}/pdwidgets/widgets/pin_pad.py | 0 .../pdwidgets/widgets/progress_bar.py | 0 .../pdwidgets/widgets/radio_button.py | 0 {src => lib}/pdwidgets/widgets/radio_group.py | 0 {src => lib}/pdwidgets/widgets/row.py | 0 {src => lib}/pdwidgets/widgets/scroll_bar.py | 0 {src => lib}/pdwidgets/widgets/scroll_view.py | 0 .../pdwidgets/widgets/segmented_control.py | 0 {src => lib}/pdwidgets/widgets/slider.py | 0 {src => lib}/pdwidgets/widgets/spinner.py | 0 {src => lib}/pdwidgets/widgets/switch.py | 0 {src => lib}/pdwidgets/widgets/tab_view.py | 0 {src => lib}/pdwidgets/widgets/text_box.py | 0 {src => lib}/pdwidgets/widgets/text_input.py | 0 {src => lib}/pdwidgets/widgets/toast.py | 0 {src => lib}/pdwidgets/widgets/toggle.py | 0 .../pdwidgets/widgets/toggle_button.py | 0 pyproject.toml | 2 +- scripts/assets_convert_md_png_to_pbm.py | 2 +- scripts/assets_generate_pdwidgets_icons.py | 2 +- scripts/assets_icons_to_py.py | 6 ++--- scripts/assets_make_color_icons.py | 2 +- scripts/publish_micropython_lib.sh | 8 +++---- 163 files changed, 55 insertions(+), 37 deletions(-) rename {src => lib}/pdwidgets/WIDGET_DEPS.md (100%) rename {src => lib}/pdwidgets/__init__.py (100%) rename {src => lib}/pdwidgets/_constants.py (100%) rename {src => lib}/pdwidgets/_focus.py (100%) rename {src => lib}/pdwidgets/_icon_load.py (100%) rename {src => lib}/pdwidgets/_themes.py (100%) rename {src => lib}/pdwidgets/_util.py (100%) rename {src => lib}/pdwidgets/_write_font.py (100%) rename {src => lib}/pdwidgets/console.py (100%) rename {src => lib}/pdwidgets/display.py (100%) rename {src => lib}/pdwidgets/icons/LICENSE (100%) rename {src => lib}/pdwidgets/icons/README.md (100%) rename {src => lib}/pdwidgets/icons/__init__.py (100%) rename {src => lib}/pdwidgets/icons/add_18dp.py (100%) rename {src => lib}/pdwidgets/icons/add_24dp.py (100%) rename {src => lib}/pdwidgets/icons/add_36dp.py (100%) rename {src => lib}/pdwidgets/icons/add_48dp.py (100%) rename {src => lib}/pdwidgets/icons/battery_full_color_24dp.py (100%) rename {src => lib}/pdwidgets/icons/bluetooth_color_24dp.py (100%) rename {src => lib}/pdwidgets/icons/check_box_18dp.py (100%) rename {src => lib}/pdwidgets/icons/check_box_24dp.py (100%) rename {src => lib}/pdwidgets/icons/check_box_36dp.py (100%) rename {src => lib}/pdwidgets/icons/check_box_48dp.py (100%) rename {src => lib}/pdwidgets/icons/check_box_outline_blank_18dp.py (100%) rename {src => lib}/pdwidgets/icons/check_box_outline_blank_24dp.py (100%) rename {src => lib}/pdwidgets/icons/check_box_outline_blank_36dp.py (100%) rename {src => lib}/pdwidgets/icons/check_box_outline_blank_48dp.py (100%) rename {src => lib}/pdwidgets/icons/close_18dp.py (100%) rename {src => lib}/pdwidgets/icons/close_24dp.py (100%) rename {src => lib}/pdwidgets/icons/close_36dp.py (100%) rename {src => lib}/pdwidgets/icons/close_48dp.py (100%) rename {src => lib}/pdwidgets/icons/error_18dp.py (100%) rename {src => lib}/pdwidgets/icons/error_24dp.py (100%) rename {src => lib}/pdwidgets/icons/error_36dp.py (100%) rename {src => lib}/pdwidgets/icons/error_48dp.py (100%) rename {src => lib}/pdwidgets/icons/expand_more_18dp.py (100%) rename {src => lib}/pdwidgets/icons/expand_more_24dp.py (100%) rename {src => lib}/pdwidgets/icons/expand_more_36dp.py (100%) rename {src => lib}/pdwidgets/icons/expand_more_48dp.py (100%) rename {src => lib}/pdwidgets/icons/home_filled_18dp.py (100%) rename {src => lib}/pdwidgets/icons/home_filled_24dp.py (100%) rename {src => lib}/pdwidgets/icons/home_filled_36dp.py (100%) rename {src => lib}/pdwidgets/icons/home_filled_48dp.py (100%) rename {src => lib}/pdwidgets/icons/info_18dp.py (100%) rename {src => lib}/pdwidgets/icons/info_24dp.py (100%) rename {src => lib}/pdwidgets/icons/info_36dp.py (100%) rename {src => lib}/pdwidgets/icons/info_48dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_down_18dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_down_24dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_down_36dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_down_48dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_left_18dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_left_24dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_left_36dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_left_48dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_right_18dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_right_24dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_right_36dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_right_48dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_up_18dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_up_24dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_up_36dp.py (100%) rename {src => lib}/pdwidgets/icons/keyboard_arrow_up_48dp.py (100%) rename {src => lib}/pdwidgets/icons/menu_18dp.py (100%) rename {src => lib}/pdwidgets/icons/menu_24dp.py (100%) rename {src => lib}/pdwidgets/icons/menu_36dp.py (100%) rename {src => lib}/pdwidgets/icons/menu_48dp.py (100%) rename {src => lib}/pdwidgets/icons/notifications_color_24dp.py (100%) rename {src => lib}/pdwidgets/icons/radio_button_checked_18dp.py (100%) rename {src => lib}/pdwidgets/icons/radio_button_checked_24dp.py (100%) rename {src => lib}/pdwidgets/icons/radio_button_checked_36dp.py (100%) rename {src => lib}/pdwidgets/icons/radio_button_checked_48dp.py (100%) rename {src => lib}/pdwidgets/icons/radio_button_unchecked_18dp.py (100%) rename {src => lib}/pdwidgets/icons/radio_button_unchecked_24dp.py (100%) rename {src => lib}/pdwidgets/icons/radio_button_unchecked_36dp.py (100%) rename {src => lib}/pdwidgets/icons/radio_button_unchecked_48dp.py (100%) rename {src => lib}/pdwidgets/icons/remove_18dp.py (100%) rename {src => lib}/pdwidgets/icons/remove_24dp.py (100%) rename {src => lib}/pdwidgets/icons/remove_36dp.py (100%) rename {src => lib}/pdwidgets/icons/remove_48dp.py (100%) rename {src => lib}/pdwidgets/icons/toggle_off_18dp.py (100%) rename {src => lib}/pdwidgets/icons/toggle_off_24dp.py (100%) rename {src => lib}/pdwidgets/icons/toggle_off_36dp.py (100%) rename {src => lib}/pdwidgets/icons/toggle_off_48dp.py (100%) rename {src => lib}/pdwidgets/icons/toggle_on_18dp.py (100%) rename {src => lib}/pdwidgets/icons/toggle_on_24dp.py (100%) rename {src => lib}/pdwidgets/icons/toggle_on_36dp.py (100%) rename {src => lib}/pdwidgets/icons/toggle_on_48dp.py (100%) rename {src => lib}/pdwidgets/icons/warning_18dp.py (100%) rename {src => lib}/pdwidgets/icons/warning_24dp.py (100%) rename {src => lib}/pdwidgets/icons/warning_36dp.py (100%) rename {src => lib}/pdwidgets/icons/warning_48dp.py (100%) rename {src => lib}/pdwidgets/pct.py (100%) rename {src => lib}/pdwidgets/screen.py (100%) rename {src => lib}/pdwidgets/task.py (100%) rename {src => lib}/pdwidgets/widget.py (100%) rename {src => lib}/pdwidgets/widgets/__init__.py (100%) rename {src => lib}/pdwidgets/widgets/_layout.py (100%) rename {src => lib}/pdwidgets/widgets/_raised.py (100%) rename {src => lib}/pdwidgets/widgets/accordion.py (100%) rename {src => lib}/pdwidgets/widgets/app_bar.py (100%) rename {src => lib}/pdwidgets/widgets/badge.py (100%) rename {src => lib}/pdwidgets/widgets/bottom_sheet.py (100%) rename {src => lib}/pdwidgets/widgets/button.py (100%) rename {src => lib}/pdwidgets/widgets/card.py (100%) rename {src => lib}/pdwidgets/widgets/chart.py (100%) rename {src => lib}/pdwidgets/widgets/check_box.py (100%) rename {src => lib}/pdwidgets/widgets/chip.py (100%) rename {src => lib}/pdwidgets/widgets/color_picker.py (100%) rename {src => lib}/pdwidgets/widgets/column.py (100%) rename {src => lib}/pdwidgets/widgets/date_picker.py (100%) rename {src => lib}/pdwidgets/widgets/dialog.py (100%) rename {src => lib}/pdwidgets/widgets/digital_clock.py (100%) rename {src => lib}/pdwidgets/widgets/divider.py (100%) rename {src => lib}/pdwidgets/widgets/drawer.py (100%) rename {src => lib}/pdwidgets/widgets/dropdown.py (100%) rename {src => lib}/pdwidgets/widgets/form.py (100%) rename {src => lib}/pdwidgets/widgets/form_row.py (100%) rename {src => lib}/pdwidgets/widgets/gauge.py (100%) rename {src => lib}/pdwidgets/widgets/grid.py (100%) rename {src => lib}/pdwidgets/widgets/icon.py (100%) rename {src => lib}/pdwidgets/widgets/icon_button.py (100%) rename {src => lib}/pdwidgets/widgets/image.py (100%) rename {src => lib}/pdwidgets/widgets/keyboard.py (100%) rename {src => lib}/pdwidgets/widgets/label.py (100%) rename {src => lib}/pdwidgets/widgets/list_view.py (100%) rename {src => lib}/pdwidgets/widgets/menu.py (100%) rename {src => lib}/pdwidgets/widgets/navigator.py (100%) rename {src => lib}/pdwidgets/widgets/number_stepper.py (100%) rename {src => lib}/pdwidgets/widgets/page.py (100%) rename {src => lib}/pdwidgets/widgets/password_field.py (100%) rename {src => lib}/pdwidgets/widgets/pin_pad.py (100%) rename {src => lib}/pdwidgets/widgets/progress_bar.py (100%) rename {src => lib}/pdwidgets/widgets/radio_button.py (100%) rename {src => lib}/pdwidgets/widgets/radio_group.py (100%) rename {src => lib}/pdwidgets/widgets/row.py (100%) rename {src => lib}/pdwidgets/widgets/scroll_bar.py (100%) rename {src => lib}/pdwidgets/widgets/scroll_view.py (100%) rename {src => lib}/pdwidgets/widgets/segmented_control.py (100%) rename {src => lib}/pdwidgets/widgets/slider.py (100%) rename {src => lib}/pdwidgets/widgets/spinner.py (100%) rename {src => lib}/pdwidgets/widgets/switch.py (100%) rename {src => lib}/pdwidgets/widgets/tab_view.py (100%) rename {src => lib}/pdwidgets/widgets/text_box.py (100%) rename {src => lib}/pdwidgets/widgets/text_input.py (100%) rename {src => lib}/pdwidgets/widgets/toast.py (100%) rename {src => lib}/pdwidgets/widgets/toggle.py (100%) rename {src => lib}/pdwidgets/widgets/toggle_button.py (100%) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index b94f11d..9bf316c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -7,13 +7,13 @@ on: - 'docs/**' - 'mkdocs.yml' - 'scripts/mkdocs_gen_ref_pages.py' - - 'src/**' + - 'lib/**' pull_request: paths: - 'docs/**' - 'mkdocs.yml' - 'scripts/mkdocs_gen_ref_pages.py' - - 'src/**' + - 'lib/**' workflow_dispatch: jobs: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4df3e1e..fd6512e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -4,12 +4,12 @@ on: push: branches: [main] paths: - - 'src/**' + - 'lib/**' - 'tests/**' - 'scripts/**' pull_request: paths: - - 'src/**' + - 'lib/**' - 'tests/**' - 'scripts/**' workflow_dispatch: @@ -25,14 +25,20 @@ jobs: path: pydisplay sparse-checkout: | src/lib - /src/add_ons/framebuf.py + sparse-checkout-cone-mode: false + - uses: actions/checkout@v4 + with: + repository: PyDevices/graphics + path: graphics + sparse-checkout: | + lib/graphics sparse-checkout-cone-mode: false - uses: actions/checkout@v4 with: repository: PyDevices/palettes path: palettes sparse-checkout: | - src/palettes + lib/palettes sparse-checkout-cone-mode: false - uses: actions/setup-python@v5 with: @@ -40,8 +46,8 @@ jobs: - name: Install ruff run: pip install ruff - name: Ruff - run: ruff check src tests scripts + run: ruff check lib tests scripts - name: Unit tests env: - PYTHONPATH: src:tests/stubs:pydisplay/src/lib:pydisplay/src/add_ons:palettes/src + PYTHONPATH: lib:tests/stubs:pydisplay/src/lib:graphics/lib:palettes/lib run: python -m unittest discover -s tests diff --git a/AGENTS.md b/AGENTS.md index 1732a81..d1e22b7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,13 +6,13 @@ Cross-platform widget toolkit for pydisplay (`import pdwidgets`). - Python venv at `.venv` — `.venv/bin/python`, `.venv/bin/ruff` - Depends on pydisplay packages: `eventsys`, `graphics`, `multimer`, `palettes` -- Source layout: `src/pdwidgets/` (import name `pdwidgets`) +- Source layout: `lib/pdwidgets/` (import name `pdwidgets`) ## Tests and lint ```bash .venv/bin/python -m unittest discover -s tests -.venv/bin/ruff check src tests scripts +.venv/bin/ruff check lib tests scripts ``` Headless bench (needs pydisplay `board_config` on path): @@ -45,10 +45,10 @@ multi-repo workspace `palettes` comes from the sibling `palettes` repo (not pydisplay's `add_ons`, unlike CI's sparse-checkout): ```bash -PYTHONPATH="src:tests/stubs:/agent/repos/palettes/src:/agent/repos/pydisplay/src/lib:/agent/repos/pydisplay/src/add_ons" \ +PYTHONPATH="lib:tests/stubs:/agent/repos/palettes/lib:/agent/repos/graphics/lib:/agent/repos/pydisplay/src/lib" \ .venv/bin/python -m unittest discover -s tests ``` The pydisplay repo's `.venv` also gets a `pydevices_siblings.pth` (added by the -update script) listing `palettes/src` and `pdwidgets/src`, so pydisplay examples -that import them run in the cross-runtime matrix. +update script) listing `palettes/lib`, `pdwidgets/lib`, and `graphics/lib`, so +pydisplay examples that import them run in the cross-runtime matrix. diff --git a/README.md b/README.md index 4173cd2..30e4de0 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Cross-platform widget toolkit for [pydisplay](https://github.com/PyDevices/pydis pip install \ -i https://test.pypi.org/simple/ \ --extra-index-url https://pypi.org/simple/ \ - pdwidgets displaysys pydisplay-graphics eventsys multimer palettes + pdwidgets displaysys graphics-py eventsys multimer palettes ``` Requires a pydisplay `board_config` and display stack. @@ -62,7 +62,7 @@ MIT — see [LICENSE](LICENSE). ## Icon assets (maintainers) -Runtime icons are **importable Python modules** under [`src/pdwidgets/icons/`](src/pdwidgets/icons/) +Runtime icons are **importable Python modules** under [`lib/pdwidgets/icons/`](lib/pdwidgets/icons/) (no binary mip). Authoring: ```bash diff --git a/assets/icons/README.md b/assets/icons/README.md index 426bae5..ac742f8 100644 --- a/assets/icons/README.md +++ b/assets/icons/README.md @@ -4,7 +4,7 @@ Source PNGs: https://github.com/google/material-design-icons/tree/master/png Regenerate with ``scripts/assets_convert_md_png_to_pbm.py`` (bulk tree) from the pdwidgets repo root. This tree is **not** the runtime widget set — -see [`src/pdwidgets/icons/`](../src/pdwidgets/icons/) for icons shipped with the +see [`lib/pdwidgets/icons/`](../lib/pdwidgets/icons/) for icons shipped with the package (``.py`` modules via ``scripts/assets_icons_to_py.py`` after the Material Design generate / color scripts). diff --git a/ci/github-workflows/docs.yml b/ci/github-workflows/docs.yml index b94f11d..9bf316c 100644 --- a/ci/github-workflows/docs.yml +++ b/ci/github-workflows/docs.yml @@ -7,13 +7,13 @@ on: - 'docs/**' - 'mkdocs.yml' - 'scripts/mkdocs_gen_ref_pages.py' - - 'src/**' + - 'lib/**' pull_request: paths: - 'docs/**' - 'mkdocs.yml' - 'scripts/mkdocs_gen_ref_pages.py' - - 'src/**' + - 'lib/**' workflow_dispatch: jobs: diff --git a/ci/github-workflows/tests.yml b/ci/github-workflows/tests.yml index 71740f9..fd6512e 100644 --- a/ci/github-workflows/tests.yml +++ b/ci/github-workflows/tests.yml @@ -4,12 +4,12 @@ on: push: branches: [main] paths: - - 'src/**' + - 'lib/**' - 'tests/**' - 'scripts/**' pull_request: paths: - - 'src/**' + - 'lib/**' - 'tests/**' - 'scripts/**' workflow_dispatch: @@ -25,8 +25,20 @@ jobs: path: pydisplay sparse-checkout: | src/lib - src/add_ons/palettes - /src/add_ons/framebuf.py + sparse-checkout-cone-mode: false + - uses: actions/checkout@v4 + with: + repository: PyDevices/graphics + path: graphics + sparse-checkout: | + lib/graphics + sparse-checkout-cone-mode: false + - uses: actions/checkout@v4 + with: + repository: PyDevices/palettes + path: palettes + sparse-checkout: | + lib/palettes sparse-checkout-cone-mode: false - uses: actions/setup-python@v5 with: @@ -34,8 +46,8 @@ jobs: - name: Install ruff run: pip install ruff - name: Ruff - run: ruff check src tests scripts + run: ruff check lib tests scripts - name: Unit tests env: - PYTHONPATH: src:tests/stubs:pydisplay/src/lib:pydisplay/src/add_ons + PYTHONPATH: lib:tests/stubs:pydisplay/src/lib:graphics/lib:palettes/lib run: python -m unittest discover -s tests diff --git a/docs/getting-started.md b/docs/getting-started.md index 742108a..572f6d7 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -61,7 +61,7 @@ package): ## Icons -Runtime widget icons live under [`src/pdwidgets/icons/`](https://github.com/PyDevices/pdwidgets/tree/main/src/pdwidgets/icons) +Runtime widget icons live under [`lib/pdwidgets/icons/`](https://github.com/PyDevices/pdwidgets/tree/main/lib/pdwidgets/icons) as importable ``.py`` modules. Regenerate with the Material Design scripts plus `scripts/assets_icons_to_py.py` (see the [repo README](https://github.com/PyDevices/pdwidgets#icon-assets)). diff --git a/docs/installation.md b/docs/installation.md index 40bfe3c..602c880 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -23,7 +23,7 @@ Wheels are published to [TestPyPI](https://test.pypi.org/project/pdwidgets/) for pip install \ -i https://test.pypi.org/simple/ \ --extra-index-url https://pypi.org/simple/ \ - pdwidgets displaysys pydisplay-graphics eventsys multimer palettes + pdwidgets displaysys graphics-py eventsys multimer palettes ``` You also need a pydisplay `board_config` for your display backend. See [pydisplay desktop quick start](https://pydisplay.readthedocs.io/en/latest/guides/desktop-cpython/). diff --git a/src/pdwidgets/WIDGET_DEPS.md b/lib/pdwidgets/WIDGET_DEPS.md similarity index 100% rename from src/pdwidgets/WIDGET_DEPS.md rename to lib/pdwidgets/WIDGET_DEPS.md diff --git a/src/pdwidgets/__init__.py b/lib/pdwidgets/__init__.py similarity index 100% rename from src/pdwidgets/__init__.py rename to lib/pdwidgets/__init__.py diff --git a/src/pdwidgets/_constants.py b/lib/pdwidgets/_constants.py similarity index 100% rename from src/pdwidgets/_constants.py rename to lib/pdwidgets/_constants.py diff --git a/src/pdwidgets/_focus.py b/lib/pdwidgets/_focus.py similarity index 100% rename from src/pdwidgets/_focus.py rename to lib/pdwidgets/_focus.py diff --git a/src/pdwidgets/_icon_load.py b/lib/pdwidgets/_icon_load.py similarity index 100% rename from src/pdwidgets/_icon_load.py rename to lib/pdwidgets/_icon_load.py diff --git a/src/pdwidgets/_themes.py b/lib/pdwidgets/_themes.py similarity index 100% rename from src/pdwidgets/_themes.py rename to lib/pdwidgets/_themes.py diff --git a/src/pdwidgets/_util.py b/lib/pdwidgets/_util.py similarity index 100% rename from src/pdwidgets/_util.py rename to lib/pdwidgets/_util.py diff --git a/src/pdwidgets/_write_font.py b/lib/pdwidgets/_write_font.py similarity index 100% rename from src/pdwidgets/_write_font.py rename to lib/pdwidgets/_write_font.py diff --git a/src/pdwidgets/console.py b/lib/pdwidgets/console.py similarity index 100% rename from src/pdwidgets/console.py rename to lib/pdwidgets/console.py diff --git a/src/pdwidgets/display.py b/lib/pdwidgets/display.py similarity index 100% rename from src/pdwidgets/display.py rename to lib/pdwidgets/display.py diff --git a/src/pdwidgets/icons/LICENSE b/lib/pdwidgets/icons/LICENSE similarity index 100% rename from src/pdwidgets/icons/LICENSE rename to lib/pdwidgets/icons/LICENSE diff --git a/src/pdwidgets/icons/README.md b/lib/pdwidgets/icons/README.md similarity index 100% rename from src/pdwidgets/icons/README.md rename to lib/pdwidgets/icons/README.md diff --git a/src/pdwidgets/icons/__init__.py b/lib/pdwidgets/icons/__init__.py similarity index 100% rename from src/pdwidgets/icons/__init__.py rename to lib/pdwidgets/icons/__init__.py diff --git a/src/pdwidgets/icons/add_18dp.py b/lib/pdwidgets/icons/add_18dp.py similarity index 100% rename from src/pdwidgets/icons/add_18dp.py rename to lib/pdwidgets/icons/add_18dp.py diff --git a/src/pdwidgets/icons/add_24dp.py b/lib/pdwidgets/icons/add_24dp.py similarity index 100% rename from src/pdwidgets/icons/add_24dp.py rename to lib/pdwidgets/icons/add_24dp.py diff --git a/src/pdwidgets/icons/add_36dp.py b/lib/pdwidgets/icons/add_36dp.py similarity index 100% rename from src/pdwidgets/icons/add_36dp.py rename to lib/pdwidgets/icons/add_36dp.py diff --git a/src/pdwidgets/icons/add_48dp.py b/lib/pdwidgets/icons/add_48dp.py similarity index 100% rename from src/pdwidgets/icons/add_48dp.py rename to lib/pdwidgets/icons/add_48dp.py diff --git a/src/pdwidgets/icons/battery_full_color_24dp.py b/lib/pdwidgets/icons/battery_full_color_24dp.py similarity index 100% rename from src/pdwidgets/icons/battery_full_color_24dp.py rename to lib/pdwidgets/icons/battery_full_color_24dp.py diff --git a/src/pdwidgets/icons/bluetooth_color_24dp.py b/lib/pdwidgets/icons/bluetooth_color_24dp.py similarity index 100% rename from src/pdwidgets/icons/bluetooth_color_24dp.py rename to lib/pdwidgets/icons/bluetooth_color_24dp.py diff --git a/src/pdwidgets/icons/check_box_18dp.py b/lib/pdwidgets/icons/check_box_18dp.py similarity index 100% rename from src/pdwidgets/icons/check_box_18dp.py rename to lib/pdwidgets/icons/check_box_18dp.py diff --git a/src/pdwidgets/icons/check_box_24dp.py b/lib/pdwidgets/icons/check_box_24dp.py similarity index 100% rename from src/pdwidgets/icons/check_box_24dp.py rename to lib/pdwidgets/icons/check_box_24dp.py diff --git a/src/pdwidgets/icons/check_box_36dp.py b/lib/pdwidgets/icons/check_box_36dp.py similarity index 100% rename from src/pdwidgets/icons/check_box_36dp.py rename to lib/pdwidgets/icons/check_box_36dp.py diff --git a/src/pdwidgets/icons/check_box_48dp.py b/lib/pdwidgets/icons/check_box_48dp.py similarity index 100% rename from src/pdwidgets/icons/check_box_48dp.py rename to lib/pdwidgets/icons/check_box_48dp.py diff --git a/src/pdwidgets/icons/check_box_outline_blank_18dp.py b/lib/pdwidgets/icons/check_box_outline_blank_18dp.py similarity index 100% rename from src/pdwidgets/icons/check_box_outline_blank_18dp.py rename to lib/pdwidgets/icons/check_box_outline_blank_18dp.py diff --git a/src/pdwidgets/icons/check_box_outline_blank_24dp.py b/lib/pdwidgets/icons/check_box_outline_blank_24dp.py similarity index 100% rename from src/pdwidgets/icons/check_box_outline_blank_24dp.py rename to lib/pdwidgets/icons/check_box_outline_blank_24dp.py diff --git a/src/pdwidgets/icons/check_box_outline_blank_36dp.py b/lib/pdwidgets/icons/check_box_outline_blank_36dp.py similarity index 100% rename from src/pdwidgets/icons/check_box_outline_blank_36dp.py rename to lib/pdwidgets/icons/check_box_outline_blank_36dp.py diff --git a/src/pdwidgets/icons/check_box_outline_blank_48dp.py b/lib/pdwidgets/icons/check_box_outline_blank_48dp.py similarity index 100% rename from src/pdwidgets/icons/check_box_outline_blank_48dp.py rename to lib/pdwidgets/icons/check_box_outline_blank_48dp.py diff --git a/src/pdwidgets/icons/close_18dp.py b/lib/pdwidgets/icons/close_18dp.py similarity index 100% rename from src/pdwidgets/icons/close_18dp.py rename to lib/pdwidgets/icons/close_18dp.py diff --git a/src/pdwidgets/icons/close_24dp.py b/lib/pdwidgets/icons/close_24dp.py similarity index 100% rename from src/pdwidgets/icons/close_24dp.py rename to lib/pdwidgets/icons/close_24dp.py diff --git a/src/pdwidgets/icons/close_36dp.py b/lib/pdwidgets/icons/close_36dp.py similarity index 100% rename from src/pdwidgets/icons/close_36dp.py rename to lib/pdwidgets/icons/close_36dp.py diff --git a/src/pdwidgets/icons/close_48dp.py b/lib/pdwidgets/icons/close_48dp.py similarity index 100% rename from src/pdwidgets/icons/close_48dp.py rename to lib/pdwidgets/icons/close_48dp.py diff --git a/src/pdwidgets/icons/error_18dp.py b/lib/pdwidgets/icons/error_18dp.py similarity index 100% rename from src/pdwidgets/icons/error_18dp.py rename to lib/pdwidgets/icons/error_18dp.py diff --git a/src/pdwidgets/icons/error_24dp.py b/lib/pdwidgets/icons/error_24dp.py similarity index 100% rename from src/pdwidgets/icons/error_24dp.py rename to lib/pdwidgets/icons/error_24dp.py diff --git a/src/pdwidgets/icons/error_36dp.py b/lib/pdwidgets/icons/error_36dp.py similarity index 100% rename from src/pdwidgets/icons/error_36dp.py rename to lib/pdwidgets/icons/error_36dp.py diff --git a/src/pdwidgets/icons/error_48dp.py b/lib/pdwidgets/icons/error_48dp.py similarity index 100% rename from src/pdwidgets/icons/error_48dp.py rename to lib/pdwidgets/icons/error_48dp.py diff --git a/src/pdwidgets/icons/expand_more_18dp.py b/lib/pdwidgets/icons/expand_more_18dp.py similarity index 100% rename from src/pdwidgets/icons/expand_more_18dp.py rename to lib/pdwidgets/icons/expand_more_18dp.py diff --git a/src/pdwidgets/icons/expand_more_24dp.py b/lib/pdwidgets/icons/expand_more_24dp.py similarity index 100% rename from src/pdwidgets/icons/expand_more_24dp.py rename to lib/pdwidgets/icons/expand_more_24dp.py diff --git a/src/pdwidgets/icons/expand_more_36dp.py b/lib/pdwidgets/icons/expand_more_36dp.py similarity index 100% rename from src/pdwidgets/icons/expand_more_36dp.py rename to lib/pdwidgets/icons/expand_more_36dp.py diff --git a/src/pdwidgets/icons/expand_more_48dp.py b/lib/pdwidgets/icons/expand_more_48dp.py similarity index 100% rename from src/pdwidgets/icons/expand_more_48dp.py rename to lib/pdwidgets/icons/expand_more_48dp.py diff --git a/src/pdwidgets/icons/home_filled_18dp.py b/lib/pdwidgets/icons/home_filled_18dp.py similarity index 100% rename from src/pdwidgets/icons/home_filled_18dp.py rename to lib/pdwidgets/icons/home_filled_18dp.py diff --git a/src/pdwidgets/icons/home_filled_24dp.py b/lib/pdwidgets/icons/home_filled_24dp.py similarity index 100% rename from src/pdwidgets/icons/home_filled_24dp.py rename to lib/pdwidgets/icons/home_filled_24dp.py diff --git a/src/pdwidgets/icons/home_filled_36dp.py b/lib/pdwidgets/icons/home_filled_36dp.py similarity index 100% rename from src/pdwidgets/icons/home_filled_36dp.py rename to lib/pdwidgets/icons/home_filled_36dp.py diff --git a/src/pdwidgets/icons/home_filled_48dp.py b/lib/pdwidgets/icons/home_filled_48dp.py similarity index 100% rename from src/pdwidgets/icons/home_filled_48dp.py rename to lib/pdwidgets/icons/home_filled_48dp.py diff --git a/src/pdwidgets/icons/info_18dp.py b/lib/pdwidgets/icons/info_18dp.py similarity index 100% rename from src/pdwidgets/icons/info_18dp.py rename to lib/pdwidgets/icons/info_18dp.py diff --git a/src/pdwidgets/icons/info_24dp.py b/lib/pdwidgets/icons/info_24dp.py similarity index 100% rename from src/pdwidgets/icons/info_24dp.py rename to lib/pdwidgets/icons/info_24dp.py diff --git a/src/pdwidgets/icons/info_36dp.py b/lib/pdwidgets/icons/info_36dp.py similarity index 100% rename from src/pdwidgets/icons/info_36dp.py rename to lib/pdwidgets/icons/info_36dp.py diff --git a/src/pdwidgets/icons/info_48dp.py b/lib/pdwidgets/icons/info_48dp.py similarity index 100% rename from src/pdwidgets/icons/info_48dp.py rename to lib/pdwidgets/icons/info_48dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_down_18dp.py b/lib/pdwidgets/icons/keyboard_arrow_down_18dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_down_18dp.py rename to lib/pdwidgets/icons/keyboard_arrow_down_18dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_down_24dp.py b/lib/pdwidgets/icons/keyboard_arrow_down_24dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_down_24dp.py rename to lib/pdwidgets/icons/keyboard_arrow_down_24dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_down_36dp.py b/lib/pdwidgets/icons/keyboard_arrow_down_36dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_down_36dp.py rename to lib/pdwidgets/icons/keyboard_arrow_down_36dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_down_48dp.py b/lib/pdwidgets/icons/keyboard_arrow_down_48dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_down_48dp.py rename to lib/pdwidgets/icons/keyboard_arrow_down_48dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_left_18dp.py b/lib/pdwidgets/icons/keyboard_arrow_left_18dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_left_18dp.py rename to lib/pdwidgets/icons/keyboard_arrow_left_18dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_left_24dp.py b/lib/pdwidgets/icons/keyboard_arrow_left_24dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_left_24dp.py rename to lib/pdwidgets/icons/keyboard_arrow_left_24dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_left_36dp.py b/lib/pdwidgets/icons/keyboard_arrow_left_36dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_left_36dp.py rename to lib/pdwidgets/icons/keyboard_arrow_left_36dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_left_48dp.py b/lib/pdwidgets/icons/keyboard_arrow_left_48dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_left_48dp.py rename to lib/pdwidgets/icons/keyboard_arrow_left_48dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_right_18dp.py b/lib/pdwidgets/icons/keyboard_arrow_right_18dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_right_18dp.py rename to lib/pdwidgets/icons/keyboard_arrow_right_18dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_right_24dp.py b/lib/pdwidgets/icons/keyboard_arrow_right_24dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_right_24dp.py rename to lib/pdwidgets/icons/keyboard_arrow_right_24dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_right_36dp.py b/lib/pdwidgets/icons/keyboard_arrow_right_36dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_right_36dp.py rename to lib/pdwidgets/icons/keyboard_arrow_right_36dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_right_48dp.py b/lib/pdwidgets/icons/keyboard_arrow_right_48dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_right_48dp.py rename to lib/pdwidgets/icons/keyboard_arrow_right_48dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_up_18dp.py b/lib/pdwidgets/icons/keyboard_arrow_up_18dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_up_18dp.py rename to lib/pdwidgets/icons/keyboard_arrow_up_18dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_up_24dp.py b/lib/pdwidgets/icons/keyboard_arrow_up_24dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_up_24dp.py rename to lib/pdwidgets/icons/keyboard_arrow_up_24dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_up_36dp.py b/lib/pdwidgets/icons/keyboard_arrow_up_36dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_up_36dp.py rename to lib/pdwidgets/icons/keyboard_arrow_up_36dp.py diff --git a/src/pdwidgets/icons/keyboard_arrow_up_48dp.py b/lib/pdwidgets/icons/keyboard_arrow_up_48dp.py similarity index 100% rename from src/pdwidgets/icons/keyboard_arrow_up_48dp.py rename to lib/pdwidgets/icons/keyboard_arrow_up_48dp.py diff --git a/src/pdwidgets/icons/menu_18dp.py b/lib/pdwidgets/icons/menu_18dp.py similarity index 100% rename from src/pdwidgets/icons/menu_18dp.py rename to lib/pdwidgets/icons/menu_18dp.py diff --git a/src/pdwidgets/icons/menu_24dp.py b/lib/pdwidgets/icons/menu_24dp.py similarity index 100% rename from src/pdwidgets/icons/menu_24dp.py rename to lib/pdwidgets/icons/menu_24dp.py diff --git a/src/pdwidgets/icons/menu_36dp.py b/lib/pdwidgets/icons/menu_36dp.py similarity index 100% rename from src/pdwidgets/icons/menu_36dp.py rename to lib/pdwidgets/icons/menu_36dp.py diff --git a/src/pdwidgets/icons/menu_48dp.py b/lib/pdwidgets/icons/menu_48dp.py similarity index 100% rename from src/pdwidgets/icons/menu_48dp.py rename to lib/pdwidgets/icons/menu_48dp.py diff --git a/src/pdwidgets/icons/notifications_color_24dp.py b/lib/pdwidgets/icons/notifications_color_24dp.py similarity index 100% rename from src/pdwidgets/icons/notifications_color_24dp.py rename to lib/pdwidgets/icons/notifications_color_24dp.py diff --git a/src/pdwidgets/icons/radio_button_checked_18dp.py b/lib/pdwidgets/icons/radio_button_checked_18dp.py similarity index 100% rename from src/pdwidgets/icons/radio_button_checked_18dp.py rename to lib/pdwidgets/icons/radio_button_checked_18dp.py diff --git a/src/pdwidgets/icons/radio_button_checked_24dp.py b/lib/pdwidgets/icons/radio_button_checked_24dp.py similarity index 100% rename from src/pdwidgets/icons/radio_button_checked_24dp.py rename to lib/pdwidgets/icons/radio_button_checked_24dp.py diff --git a/src/pdwidgets/icons/radio_button_checked_36dp.py b/lib/pdwidgets/icons/radio_button_checked_36dp.py similarity index 100% rename from src/pdwidgets/icons/radio_button_checked_36dp.py rename to lib/pdwidgets/icons/radio_button_checked_36dp.py diff --git a/src/pdwidgets/icons/radio_button_checked_48dp.py b/lib/pdwidgets/icons/radio_button_checked_48dp.py similarity index 100% rename from src/pdwidgets/icons/radio_button_checked_48dp.py rename to lib/pdwidgets/icons/radio_button_checked_48dp.py diff --git a/src/pdwidgets/icons/radio_button_unchecked_18dp.py b/lib/pdwidgets/icons/radio_button_unchecked_18dp.py similarity index 100% rename from src/pdwidgets/icons/radio_button_unchecked_18dp.py rename to lib/pdwidgets/icons/radio_button_unchecked_18dp.py diff --git a/src/pdwidgets/icons/radio_button_unchecked_24dp.py b/lib/pdwidgets/icons/radio_button_unchecked_24dp.py similarity index 100% rename from src/pdwidgets/icons/radio_button_unchecked_24dp.py rename to lib/pdwidgets/icons/radio_button_unchecked_24dp.py diff --git a/src/pdwidgets/icons/radio_button_unchecked_36dp.py b/lib/pdwidgets/icons/radio_button_unchecked_36dp.py similarity index 100% rename from src/pdwidgets/icons/radio_button_unchecked_36dp.py rename to lib/pdwidgets/icons/radio_button_unchecked_36dp.py diff --git a/src/pdwidgets/icons/radio_button_unchecked_48dp.py b/lib/pdwidgets/icons/radio_button_unchecked_48dp.py similarity index 100% rename from src/pdwidgets/icons/radio_button_unchecked_48dp.py rename to lib/pdwidgets/icons/radio_button_unchecked_48dp.py diff --git a/src/pdwidgets/icons/remove_18dp.py b/lib/pdwidgets/icons/remove_18dp.py similarity index 100% rename from src/pdwidgets/icons/remove_18dp.py rename to lib/pdwidgets/icons/remove_18dp.py diff --git a/src/pdwidgets/icons/remove_24dp.py b/lib/pdwidgets/icons/remove_24dp.py similarity index 100% rename from src/pdwidgets/icons/remove_24dp.py rename to lib/pdwidgets/icons/remove_24dp.py diff --git a/src/pdwidgets/icons/remove_36dp.py b/lib/pdwidgets/icons/remove_36dp.py similarity index 100% rename from src/pdwidgets/icons/remove_36dp.py rename to lib/pdwidgets/icons/remove_36dp.py diff --git a/src/pdwidgets/icons/remove_48dp.py b/lib/pdwidgets/icons/remove_48dp.py similarity index 100% rename from src/pdwidgets/icons/remove_48dp.py rename to lib/pdwidgets/icons/remove_48dp.py diff --git a/src/pdwidgets/icons/toggle_off_18dp.py b/lib/pdwidgets/icons/toggle_off_18dp.py similarity index 100% rename from src/pdwidgets/icons/toggle_off_18dp.py rename to lib/pdwidgets/icons/toggle_off_18dp.py diff --git a/src/pdwidgets/icons/toggle_off_24dp.py b/lib/pdwidgets/icons/toggle_off_24dp.py similarity index 100% rename from src/pdwidgets/icons/toggle_off_24dp.py rename to lib/pdwidgets/icons/toggle_off_24dp.py diff --git a/src/pdwidgets/icons/toggle_off_36dp.py b/lib/pdwidgets/icons/toggle_off_36dp.py similarity index 100% rename from src/pdwidgets/icons/toggle_off_36dp.py rename to lib/pdwidgets/icons/toggle_off_36dp.py diff --git a/src/pdwidgets/icons/toggle_off_48dp.py b/lib/pdwidgets/icons/toggle_off_48dp.py similarity index 100% rename from src/pdwidgets/icons/toggle_off_48dp.py rename to lib/pdwidgets/icons/toggle_off_48dp.py diff --git a/src/pdwidgets/icons/toggle_on_18dp.py b/lib/pdwidgets/icons/toggle_on_18dp.py similarity index 100% rename from src/pdwidgets/icons/toggle_on_18dp.py rename to lib/pdwidgets/icons/toggle_on_18dp.py diff --git a/src/pdwidgets/icons/toggle_on_24dp.py b/lib/pdwidgets/icons/toggle_on_24dp.py similarity index 100% rename from src/pdwidgets/icons/toggle_on_24dp.py rename to lib/pdwidgets/icons/toggle_on_24dp.py diff --git a/src/pdwidgets/icons/toggle_on_36dp.py b/lib/pdwidgets/icons/toggle_on_36dp.py similarity index 100% rename from src/pdwidgets/icons/toggle_on_36dp.py rename to lib/pdwidgets/icons/toggle_on_36dp.py diff --git a/src/pdwidgets/icons/toggle_on_48dp.py b/lib/pdwidgets/icons/toggle_on_48dp.py similarity index 100% rename from src/pdwidgets/icons/toggle_on_48dp.py rename to lib/pdwidgets/icons/toggle_on_48dp.py diff --git a/src/pdwidgets/icons/warning_18dp.py b/lib/pdwidgets/icons/warning_18dp.py similarity index 100% rename from src/pdwidgets/icons/warning_18dp.py rename to lib/pdwidgets/icons/warning_18dp.py diff --git a/src/pdwidgets/icons/warning_24dp.py b/lib/pdwidgets/icons/warning_24dp.py similarity index 100% rename from src/pdwidgets/icons/warning_24dp.py rename to lib/pdwidgets/icons/warning_24dp.py diff --git a/src/pdwidgets/icons/warning_36dp.py b/lib/pdwidgets/icons/warning_36dp.py similarity index 100% rename from src/pdwidgets/icons/warning_36dp.py rename to lib/pdwidgets/icons/warning_36dp.py diff --git a/src/pdwidgets/icons/warning_48dp.py b/lib/pdwidgets/icons/warning_48dp.py similarity index 100% rename from src/pdwidgets/icons/warning_48dp.py rename to lib/pdwidgets/icons/warning_48dp.py diff --git a/src/pdwidgets/pct.py b/lib/pdwidgets/pct.py similarity index 100% rename from src/pdwidgets/pct.py rename to lib/pdwidgets/pct.py diff --git a/src/pdwidgets/screen.py b/lib/pdwidgets/screen.py similarity index 100% rename from src/pdwidgets/screen.py rename to lib/pdwidgets/screen.py diff --git a/src/pdwidgets/task.py b/lib/pdwidgets/task.py similarity index 100% rename from src/pdwidgets/task.py rename to lib/pdwidgets/task.py diff --git a/src/pdwidgets/widget.py b/lib/pdwidgets/widget.py similarity index 100% rename from src/pdwidgets/widget.py rename to lib/pdwidgets/widget.py diff --git a/src/pdwidgets/widgets/__init__.py b/lib/pdwidgets/widgets/__init__.py similarity index 100% rename from src/pdwidgets/widgets/__init__.py rename to lib/pdwidgets/widgets/__init__.py diff --git a/src/pdwidgets/widgets/_layout.py b/lib/pdwidgets/widgets/_layout.py similarity index 100% rename from src/pdwidgets/widgets/_layout.py rename to lib/pdwidgets/widgets/_layout.py diff --git a/src/pdwidgets/widgets/_raised.py b/lib/pdwidgets/widgets/_raised.py similarity index 100% rename from src/pdwidgets/widgets/_raised.py rename to lib/pdwidgets/widgets/_raised.py diff --git a/src/pdwidgets/widgets/accordion.py b/lib/pdwidgets/widgets/accordion.py similarity index 100% rename from src/pdwidgets/widgets/accordion.py rename to lib/pdwidgets/widgets/accordion.py diff --git a/src/pdwidgets/widgets/app_bar.py b/lib/pdwidgets/widgets/app_bar.py similarity index 100% rename from src/pdwidgets/widgets/app_bar.py rename to lib/pdwidgets/widgets/app_bar.py diff --git a/src/pdwidgets/widgets/badge.py b/lib/pdwidgets/widgets/badge.py similarity index 100% rename from src/pdwidgets/widgets/badge.py rename to lib/pdwidgets/widgets/badge.py diff --git a/src/pdwidgets/widgets/bottom_sheet.py b/lib/pdwidgets/widgets/bottom_sheet.py similarity index 100% rename from src/pdwidgets/widgets/bottom_sheet.py rename to lib/pdwidgets/widgets/bottom_sheet.py diff --git a/src/pdwidgets/widgets/button.py b/lib/pdwidgets/widgets/button.py similarity index 100% rename from src/pdwidgets/widgets/button.py rename to lib/pdwidgets/widgets/button.py diff --git a/src/pdwidgets/widgets/card.py b/lib/pdwidgets/widgets/card.py similarity index 100% rename from src/pdwidgets/widgets/card.py rename to lib/pdwidgets/widgets/card.py diff --git a/src/pdwidgets/widgets/chart.py b/lib/pdwidgets/widgets/chart.py similarity index 100% rename from src/pdwidgets/widgets/chart.py rename to lib/pdwidgets/widgets/chart.py diff --git a/src/pdwidgets/widgets/check_box.py b/lib/pdwidgets/widgets/check_box.py similarity index 100% rename from src/pdwidgets/widgets/check_box.py rename to lib/pdwidgets/widgets/check_box.py diff --git a/src/pdwidgets/widgets/chip.py b/lib/pdwidgets/widgets/chip.py similarity index 100% rename from src/pdwidgets/widgets/chip.py rename to lib/pdwidgets/widgets/chip.py diff --git a/src/pdwidgets/widgets/color_picker.py b/lib/pdwidgets/widgets/color_picker.py similarity index 100% rename from src/pdwidgets/widgets/color_picker.py rename to lib/pdwidgets/widgets/color_picker.py diff --git a/src/pdwidgets/widgets/column.py b/lib/pdwidgets/widgets/column.py similarity index 100% rename from src/pdwidgets/widgets/column.py rename to lib/pdwidgets/widgets/column.py diff --git a/src/pdwidgets/widgets/date_picker.py b/lib/pdwidgets/widgets/date_picker.py similarity index 100% rename from src/pdwidgets/widgets/date_picker.py rename to lib/pdwidgets/widgets/date_picker.py diff --git a/src/pdwidgets/widgets/dialog.py b/lib/pdwidgets/widgets/dialog.py similarity index 100% rename from src/pdwidgets/widgets/dialog.py rename to lib/pdwidgets/widgets/dialog.py diff --git a/src/pdwidgets/widgets/digital_clock.py b/lib/pdwidgets/widgets/digital_clock.py similarity index 100% rename from src/pdwidgets/widgets/digital_clock.py rename to lib/pdwidgets/widgets/digital_clock.py diff --git a/src/pdwidgets/widgets/divider.py b/lib/pdwidgets/widgets/divider.py similarity index 100% rename from src/pdwidgets/widgets/divider.py rename to lib/pdwidgets/widgets/divider.py diff --git a/src/pdwidgets/widgets/drawer.py b/lib/pdwidgets/widgets/drawer.py similarity index 100% rename from src/pdwidgets/widgets/drawer.py rename to lib/pdwidgets/widgets/drawer.py diff --git a/src/pdwidgets/widgets/dropdown.py b/lib/pdwidgets/widgets/dropdown.py similarity index 100% rename from src/pdwidgets/widgets/dropdown.py rename to lib/pdwidgets/widgets/dropdown.py diff --git a/src/pdwidgets/widgets/form.py b/lib/pdwidgets/widgets/form.py similarity index 100% rename from src/pdwidgets/widgets/form.py rename to lib/pdwidgets/widgets/form.py diff --git a/src/pdwidgets/widgets/form_row.py b/lib/pdwidgets/widgets/form_row.py similarity index 100% rename from src/pdwidgets/widgets/form_row.py rename to lib/pdwidgets/widgets/form_row.py diff --git a/src/pdwidgets/widgets/gauge.py b/lib/pdwidgets/widgets/gauge.py similarity index 100% rename from src/pdwidgets/widgets/gauge.py rename to lib/pdwidgets/widgets/gauge.py diff --git a/src/pdwidgets/widgets/grid.py b/lib/pdwidgets/widgets/grid.py similarity index 100% rename from src/pdwidgets/widgets/grid.py rename to lib/pdwidgets/widgets/grid.py diff --git a/src/pdwidgets/widgets/icon.py b/lib/pdwidgets/widgets/icon.py similarity index 100% rename from src/pdwidgets/widgets/icon.py rename to lib/pdwidgets/widgets/icon.py diff --git a/src/pdwidgets/widgets/icon_button.py b/lib/pdwidgets/widgets/icon_button.py similarity index 100% rename from src/pdwidgets/widgets/icon_button.py rename to lib/pdwidgets/widgets/icon_button.py diff --git a/src/pdwidgets/widgets/image.py b/lib/pdwidgets/widgets/image.py similarity index 100% rename from src/pdwidgets/widgets/image.py rename to lib/pdwidgets/widgets/image.py diff --git a/src/pdwidgets/widgets/keyboard.py b/lib/pdwidgets/widgets/keyboard.py similarity index 100% rename from src/pdwidgets/widgets/keyboard.py rename to lib/pdwidgets/widgets/keyboard.py diff --git a/src/pdwidgets/widgets/label.py b/lib/pdwidgets/widgets/label.py similarity index 100% rename from src/pdwidgets/widgets/label.py rename to lib/pdwidgets/widgets/label.py diff --git a/src/pdwidgets/widgets/list_view.py b/lib/pdwidgets/widgets/list_view.py similarity index 100% rename from src/pdwidgets/widgets/list_view.py rename to lib/pdwidgets/widgets/list_view.py diff --git a/src/pdwidgets/widgets/menu.py b/lib/pdwidgets/widgets/menu.py similarity index 100% rename from src/pdwidgets/widgets/menu.py rename to lib/pdwidgets/widgets/menu.py diff --git a/src/pdwidgets/widgets/navigator.py b/lib/pdwidgets/widgets/navigator.py similarity index 100% rename from src/pdwidgets/widgets/navigator.py rename to lib/pdwidgets/widgets/navigator.py diff --git a/src/pdwidgets/widgets/number_stepper.py b/lib/pdwidgets/widgets/number_stepper.py similarity index 100% rename from src/pdwidgets/widgets/number_stepper.py rename to lib/pdwidgets/widgets/number_stepper.py diff --git a/src/pdwidgets/widgets/page.py b/lib/pdwidgets/widgets/page.py similarity index 100% rename from src/pdwidgets/widgets/page.py rename to lib/pdwidgets/widgets/page.py diff --git a/src/pdwidgets/widgets/password_field.py b/lib/pdwidgets/widgets/password_field.py similarity index 100% rename from src/pdwidgets/widgets/password_field.py rename to lib/pdwidgets/widgets/password_field.py diff --git a/src/pdwidgets/widgets/pin_pad.py b/lib/pdwidgets/widgets/pin_pad.py similarity index 100% rename from src/pdwidgets/widgets/pin_pad.py rename to lib/pdwidgets/widgets/pin_pad.py diff --git a/src/pdwidgets/widgets/progress_bar.py b/lib/pdwidgets/widgets/progress_bar.py similarity index 100% rename from src/pdwidgets/widgets/progress_bar.py rename to lib/pdwidgets/widgets/progress_bar.py diff --git a/src/pdwidgets/widgets/radio_button.py b/lib/pdwidgets/widgets/radio_button.py similarity index 100% rename from src/pdwidgets/widgets/radio_button.py rename to lib/pdwidgets/widgets/radio_button.py diff --git a/src/pdwidgets/widgets/radio_group.py b/lib/pdwidgets/widgets/radio_group.py similarity index 100% rename from src/pdwidgets/widgets/radio_group.py rename to lib/pdwidgets/widgets/radio_group.py diff --git a/src/pdwidgets/widgets/row.py b/lib/pdwidgets/widgets/row.py similarity index 100% rename from src/pdwidgets/widgets/row.py rename to lib/pdwidgets/widgets/row.py diff --git a/src/pdwidgets/widgets/scroll_bar.py b/lib/pdwidgets/widgets/scroll_bar.py similarity index 100% rename from src/pdwidgets/widgets/scroll_bar.py rename to lib/pdwidgets/widgets/scroll_bar.py diff --git a/src/pdwidgets/widgets/scroll_view.py b/lib/pdwidgets/widgets/scroll_view.py similarity index 100% rename from src/pdwidgets/widgets/scroll_view.py rename to lib/pdwidgets/widgets/scroll_view.py diff --git a/src/pdwidgets/widgets/segmented_control.py b/lib/pdwidgets/widgets/segmented_control.py similarity index 100% rename from src/pdwidgets/widgets/segmented_control.py rename to lib/pdwidgets/widgets/segmented_control.py diff --git a/src/pdwidgets/widgets/slider.py b/lib/pdwidgets/widgets/slider.py similarity index 100% rename from src/pdwidgets/widgets/slider.py rename to lib/pdwidgets/widgets/slider.py diff --git a/src/pdwidgets/widgets/spinner.py b/lib/pdwidgets/widgets/spinner.py similarity index 100% rename from src/pdwidgets/widgets/spinner.py rename to lib/pdwidgets/widgets/spinner.py diff --git a/src/pdwidgets/widgets/switch.py b/lib/pdwidgets/widgets/switch.py similarity index 100% rename from src/pdwidgets/widgets/switch.py rename to lib/pdwidgets/widgets/switch.py diff --git a/src/pdwidgets/widgets/tab_view.py b/lib/pdwidgets/widgets/tab_view.py similarity index 100% rename from src/pdwidgets/widgets/tab_view.py rename to lib/pdwidgets/widgets/tab_view.py diff --git a/src/pdwidgets/widgets/text_box.py b/lib/pdwidgets/widgets/text_box.py similarity index 100% rename from src/pdwidgets/widgets/text_box.py rename to lib/pdwidgets/widgets/text_box.py diff --git a/src/pdwidgets/widgets/text_input.py b/lib/pdwidgets/widgets/text_input.py similarity index 100% rename from src/pdwidgets/widgets/text_input.py rename to lib/pdwidgets/widgets/text_input.py diff --git a/src/pdwidgets/widgets/toast.py b/lib/pdwidgets/widgets/toast.py similarity index 100% rename from src/pdwidgets/widgets/toast.py rename to lib/pdwidgets/widgets/toast.py diff --git a/src/pdwidgets/widgets/toggle.py b/lib/pdwidgets/widgets/toggle.py similarity index 100% rename from src/pdwidgets/widgets/toggle.py rename to lib/pdwidgets/widgets/toggle.py diff --git a/src/pdwidgets/widgets/toggle_button.py b/lib/pdwidgets/widgets/toggle_button.py similarity index 100% rename from src/pdwidgets/widgets/toggle_button.py rename to lib/pdwidgets/widgets/toggle_button.py diff --git a/pyproject.toml b/pyproject.toml index 37d638f..c93de05 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.ruff] exclude = [ - "src/pdwidgets/icons/**", + "lib/pdwidgets/icons/**", ] lint.select = ["E", "F", "I", "W", "B", "SIM", "PLC0415"] # SIM105 disabled: contextlib.suppress is not available on MicroPython (matches diff --git a/scripts/assets_convert_md_png_to_pbm.py b/scripts/assets_convert_md_png_to_pbm.py index 4f11efb..79202fe 100644 --- a/scripts/assets_convert_md_png_to_pbm.py +++ b/scripts/assets_convert_md_png_to_pbm.py @@ -7,7 +7,7 @@ /png/action/3d_rotation/materialicons/18dp/1x/baseline_3d_rotation_black_18dp.png -For the curated runtime set under ``src/pdwidgets/icons/``, use +For the curated runtime set under ``lib/pdwidgets/icons/``, use ``assets_generate_pdwidgets_icons.py`` instead. Run from the pdwidgets repo root (needs sibling pydisplay for ``graphics`` / diff --git a/scripts/assets_generate_pdwidgets_icons.py b/scripts/assets_generate_pdwidgets_icons.py index 45e7786..476f26a 100644 --- a/scripts/assets_generate_pdwidgets_icons.py +++ b/scripts/assets_generate_pdwidgets_icons.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """ Generate/complete the curated icon set used by ``pdwidgets.icon_theme`` -(``src/pdwidgets/icons/``) from a local checkout of +(``lib/pdwidgets/icons/``) from a local checkout of https://github.com/google/material-design-icons (png/ tree), at ``~/material-design-icons`` by default. diff --git a/scripts/assets_icons_to_py.py b/scripts/assets_icons_to_py.py index e7e0c8d..c07121c 100644 --- a/scripts/assets_icons_to_py.py +++ b/scripts/assets_icons_to_py.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 """ -Convert ``src/pdwidgets/icons/*.{pbm,bmp}`` into importable ``.py`` modules. +Convert ``lib/pdwidgets/icons/*.{pbm,bmp}`` into importable ``.py`` modules. -Installs ``pydisplay-graphics`` from TestPyPI (unless already importable), or +Installs ``graphics-py`` from TestPyPI (unless already importable), or uses sibling ``pydisplay/src/lib`` when present. Loads each binary via ``FrameBuffer.from_file``, then writes modules via ``FrameBuffer.export`` (``BITMAP = bytearray(...)`` for zero-copy MicroPython loads). @@ -57,7 +57,7 @@ def ensure_graphics(*, install: bool) -> None: "https://test.pypi.org/simple/", "--extra-index-url", "https://pypi.org/simple/", - "pydisplay-graphics", + "graphics-py", ] print("Running:", " ".join(cmd)) subprocess.check_call(cmd) diff --git a/scripts/assets_make_color_icons.py b/scripts/assets_make_color_icons.py index 15f42b2..8f3571a 100644 --- a/scripts/assets_make_color_icons.py +++ b/scripts/assets_make_color_icons.py @@ -5,7 +5,7 @@ Material Design icons are monochrome black glyphs on transparency. This tool fetches a few individual PNGs from ``google/material-design-icons`` (via the GitHub Contents API — no clone), colorizes each glyph with a chosen accent, and -writes a BMP565 file into ``src/pdwidgets/icons/``. Non-glyph pixels are set to +writes a BMP565 file into ``lib/pdwidgets/icons/``. Non-glyph pixels are set to a magenta chroma key so ``pdwidgets.Icon(chroma=CHROMA_565)`` can render them with a transparent background. No PNG is shipped or decoded at runtime. diff --git a/scripts/publish_micropython_lib.sh b/scripts/publish_micropython_lib.sh index 6e4a215..e0b80df 100755 --- a/scripts/publish_micropython_lib.sh +++ b/scripts/publish_micropython_lib.sh @@ -16,7 +16,7 @@ usage() { cat <<'EOF' Usage: ./scripts/publish_micropython_lib.sh [OPTION] -Copy pdwidgets src/ into micropython-lib, optionally upload TestPyPI wheels, +Copy pdwidgets lib/ into micropython-lib, optionally upload TestPyPI wheels, then commit (and optionally push) on the PyDevices branch. Options: @@ -90,7 +90,7 @@ BASENAME=pdwidgets DEST_REPO="${MICROPYTHON_LIB_DIR:-$SOURCE_REPO/../micropython-lib}" DEST_REPO="$(cd "$DEST_REPO" 2>/dev/null && pwd || echo "$DEST_REPO")" export MICROPYTHON_LIB_DIR="$DEST_REPO" -SOURCE_DIR=$SOURCE_REPO/src/pdwidgets +SOURCE_DIR=$SOURCE_REPO/lib/pdwidgets DEST_DIR=$DEST_REPO/micropython/$BASENAME PYPI_DIR=$SOURCE_REPO/wheels README_FULL_PATH=$SOURCE_REPO/README.md @@ -146,7 +146,7 @@ push_micropython_lib() { echo echo "Processing $BASENAME" mkdir -p "$DEST_DIR/$BASENAME" -# --delete drops removed assets (e.g. old .pbm/.bmp icons) so the sync matches src/ +# --delete drops removed assets (e.g. old .pbm/.bmp icons) so the sync matches lib/ rsync -a --delete "${RSYNC_EXCLUDES[@]}" "$SOURCE_DIR/" "$DEST_DIR/$BASENAME/" cat < "$DEST_DIR/manifest.py" @@ -158,7 +158,7 @@ metadata( pypi_publish="$BASENAME", ) require("eventsys") -require("graphics", pypi="pydisplay-graphics") +require("graphics", pypi="graphics-py") require("multimer") require("palettes") package("$BASENAME") From ad525d1682106cd9e56f7c7a5b8480cd997359bf Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sun, 26 Jul 2026 11:48:59 +0000 Subject: [PATCH 2/2] Fix ruff import order and zip(strict=True) in tests. --- tests/test_button_backdrop.py | 1 - tests/test_raised.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/test_button_backdrop.py b/tests/test_button_backdrop.py index db327e2..bb6f042 100644 --- a/tests/test_button_backdrop.py +++ b/tests/test_button_backdrop.py @@ -7,7 +7,6 @@ from unittest.mock import MagicMock, PropertyMock, patch from graphics import Area - from pdwidgets.widgets.button import Button diff --git a/tests/test_raised.py b/tests/test_raised.py index 3e0d62e..52c8d02 100644 --- a/tests/test_raised.py +++ b/tests/test_raised.py @@ -92,7 +92,7 @@ def test_row_cache_reuses_recipe(self): ) self.assertEqual(len(fb_a.fills), len(fb_b.fills)) # Same relative insets/colors (absolute x/y shifted). - for a, b in zip(fb_a.fills, fb_b.fills): + for a, b in zip(fb_a.fills, fb_b.fills, strict=True): self.assertEqual(a[0] + 4, b[0]) self.assertEqual(a[1] + 5, b[1]) self.assertEqual(a[2:], b[2:])