Skip to content

Feature/237 raw image import - #396

Open
ThomasMalletCodra wants to merge 13 commits into
developfrom
feature/237-raw-image-import
Open

ThomasMalletCodra wants to merge 13 commits into
developfrom
feature/237-raw-image-import

Conversation

@ThomasMalletCodra

@ThomasMalletCodra ThomasMalletCodra commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Closes #237
Closes #256
Closes #381

Image exports need destination-specific controls to avoid unsafe implicit data
conversion, while automated saves and legacy formats must remain compatible.
The export workflow now uses Sigima capabilities and records only completed,
replayable file outputs with stable object references.

* [NEW] : Add a format-aware image export dialog after filename selection
  with safe normalization defaults and supported data type choices
* [CHG] : Forward optional export parameters to Sigima while preserving legacy
  formats and explicit noninteractive saves
* [FIX] : Record only confirmed and successful exports in file-output history
  and replay them against their original object UUIDs
* [FIX] : Skip stale object references without misaligning filenames or export
  parameters
* [FIX] : Preserve mixed export parameter and empty entries across history
  encoding and HDF5 persistence, including legacy representations
* [NEW] : Add focused tests for format defaults, cancellation, failed writes,
  stale UUIDs, explicit saves, legacy formats, and history round trips
* [NEW] : Add French translations for the image export interface and warnings
RAW imports need user-provided binary layout parameters and deterministic history replay without changing scientific pixel values.

	* [NEW] : Add the RAW parameter dialog and optional same-folder file expansion
	* [CHG] : Preserve per-file parameter snapshots across successful imports and history replay
	* [NEW] : Apply white-is-zero display options and add unit, replay and translation coverage
Generate translated export controls from Sigima capabilities and preview the exact encoded result in memory. Add robust option serialization and validation handling, format-aware defaults, focused tests, and French translations.
…-raw-image-import

# Conflicts:
#	datalab/gui/panel/image.py
@ThomasMalletCodra ThomasMalletCodra self-assigned this Oct 14, 2026
* [UPDATE] : DataLab.spec:
        - collect lazily loaded imagecodecs submodules as hidden imports
        - exclude optional numcodecs and zarr integration modules
    * [UPDATE] : doc/release_notes/release_1.04.md:
        - add compressed TIFF bug fix entry (fixes #381)
    * [UPDATE] : doc/locale/fr/LC_MESSAGES/release_notes/release_1.04.po:
        - translate new release note entries
    * [UPDATE] : doc/locale/fr/LC_MESSAGES/features/advanced/plugins.po:
        - update catalog with new Sigima image format docstrings
@ThomasMalletCodra ThomasMalletCodra added this to the V1.4.0 milestone Oct 14, 2026
* [UPDATE] : doc/release_notes/release_1.04.md:
        - state that CCITT compression requires Python 3.11 or later
    * [UPDATE] : doc/locale/fr/LC_MESSAGES/release_notes/release_1.04.po:
        - update translation of the compressed TIFF entry
* [UPDATE] : datalab/gui/panel/base.py:
        - replace per-file edit/prepare import hooks with a batch edit_import_parameters
        - add param argument to load_from_files (applied without dialog)
        - collect all files in load_from_directory and ask import parameters once
        - record import_filenames/import_params in directory history entries
        - reuse recorded parameters on replay, only asking for new files
    * [UPDATE] : datalab/gui/panel/image.py:
        - remove RawImageImportGUIParam and the "open all RAW files" option
        - ask whether to apply the same parameters to several RAW files
        - open one dialog for all files, or one dialog per file
        - add is_raw_image_file helper
    * [UPDATE] : datalab/history/action.py:
        - remap save_to_files object_uuids in copy_with_uuid_remap
        - update docstring listing remapped references
    * [UPDATE] : datalab/control/remote.py:
        - accept serialized import parameters in load_from_files/load_from_directory
        - serialize import parameters in RemoteClient like calc
    * [UPDATE] : datalab/control/baseproxy.py:
        - add param argument to load_from_files/load_from_directory
    * [UPDATE] : datalab/gui/main.py:
        - forward import parameters to the current panel
    * [UPDATE] : datalab/aiassistant/tools/builtin.py:
        - add optional RAW import_parameters to the load_file tool
    * [UPDATE] : datalab/locale/fr/LC_MESSAGES/datalab.po:
        - translate new RAW import strings, remove obsolete entries
    * [UPDATE] : datalab/tests/features/image/raw_import_unit_test.py:
        - adapt tests to the batch import mechanism
        - add shared/per-file/cancel tests for several RAW files
        - add param argument and directory import/replay tests
    * [UPDATE] : datalab/tests/features/image/raw_import_app_test.py:
        - add test_raw_directory_import_replay_reuses_recorded_parameters
    * [UPDATE] : datalab/tests/features/common/history_model_unit_test.py:
        - add test_action_copy_remaps_exported_object_uuids
    * [UPDATE] : datalab/tests/aiassistant/test_tool_registry.py:
        - add load_file import parameter tests
* [UPDATE] : datalab/gui/panel/image.py:
        - derive ImageExportDialog from ProcessingPreviewDialog
        - remove the dedicated plot and preview button
        - add compute_image_export_preview, run in the preview process
        - enable the preview when the dialog opens
        - validate the export configuration on accept
        - use the main window preview executor cache and close the preview on exit
    * [UPDATE] : datalab/widgets/processingpreview.py:
        - add optional prepare_param hook converting edited parameters before request
        - report parameter conversion errors as invalid parameters
    * [UPDATE] : datalab/tests/features/image/export_unit_test.py:
        - replace tests of the removed dedicated preview
        - add tests for preview function, preview on open, invalid options and accept
    * [UPDATE] : datalab/locale/fr/LC_MESSAGES/datalab.po:
        - remove obsolete "Export options" entry
* [UPDATE] : datalab/gui/panel/image.py:
        - disable TIFF compression level and predictor for unsupported compressions
        - ignore inactive parameters and format options when exporting
        - add per-format help on option constraints
        - remove automatic slider on TIFF compression level
        - reject complex images upfront for formats without complex data types
        - show only the message of expected validation errors in the preview
    * [UPDATE] : datalab/widgets/processingpreview.py:
        - add optional format_error hook for preview error messages
    * [UPDATE] : datalab/tests/features/image/export_unit_test.py:
        - add test_tiff_options_follow_compression
        - add test_lzw_with_leftover_compression_level_is_exportable
        - add test_inactive_gamma_and_invert_are_ignored
        - add help/slider, error formatting and complex image tests
    * [UPDATE] : datalab/locale/fr/LC_MESSAGES/datalab.po:
        - translate new help and warning messages
Assisted by : Opus 5.5
* [REMOVE] : datalab/tests/features/control/remote_import_param_unit_test.py:
        - remove test affected by a pre-existing remote loading instability
# Conflicts:
#	datalab/control/baseproxy.py
#	datalab/control/remote.py
#	datalab/locale/fr/LC_MESSAGES/datalab.po

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants