Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collapsible Widget API v1.1 #23

Merged
merged 8 commits into from
Jan 8, 2024
Merged

Conversation

IgorTatarnikov
Copy link
Member

Description

What is this PR

  • Bug fix
  • Addition of a new feature
  • Other

Why is this PR needed?

The API for the collapsible widget was awkward to use.

What does this PR do?

The CollapsibleWidgetContainer now takes any QWidget and if the collapsible flag is True instantiates a CollapsibleWidget and replaces the content with the input QWidget. Before, the user had to instantiate a CollapsibleWidget and pass that to the CollapsibleWidgetContainer if they wanted to widget to be collapsible.

How has this PR been tested?

Tests have been added to cover the new functionality.

Checklist:

  • The code has been tested locally
  • Tests have been added to cover all new functionality (unit & integration)
  • The code has been formatted with pre-commit

Copy link

codecov bot commented Jan 8, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (cb48329) 83.00% compared to head (3ae2145) 83.30%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #23      +/-   ##
==========================================
+ Coverage   83.00%   83.30%   +0.30%     
==========================================
  Files          20       20              
  Lines         606      617      +11     
==========================================
+ Hits          503      514      +11     
  Misses        103      103              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Member

@alessandrofelder alessandrofelder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - thanks!
Made a few tiny suggestions

brainglobe_utils/qtpy/collapsible_widget.py Outdated Show resolved Hide resolved
Comment on lines 18 to 19
## TODO Add tests for different layouts
## TODO Add tests for removing widgets not in the container
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need issues for these, so we keep track of TODO's in one place?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say always have issues rather than TODOs

Copy link
Member Author

@IgorTatarnikov IgorTatarnikov Jan 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the following covers the first TODO.

@pytest.mark.parametrize(
"layout, collapsible",
[
(QVBoxLayout(), True),
(QHBoxLayout(), True),
(QFormLayout(), True),
(QVBoxLayout(), False),
(QHBoxLayout(), False),
(QFormLayout(), False),
],
)
def test_collapsible_widget_container_add_remove_widgets(
qtbot, collapsible_widget_container, generic_widget, layout, collapsible
):
qtbot.addWidget(collapsible_widget_container)
generic_widget.setLayout(layout)
generic_widget.layout().addWidget(QLabel("test"))
generic_widget.layout().addWidget(QPushButton("test"))
collapsible_widget_container.add_widget(
generic_widget, collapsible=collapsible, widget_title=WIDGET_TITLE
)
assert collapsible_widget_container.layout().count() == 1
# Convert collapsible to int (False -> 0, True -> 1)
# to check if collapsible_widgets is empty
assert len(collapsible_widget_container.collapsible_widgets) == int(
collapsible
)
collapsible_widget_container.remove_widget(generic_widget)
assert collapsible_widget_container.layout().count() == 0
assert len(collapsible_widget_container.collapsible_widgets) == 0

And I've just added a test to check an exception is thrown when trying to remove a widget that hasn't been added to the container.

tests/tests/test_qtpy/test_collapsible_widget.py Outdated Show resolved Hide resolved
@IgorTatarnikov IgorTatarnikov merged commit be5196e into main Jan 8, 2024
19 checks passed
@IgorTatarnikov IgorTatarnikov deleted the collapsible-widget-parent-bug branch January 8, 2024 15:34
willGraham01 pushed a commit that referenced this pull request Feb 9, 2024
* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

* Update README.md

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Adam Tyson <[email protected]>
adamltyson added a commit that referenced this pull request Feb 9, 2024
* Initial commit

* bump

* bump

* bump

* add bump2version

* Bump version: 0.0.2 → 0.0.3

* add pre commit hooks

* update testing

* reorder ci

* fix non-istropic loading error

* Bump version: 0.0.3 → 0.0.4

* Gh actions (#3)

* add gh actions

* Update testing

* update testing

* add lint

* coveralls

* coveralls

* deploy

* Bump version: 0.0.4 → 0.0.5

* update readme

* transfer to brainglobe

* run tests on PR

* update coverage

* support python 3.9

* Bump version: 0.0.5 → 0.0.6

* update bump2version

* Bump version: 0.0.6 → 0.1.0-rc0

* Bump version: 0.1.0-rc0 → 0.1.0

* Update setup.py

* add missing import

* Update README.md

* fix linting

* Exclude tests from packaged distributions (#6)

* Update pre commit

* reformat

* Python 3.10 compatibility

* Bump version: 0.1.0 → 0.2.0-rc0

* update GH actions

* Bump version: 0.2.0-rc0 → 0.2.0-rc1

* Bump version: 0.2.0-rc1 → 0.2.0

* Revert older changes

* Fix deprecation of tifffile.imsave replaced by tifffile.imwrite. (#8)

Co-authored-by: Jules Scholler <[email protected]>

* Bump version: 0.2.1 → 0.2.2-rc0

* Bump version: 0.2.2-rc0 → 0.2.2

* Add link to contributing guide

* Add tox and use brainglobe/actions (#10)

* Add tox and use brainglobe actions for testing

* Update pre-commit

* run pre-commit

* Update tox.ini

* Bump version: 0.2.2 → 0.2.3-rc0

* Bump version: 0.2.3-rc0 → 0.2.3

* Long description (#11)

* Add long description for PyPI

* Bump version: 0.2.3 → 0.2.4-rc0

* Bump version: 0.2.4-rc0 → 0.2.4

* Change coverage badge to codecov.

* Test on recent python versions (#13)

* Test on recent python versions

* Bump pre-commit versions

* Fix dtype issue

* Remove straggling mention of 3.7

* Replace brainglobe > NI actions (#14)

* Use standard pre-commit config  (#15)

* Add standard pre-commit config

* pre-commit fixes

* Use pyproject.toml (#16)

* Filter warnings in pytest (#17)

* Filter warnings in pytest

* Filter nptyping warnings

* Add all-contributors

* Update README.md

Co-authored-by: David Stansby <[email protected]>

* docs: add crousseau as a contributor for code, ideas, and test (#25)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

* Remove badge

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Adam Tyson <[email protected]>

* Don't skip CI for all-contrbutors-bot

* Update .all-contributorsrc

* docs: add jaimergp as a contributor for code (#23)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

* Update README.md

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Adam Tyson <[email protected]>

* docs: add JulesScholler as a contributor for code (#22)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

* Update README.md

* Update .all-contributorsrc

* Update .all-contributorsrc

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Adam Tyson <[email protected]>

* docs: add dstansby as a contributor for test, code, and 3 more (#21)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

* Update README.md

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Adam Tyson <[email protected]>

* docs: add adamltyson as a contributor for code, infra, and 2 more (#24)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

* Update README.md

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Adam Tyson <[email protected]>

* Update doc links (#27)

* [pre-commit.ci] pre-commit autoupdate (#28)

updates:
- [github.com/charliermarsh/ruff-pre-commit: v0.0.240 → v0.0.272](astral-sh/ruff-pre-commit@v0.0.240...v0.0.272)
- [github.com/psf/black: 23.1.0 → 23.3.0](psf/black@23.1.0...23.3.0)
- [github.com/pre-commit/mirrors-mypy: v0.991 → v1.3.0](pre-commit/mirrors-mypy@v0.991...v1.3.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Update dependency (imlib -> brainglobe-utils) (#29)

* [pre-commit.ci] pre-commit autoupdate (#31)

updates:
- [github.com/charliermarsh/ruff-pre-commit: v0.0.272 → v0.0.275](astral-sh/ruff-pre-commit@v0.0.272...v0.0.275)
- [github.com/pre-commit/mirrors-mypy: v1.3.0 → v1.4.1](pre-commit/mirrors-mypy@v1.3.0...v1.4.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* remove all contributors (#32)

* [pre-commit.ci] pre-commit autoupdate (#33)

updates:
- https://github.com/charliermarsh/ruff-pre-commithttps://github.com/astral-sh/ruff-pre-commit
- [github.com/astral-sh/ruff-pre-commit: v0.0.275 → v0.0.276](astral-sh/ruff-pre-commit@v0.0.275...v0.0.276)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#34)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.276 → v0.0.277](astral-sh/ruff-pre-commit@v0.0.276...v0.0.277)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Update CI workflow to use NIU actions (#35)

* [pre-commit.ci] pre-commit autoupdate (#36)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.277 → v0.0.278](astral-sh/ruff-pre-commit@v0.0.277...v0.0.278)
- [github.com/psf/black: 23.3.0 → 23.7.0](psf/black@23.3.0...23.7.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#37)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.278 → v0.0.280](astral-sh/ruff-pre-commit@v0.0.278...v0.0.280)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#38)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.280 → v0.0.281](astral-sh/ruff-pre-commit@v0.0.280...v0.0.281)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#39)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.281 → v0.0.282](astral-sh/ruff-pre-commit@v0.0.281...v0.0.282)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#40)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.282 → v0.0.284](astral-sh/ruff-pre-commit@v0.0.282...v0.0.284)
- [github.com/pre-commit/mirrors-mypy: v1.4.1 → v1.5.0](pre-commit/mirrors-mypy@v1.4.1...v1.5.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#41)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.284 → v0.0.285](astral-sh/ruff-pre-commit@v0.0.284...v0.0.285)
- [github.com/pre-commit/mirrors-mypy: v1.5.0 → v1.5.1](pre-commit/mirrors-mypy@v1.5.0...v1.5.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#42)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.285 → v0.0.286](astral-sh/ruff-pre-commit@v0.0.285...v0.0.286)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Set pre-commit autoupdate frequency to monthly (#43)

* [pre-commit.ci] pre-commit autoupdate (#44)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.286 → v0.0.287](astral-sh/ruff-pre-commit@v0.0.286...v0.0.287)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#45)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.287 → v0.0.292](astral-sh/ruff-pre-commit@v0.0.287...v0.0.292)
- [github.com/psf/black: 23.7.0 → 23.9.1](psf/black@23.7.0...23.9.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#48)

updates:
- [github.com/pre-commit/pre-commit-hooks: v4.4.0 → v4.5.0](pre-commit/pre-commit-hooks@v4.4.0...v4.5.0)
- [github.com/astral-sh/ruff-pre-commit: v0.0.292 → v0.1.4](astral-sh/ruff-pre-commit@v0.0.292...v0.1.4)
- [github.com/psf/black: 23.9.1 → 23.10.1](psf/black@23.9.1...23.10.1)
- [github.com/pre-commit/mirrors-mypy: v1.5.1 → v1.6.1](pre-commit/mirrors-mypy@v1.5.1...v1.6.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#49)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.4 → v0.1.6](astral-sh/ruff-pre-commit@v0.1.4...v0.1.6)
- [github.com/psf/black: 23.10.1 → 23.11.0](psf/black@23.10.1...23.11.0)
- [github.com/pre-commit/mirrors-mypy: v1.6.1 → v1.7.1](pre-commit/mirrors-mypy@v1.6.1...v1.7.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#50)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.6 → v0.1.9](astral-sh/ruff-pre-commit@v0.1.6...v0.1.9)
- [github.com/psf/black: 23.11.0 → 23.12.1](psf/black@23.11.0...23.12.1)
- [github.com/pre-commit/mirrors-mypy: v1.7.1 → v1.8.0](pre-commit/mirrors-mypy@v1.7.1...v1.8.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Update GH actions badge (#51)

* Update test_and_deploy.yml (#52)

See neuroinformatics-unit/movement#108

Co-authored-by: Igor Tatarnikov <[email protected]>

* Add manifest (#54)

* Update CI workflows with manifest

* Allow workflow to be dispatchable

* Add pyarrow dependency to prevent future pandas failures

* [pre-commit.ci] pre-commit autoupdate (#53)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.9 → v0.2.0](astral-sh/ruff-pre-commit@v0.1.9...v0.2.0)
- [github.com/psf/black: 23.12.1 → 24.1.1](psf/black@23.12.1...24.1.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* refactor image_io as submodule

* Deprecated alias warning is still present

* Fix an actual circular import because of wildcard import

* Fix buggy html logo - wrong escape backslash

---------

Co-authored-by: crousseau <[email protected]>
Co-authored-by: Adam Tyson <[email protected]>
Co-authored-by: Adam Tyson <[email protected]>
Co-authored-by: Jaime Rodríguez-Guerra <[email protected]>
Co-authored-by: Jules Scholler <[email protected]>
Co-authored-by: Jules Scholler <[email protected]>
Co-authored-by: David Stansby <[email protected]>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alessandro Felder <[email protected]>
Co-authored-by: Igor Tatarnikov <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants