Skip to content

v3.12.0

Latest
Compare
Choose a tag to compare
@PierreRaybaut PierreRaybaut released this 09 Jul 16:23
· 10 commits to master since this release

Version 3.12.0

💥 New features:

  • New operator property FuncPropMulti for handling multiple properties:

    • This property allows you to apply a function to multiple item properties at once.
    • It can be used to create more complex dependencies between items in a dataset.
    • See the guidata.tests.dataset.test_activable_items module for an example of usage.
  • New script gbuild for building the package:

    • This script is a wrapper around the guidata.utils.securebuild module, which ensures that the build process is secure and reproducible.
    • It checks that the pyproject.toml file is present in the root of the repository, and that it is committed to Git.
    • It also ensures that the build process is reproducible by using a temporary directory for the build artifacts.
  • New qt_wait_until function (guidata.qthelpers) for waiting until a condition is met:

    • This function allows you to wait for a specific condition to be true, while still processing Qt events.
    • It can be useful in situations where you need to wait for a background task to complete or for a specific UI state to be reached.
  • Renamed scripts associated to guidata.utils.translations and guidata.utils.genreqs modules:

    • guidata-translations is now gtrans
    • guidata-genreqs is now greqs

🛠️ Bug fixes:

  • Issue #90 - BoolItem: Fix checkbox state management in qtitemwidgets
    • Before this fix, the checkbox state was not correctly managed when the item's active state changed.
    • In other words, when using set_prop("display", active= on BoolItem, the checkbox was not updated.
    • The checkbox state is now correctly managed based on the item's active state.
    • This fixes a regression introduced in version 3.3.0 with the new dataset read-only mode feature.
  • Requirements generation scripts (greqs or python -m guidata.utils.genreqs):
    • Before this fix, strict superior version requirements (e.g. pyqt5 > 5.15) were skipped in the generated requirements files (with a warning message).
    • Now, these strict superior version requirements are included but the version is not specified (e.g. pyqt5 instead of pyqt5 > 5.15).
    • A warning message is still displayed to inform the user that the version is not specified.
  • Issue with automated test suite using exec_dialog:
    • The exec_dialog function was not properly handling the dialog closure in automated tests.
    • This could lead to unexpected behavior and side effects between tests.
    • The fix ensures that all pending Qt events are processed before scheduling the dialog closure.
    • This avoids the necessity to use timeouts in tests, which can lead to flaky tests.

ℹ️ Other changes:

  • Updated dependencies following the latest security advisories (NumPy >= 1.22)
  • Added pre-commit hook to run ruff (both ruff check and ruff format) on commit
  • Added missing build optional dependency to development dependencies in pyproject.toml
  • Visual Studio Code tasks:
    • Major overhaul (cleanup and simplification)
    • Removal of no longer used batch files