Skip to content

Release/v3.2.0#222

Merged
ChaitanyaChawak merged 99 commits into
mainfrom
release/v3.2.0
Jun 5, 2026
Merged

Release/v3.2.0#222
ChaitanyaChawak merged 99 commits into
mainfrom
release/v3.2.0

Conversation

@jeipollack

@jeipollack jeipollack commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Summary

This is the release-3.2.0 PR in completion of milestone:
All changelog fragments have been collected into CHANGELOG.md.
Repeatability tests with this branch passed.

What’s changed

  • Updated CHANGELOG.md

How to test / verify

Outline steps for reviewers or maintainers to validate the changes.
Include commands, scripts, or datasets if relevant.
Full validation results should be referenced in the associated issue, not pasted here.

  • Step 1
  • Step 2

Scope

Indicate the type of PR:

  • Feature
  • Bug fix
  • Hotfix
  • Documentation / process change
  • Internal / refactor
  • Release

Optionally, note if this PR is part of a larger milestone or set of related PRs.

Changelog

Did this PR introduce user-visible changes?
If yes, a Scriv changelog fragment must be added and committed.

  • Changelog fragment added (if applicable)

Reviewer Checklist

Reviewers should confirm the following before approving and merging:

  • The PR targets the correct base branch (develop, or main for release PRs)
  • The PR is assigned to the developer
  • Appropriate labels are applied
  • The PR is included in relevant projects and/or milestones
  • Description clearly explains what has changed
  • Issue references included, if applicable
  • Code and documentation adhere to current standards (ruff)
  • Documentation updates included, if relevant
  • CI tests are passing
  • All reviewer comments have been addressed

Next Steps / Notes (if applicable)

Any follow-up actions, known issues, or reminders for maintainers.

jeipollack and others added 30 commits February 26, 2026 13:56
* refactor(data): add SimulationDataLoader and TensorFlowDatasestConverter

* refactor(data): deprecate DataHandler and add DataHandlerFactory

- Update configs_handler.DataConfigHandler to use DataHandlerFactory
- Write scriv fragment
- Correct scriv fragment of previous commit which did not uncomment edited blocks

* Update, add, and deprecate data unit tests

- add unit tests for SimulationDataLoader and TensorFlowDatasetConverter
- update existing DataHandler and DataConfigHandler unit tests with backward compatibility
- add new fixtures and helper methods
- add pytest markers to pyproject.toml

* refactor: add data loading trigger in DataHandlerFactory

* Add target_field parameter to select stamps for training

- Add target_field training and test sections in example data_config.yaml
- Update simulation_data_loader to raise error if target_field is
  missing
- Update fixtures and unit tests related to data_config handling

* refactor: add load_data flag to DataHandlerFactory.create_from_config arg list

* Add simPSF as class attribute

* Save and convert all fields to tf float32

* Replace convert_dict with convert_inference_data

* Replace convert_dict with convert_psf_dict

* update methods in tensorflow_converter

- rename convert_dict to convert_psf_dict
- update convert_psf_dict to accept a target_field representing images
  to convert tf float
- change functionality of convert_inference_data to match inference data
  handling pipeline

* fix: update unit tests to validate object attribute sed_data

* fix: update test module with changes in tensorflow_converter.py

* Bump up version to 3.2.0

* fix: update doc string for convert_inference_data and format

* fix: update factory to structure of inference dataset

* fix: auto-correct of syntax

* fix: update unit tests with behaviour of simulation_data_loader.py

* update: add breaking change to changelog fragment

* update: remove unused import from unit test module

---------

Co-authored-by: Jennifer Pollack <jennifer.pollack@cea.fr>
Move config handlers from single monolithic file into their respective
task packages while maintaining backward compatibility via lazy imports.
Add ConfigHandler abstract base class to enforce consistent interface.

Changes:
- Add ConfigHandler ABC requiring run() method and ids attribute
- Move config handlers to task packages:
  * DataConfigHandler → data/data_config_handler.py
  * TrainingConfigHandler → training/training_config_handler.py
  * MetricsConfigHandler → metrics/metrics_config_handler.py
  * PlottingConfigHandler → plotting/plotting_config_handler.py
- Refactor configs_handler.py to registry-only (ABC + helper functions)
- Add lazy imports via __getattr__ for backward compatibility
- Register handlers automatically in wf_psf/__init__.py

Tests:
- Add TestConfigHandlerABC for ABC enforcement
- Reorganize into TestConfigRegistry and TestTrainingConfigHandler classes
- Add tests for all registered handlers inheriting from ConfigHandler
- Update import paths throughout test suite

Backward compatibility:
- Old imports still work via __getattr__ lazy loading
- Registry functions (get_run_config, set_run_config) unchanged
- TYPE_CHECKING guard satisfies static analysis tools
- Add DataAdapter abstraction to unify dataset handling
- Add factory for constructing adapters from loaders
- Introduce TrainingDataAdapter for training-specific inputs/targets
- Move dataset normalization and canonicalization logic into adapter
…eline

- Simplify SimulationDataLoader to only load raw datasets
- Update TensorFlowDatasetConverter interface
- Remove duplicated processing logic in data utilities
- Remove ZernikeInputs and ZernikeFactory classes
- Add ZernikeDataset dataclass to expose Zernike-related inputs
- Apply minor formatting and doc string corrections
- Update DataConfigHandler to expose params and metadata
- Simplify TrainingConfigHandler data config handling
- Normalize data parameters upstream
- Add new data configuration example files with new and updated parameters entries
- Apply data adapter set up in metrics_config_handler
- Update datasets and keys for data access in metrics_interface
- Add simPSF arg to evaluate_model in metrics_interface
- Modify parameter and arg names in metrics_interface
- Change `n_bins_lda` to `n_bins_lambda` in metrics_config.yaml
…red_keys arg

- Correct type hints syntax to comply with 3.9+
- Add missing required_keys arg to convert_dataset required for TF
  conversion
- Update ValueError message with correct hints in factory.py
- Fix doc string and SEDs key (lowercase) in tensorflow_converter
- Set `result_dict=dict(dataset)` to keep all data (not overwrite) in
  tensorflow_converter
- Add import `ensure_tensor`
- Add positions attribute and replace previous position extraction
  method
- Convert positions attribute to TensorFlow type
- Correct train/split index error due to evaluating wrong dataset
  - Use canonical keys inside `_split` method to iterate over correct
    dataset size
- Remove unnecessary code left in by accident
- Use clearer doc strings to all files
- Add missing training fraction parameters for un-split datasets
- Update `data_adapter.py` and `data_config_handler.py` to use constants
- Update _split method to use canonical keys class attribute
Jennifer Pollack added 27 commits June 5, 2026 15:03
quality

- Add configurable schema_mode for inference workflows
- Simplify nested inference and training configuration namespaces
- Add structured logging for inference pipeline operations
- Replace untyped adapter initialization with explicit optional type hints
- Update parameter description for clarity
- Update installation guide on environment and dependencies
- Update configuration guide section with new schema_mode parameter
…adapter

- Add helper method for converting inference data to tensorflow type
- Re-arrange sequence of data adaptation
- Replace model_data_adapter with inference_data_adapter
@ChaitanyaChawak ChaitanyaChawak merged commit ab991f4 into main Jun 5, 2026
2 checks passed
@ChaitanyaChawak ChaitanyaChawak deleted the release/v3.2.0 branch June 5, 2026 13:06
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