# Version 3.3 # ## Version 3.3.0 ## In this release, test coverage is 72%. 💥 New features: * Array editor now supports row/column insertion/deletion: * Added `variable_size` argument to `setup_and_check` method * The feature is disabled by default (backward compatible) * It supports standard arrays, masked arrays, record arrays and N-dimensional arrays * New dataset read-only mode: * Added `readonly` argument to `DataSet` constructor * This is useful to create a dataset that will be displayed in read-only mode (e.g. string editing widgets will be in read-only mode: text will be selectable but not editable) * The items remain modifiable programmatically (e.g. `dataset.item = 42`) * New dataset group edit mode: * Added `mode` argument to `DataSetGroup.edit` method, with the following options: * `mode='tabs'` (default): each dataset is displayed in a separate tab * `mode='table'`: all datasets are displayed in a single table * In the new table mode, the datasets are displayed in a single table with one row per dataset and one column per item * Clicking on a row will display the corresponding dataset in a modal dialog box 🛠️ Bug fixes: * Qt console: * Fixed `RuntimeError: wrapped C/C++ object of type DockableConsole has been deleted` when closing the console widget (parent widget, e.g. a `QMainWindow`, was deleted) while an output stream is still writing to the console (e.g. a `logging` handler which will flush the output stream when closing the application) * This concerns all console-related widgets: `DockableConsole`, `Console`, `InternalShell`, `PythonShellWidget` and `ShellBaseWidget` * Code editor: fixed compatibility issue with PySide6 (`AttributeError: 'QFont' object has no attribute 'Bold'`)