Repository navigation
Pre-release fixes for 3.17.0 - #127
Merged
Merged
Conversation
Version 3.16.0 is already released, and the changes made since then (Python 3.10 minimum, new get_pixmap function, new default font with Qt 5 on Windows) call for a new minor version: move the Unreleased section of the 3.16 release notes to the new 3.17 release notes. Refs #123 Assisted-by: Claude Opus 5.5
DictItem uses its display callback to open the Qt dictionary editor from a button, with a (instance, item, value, parent, trigger_apply) signature. The JSON Schema module handled it as a reactive callback: DictItem fields were flagged with x-guidata-has-callback, and resolve_dataset_callbacks() raised a TypeError for them. Ignore this callback when flagging, running and resolving reactive callbacks. Refs #123 Assisted-by: Claude Opus 5.5
DateTimeWidget connected dateTimeChanged to a lambda which only notified the value change, so its date_changed method was never used and the display callback of a DateTimeItem was never called. Connect dateTimeChanged to date_changed, which now passes the Python value of the widget (datetime) to the callback, like the other widgets. Refs #123 Assisted-by: Claude Opus 5.5
AboutInfo.about() only defined the author and organization strings in its HTML branch, so about(html=False) raised UnboundLocalError. Refs #123 Assisted-by: Claude Opus 5.5
- "Format ({}) should start with '%'" was translated with the opposite
meaning ("ne doit pas commencer par").
- "Export dataframe" was marked fuzzy with an incomplete translation, so
it was left out of the compiled catalog.
Refs #123
Assisted-by: Claude Opus 5.5
resolve_dataset_active is public (exported by guidata.dataset and referenced by dataset_to_schema_with_values), but it was missing from the API reference. Refs #123 Assisted-by: Claude Opus 5.5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #123.
Pre-release fixes found while reviewing
masterbefore releasing 3.17.0.Changes
__version__bumped to3.17.0. TheUnreleasedsection of the 3.16 release notes (Python 3.10 minimum, newget_pixmapfunction, new default font with Qt 5 on Windows, fallback for corrupted.mocatalogs) moves to the newdoc/release_notes/release_3.17.md.DictItemin the JSON Schema export (bug fix) —DictItemuses itsdisplaycallback to open the Qt dictionary editor from a button, with a(instance, item, value, parent, trigger_apply)signature. The JSON Schema module handled it as a reactive callback:DictItemfields were flagged withx-guidata-has-callback, andresolve_dataset_callbacks()raisedTypeError: DictItem.__dictedit() missing 1 required positional argument: 'parent'. Frontends such as DataLab-Web call this function when a flagged field is edited. A private helper_get_reactive_callback()now ignores this callback (isinstancecheck, robust to renaming and subclasses) when flagging, running and resolving reactive callbacks.DateTimeItemdisplay callback (bug fix) —DateTimeWidgetconnecteddateTimeChangedto a lambda which only notified the value change, so itsdate_changedmethod was dead code and thedisplaycallback was never called. It is now connected, and the callback receives the Python value of the widget (datetime.datetime), like the other widgets. This is not a compatibility break, since the callback was never called before.about(html=False)(bug fix) —AboutInfo.about()only definedauthorandorganizationin its HTML branch, so plain-text output raisedUnboundLocalError.Format ({}) should start with '%'was translated with the opposite meaning, andExport dataframewas markedfuzzywith an incomplete translation, sopybabel compile(used by the release workflow) left it out. The rest of the catalog is unchanged; it is already in sync with the source strings.resolve_dataset_activeis public and referenced bydataset_to_schema_with_values, but it was missing from the API reference: anautofunctiondirective is added.Tests
test_jsonschema.py::test_dict_item_editor_callback_is_not_reactive: nox-guidata-has-callbackflag, values snapshot OK,resolve_dataset_callbacks()returns{}.tests/unit/test_datetime_display_callback.py: changing the date/time in aDataSetEditLayoutcalls the callback once with adatetime.datetime, and the dataset is already updated.tests/unit/test_about.py: plain-text and HTML output forAboutInfoand for guidata, withcopyright_onlyin both modes.Local validation (Windows):
ruff check/ruff format --check: clean.pybabel compileand both translations checked.resolve_dataset_activeappears in thejsonschemareference page. The warnings are the same as onmaster, so this PR adds none.Not included
Found during the same review, tracked separately:
min/max/readonlyproperties in the JSON Schema export;IntItemaccepts booleans, including in strict JSON deserialization;DateItemdisplay callback receives aQDateTimeinstead of adate.Downstream: DataLab already imports
guidata.configtools.get_pixmapand will needguidata >= 3.17.0. This will be handled separately in DataLab.