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.
- This script is a wrapper around the
-
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
andguidata.utils.genreqs
modules:guidata-translations
is nowgtrans
guidata-genreqs
is nowgreqs
🛠️ Bug fixes:
- Issue #90 -
BoolItem
: Fix checkbox state management inqtitemwidgets
- 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=
onBoolItem
, 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
orpython -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 ofpyqt5 > 5.15
). - A warning message is still displayed to inform the user that the version is not specified.
- Before this fix, strict superior version requirements (e.g.
- 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.
- The
ℹ️ Other changes:
- Updated dependencies following the latest security advisories (NumPy >= 1.22)
- Added
pre-commit
hook to runruff
(bothruff check
andruff format
) on commit - Added missing
build
optional dependency to development dependencies inpyproject.toml
- Visual Studio Code tasks:
- Major overhaul (cleanup and simplification)
- Removal of no longer used batch files