# Version 3.4

## Version 3.4.1

In this release, test coverage is 76%.

🛠️ Bug fixes:

- Issue #71 - Random segmentation faults with applications embedding `CodeEditor`

- Issue #70 - PermissionError: [Errno 13] Permission denied: ‘/usr/lib/python3/dist-packages/guidata/tests/data/genreqs/requirements.rst’

## Version 3.4.0

In this release, test coverage is 76%.

💥 New features:

- `dataset.io.h5fmt.HDF5Reader.read` method: added new `default` argument to set default value for missing data in the HDF5 file (backward compatible). The default value of `default` is `NoDefault` (a special value to indicate that no default value should be used, and that an exception should be raised if the data is missing).

- `widgets.codeeditor.CodeEditor`: added new `inactivity_timeout` argument to set the time (in milliseconds) to wait after the user has stopped typing before emitting the `CodeEditor.SIG_EDIT_STOPPED` signal.

- Added `execenv.accept_dialogs` attribute to control whether dialogs should be automatically accepted or not (default is `None`, meaning no automatic acceptance): this allows more coverage of the test suite. For now, this attribute has only been proven useful in `tests/dataset/test_all_features.py`.

- Added unit tests for HDF5 and JSON serialization/deserialization:

  - Testing an arbitrary data model saved/loaded to/from HDF5 and JSON files, with various data sets and other data types.

  - Testing for backward compatibility with previous versions of the data model (e.g. new attributes, removed attributes, etc.)

⚠️ API breaking changes:

- `guidata.dataset.io` module is now deprecated and will be removed in a future release. Please use `guidata.io` instead. This change is backward compatible (the old module is still available and will be removed in a future release). The motivation for this change is to simplify the module structure and to help understand that the scope of the `io` module is not limited to `dataset.DataSet` objects, but may be used for any kind of data serialization/deserialization.

📖 Documentation:

- Added missing `DataSetEditDialog` and `DataSetEditLayout` classes

- Added missing inheritance/member details on some classes

- Reduced table of contents depth in left sidebar for better readability