Skip to content

Conversation

@AndrewSazonov
Copy link
Member

⚠️ This PR is created automatically to trigger the release pipeline. It merges the accumulated changes from develop into master.

It is labeled [maintainer] auto-pull-request and is excluded from release notes and version bump logic.

AndrewSazonov and others added 5 commits September 16, 2025 13:23
* Simplifies branch processing and installs badgery

* Adds flag for unit test coverage in .badgery.yaml

* Updates dependencies and easydiffraction shortcuts

* Adds dashboard build trigger post-tutorial tests

* Updates tutorial command names in workflow script

* Simplifies installation by using all extras

* Adds dashboard build trigger after PyPI tests

* Refactors sample model creation architecture

* Updates sample model API in tests

* Updates sample model API in tutorials

* Refactors argument validation and simplifies CIF reading

* Update SampleModel API and adjust linked phases check

* Increase McCabe complexity limit and add dependency

* Fixes dev-install command in pixi.toml

* Adds centralized logging utility

* Adds function to parse CIF-style numeric strings to ufloat

* Refactors core object model for improved structure

* Refactors ID attributes to use entry_name consistently

* Refactors alias and constraint classes

* Refactors core objects to enhance category handling

* Refactors core components and structures for enhanced clarity

* Adds CIF alias utility functions to enhance data handling

* Add test suite for SampleModels components and fix imports

* Updates package versions in dependency lock file

* Introduce allowed attributes and update collection initialization

* Adds allowed attributes to mixins for parameter handling

* Refactors CIF conversion by removing method calls

* Enhances attribute validation in CryspyCalculator

* Allow editing of uncertainty and free attributes

* Refines CIF data parsing and handling logic

* Modifies model initialization and linking

* Refines instrument and peak attribute handling

* Fixes bug in parameter setting logic

* Refactors parameter attributes and access methods

* Enhances background and model flexibility

* Rename error handling methods and adjust datablock management

* Refactors entry name handling in core classes

* Standardizes 'entry_name' to 'category_entry_name'

* Enhances sample model and plotting configuration

* Enhances item management in CategoryCollection

* Adds allowed attributes to SingleCrystalExperiment

* Replaces human-readable ID generation with property access

* Comments out unit test step from pre-push hook

* Disables physical parameter bounds

* Refines physical constraints and simplifies code

* Refactors method calls to use add_from_args for clarity

* Refactors method calls and updates numeric constants

* Updates parameter bound handling and method naming

* Refactors method calls to improve clarity

* Refines attribute access and updates test methods

* Refactors item addition in CategoryCollection

* Refactors unit tests to use full_cif_names

* Refactors parameter access and method calls

* Refines attribute naming for clarity in background model

* Adjusts default renderer for PyCharm environment

* Updates attribute checks, adds data files, renames scripts

* Adds extra test configuration and refines unit tests

* Refactors attribute access and control logic

* Enhances logging and error handling mechanism

* Simplifies error handling in logging with 'raise from'

* Refactors core objects for modular design

* Improves logging behavior during pytest

* Simplifies py-format-fix command

* Refactors parameter descriptor hierarchy

* Enhances logging and documents parameter abstraction

* Refactors test cases to align with new API and data structures

* Cleans up test imports and simplifies assertions

* Refactors singleton tests for consistency

* Refines descriptor/parameter handling logic

* First attempt to add CifMixin to parameter classes

* Updates CifMixin.cif_uid to use full_name

* Refactors parameter abstraction layer

* Enhances Logger configuration with environment variables

* Refactors lazy loading in __init__.py for efficiency

* Consolidates attribute guard mixins and refactors logic

* Move mixins to guarded base class

* Refactors core component architecture

* Replace enforce_type with typeguard for runtime type checking

* Remove legacy signature from add method and update tests

* Enhances category item renaming logic (ugly temporary workaround)

* Refactors attribute handling in parameter classes

* Enhances Project class with type-checking and encapsulation

* Refines __str__ method and fixes super call

* Enhances collection handling by implementing AbstractCollection

* Enhances type safety with generics for collections

* Add SPDX license headers to source files

* Initialize base class in CollectionBase constructor

* Refactors parameter access for consistency

* Removes unnecessary Generic typing

* Work in progress

* Enhances identity resolution and string representation

* Improves parameter retrieval in collections

* Adds `full_name` property to multiple classes

* Simplifies attribute handling in GuardedBase

* Renames full_name property to unique_name

* Refines validation logging messages

* Adds configurable error reaction in Logger

* Enhances type error diagnostics in checktype decorator

* Giant refactoring

* Refactors parameter handling in FitResults

* Refactors descriptor properties and enhances validation

* Removes unused TODO comments and corrects assertions

* Adds SPDX license headers to source files

* Enhances space group validation logic

* Refactors validation logic for atom site properties

* Adds missing newline in atom_sites.py

* Refactors CIF conversion and updates test format

* Reformats code for consistency and clarity

* Refines parameter handling and improves validation

* Refactors tests to improve readability and maintainability

* Enhances atom site configuration in tutorials

* Enhances x-axis data selection for plotting

* Refactors atom site addition for clarity and consistency

* Fixes parameter limit handling

* Fixes attribute assignment and model access

* Refactors data extraction with list comprehensions

* Refactors constraint handling and data access methods

* Enhances peak profile type handling in experiments

* Removes unused public attributes method

* Improves logging settings and Python path resolution

* Refines validators with enhanced logging

* Adds parameter validation and logging enhancements

* Replaces diagnostics and validators with an enhanced implementation

* Adds Diagnostics for Type Override and Enhances Collections

* Enhances validation and logging mechanisms

* Refactors validator and identity handling

* Replaces RegexValidator with AttributeSpec for validation

* Maintain parent linkage for nested objects

* Corrects attribute access in identity resolution

* Refactors validation types to use DataTypes enum

* Refines type validation logic in diagnostics

* Replace UUID with secure random UID generation

* Refines atom site validations and logging

* Enhances validation logic and diagnostics handling

* Relocates CifHandler to new IO module for clarity

* Refactors experiment enums structure

* Updates peak mixin imports for better organization

* Refactors instrument setup for improved modularity

* Refactors background module implementation

* Refactors CIF serialization methods

* Refactors CIF serialization to centralized functions

* Removes obsolete CIF conversion methods

* Restructures experiment type classes for modular design

* Refactors instrument handling and restructures sample models

* Reorganizes import paths to category_items

* Refactors component naming for better clarity

* Refactors code to categorize collections

* Reorganizes import paths to use category_collections modules

* Refactors background type handling for clarity

* Refactors background handling and reorganizes enums

* Refactors background and instrument modules organization

* Refactors instrument and peak base class imports

* Refactors argument validation in ExperimentFactory

* Refactors import paths for consistency

* Refactors datastore architecture for segregation of types

* Fixes property getter for uncertainty

* Add and update SPDX license headers across files

* Adds package structure documentation generator

* Renames datastore type modules for clarity

* Refactors package structure for clarity

* Renames and restructures package directories for clarity

* Renames core modules for consistency

* New unit tests

* Refactors factory method usage in test suite

* Add unit tests for various components in easydiffraction

* Adds unit test for crystallographic and experimental data

* Enables macOS h5py dependency for validation

* Replaces scaffold tests with concrete test implementations

* Replaces test scaffolds with concrete tests

* Adds comprehensive test coverage for core modules

* Format tests

* Enhances SPDX header update for tests directory

* Cleans up tests and refines pytest configuration

* Refines config and reorganizes files for tmp exclusion

* Adds comprehensive docstrings to Analysis classes and descriptors

* Enhances experiment class documentation

* Updates .gitignore for test and linter caches

* Removes Python cache before packaging artifacts

* Updates python_socketio and mkdocs-jupyter dependencies

* Adds multiple Python cache removal steps

* Adds dev-install step in GitHub workflow

* Removes redundant dev-install command from workflow

* Reorganizes dependency configuration

* Refactors Python cache removal in workflow

* Refactors to use Factory classes for model and experiment creation

* Enhances enums with descriptive methods

* Enhances documentation with docstrings

* Add missing documentation for core modules

* Adds docstrings for improved code documentation

* Updates pytest configuration for test management

* Refactors CryspyCalculator and updates SPDX compliance

* Remove commented code and add documentation placeholders

* Adds environment variable for CI branch
* Converts print statements to logging

* Refactors plotting module to display module

* Refines parameter handling and logging functionality

* Refines CIF serialization and updates docs

* Refines renderer architecture and error handling

* Refines logging and utils import structure

* Refines table rendering and error handling logic

* Enhances logging with customizable rich formatting

* Refactors plotting modules and updates test expectations

* Refactors logger and environment detection functions

* Switches logging from log to console

* Improves axis scaling for asciichartpy

* Refactors logging utility with enhanced features

* Renames utils module for clarity

* Enhances display and tracking in analysis module

* Disable Jupyter notebook output scrolling

* Rename environment checks for clarity

* Remove redundant type ignores and streamline exception handling

* Improves console width detection for flexible environments

* Refactors logging modes and console output methods

* Enhances logging utilities with improved docs

* Removes unused imports and obsolete functions

* Refactors logging architecture for clarity

* Removes unused show_index parameter

* Refactors logger configuration setup

* Reorders render_table arguments for clarity

* Refactors parameter table rendering and identity handling

* Removes redundant header handling in render_table

* Adds structure refinement example scripts

* Refactors test environment detection logic

* Enhances table styling with padding and font size

* Refactors logger imports and removes lazy loading

* Suppresses user warnings in pytest configuration

* Adds SPDX license headers to utils.py

* Reorganizes display and logging structure

* Refines logging initialization and aliases

* Activates commented pre-commit hooks

* Adds SPDX license identifiers to init files

* Enhances Pandas table styling

* Removes Jupyter-specific logic from CIF renderer

* Updates deps

* Temporarily disable Jupyter scroll in MkDocs

* Improves table styling for enhanced readability

* Add conditional doc build for branch environments
* Adds CIF parsing capabilities to Category and Parameter classes

* Refines error logging using _log_name

* Refactors for CIF parsing functionality

* Enhances CIF parsing support in experiments: 1st step

* Enhances CIF parsing in SampleModelFactory

* Refactors CIF handling in SampleModelFactory and enhances DatablockItem with categories property

* Enhances CIF handling in SampleModelFactory

* Refactors ExperimentType initialization to use default values and updates experiment handling in factory methods

* Refactors dependencies section in pixi.toml

* More refactoring of old datastore towards new data

* Refactors symmetry constraint methods in AtomSites and Cell classes for clarity and consistency

* Refactors category update handling and updates CIF serialization methods

* Refactors update methods and intruduces update_priority attribute

* Refactors category update calls in CalculatorBase and Fitter classes for consistency

* Refactors calculation methods and updates category handling in analysis and experiment modules

* Refactors PdCwlData and PdDataBase classes for improved structure and clarity

* Refactors category update handling in Project class and consolidates update logic for plotting methods

* Refactors PdDataBase and PdCwlData classes to introduce d-spacing calculations and update methods for improved data handling

* Refactors CIF serialization methods by removing unused datastore functions and simplifying experiment data handling

* Adds Refln and ReflnData classes for single crystal diffraction data handling; removes obsolete ScDatastore class

* Refactors data handling by replacing 'datastore' references with 'data'

* Clean up code across multiple modules

* Refactors Analysis class by removing unused calculator variable and simplifies fitting method; deletes obsolete datastore test files

* Refactors add methods in various classes

* Refactors LineSegment and ExcludedRegion classes to add 'id' parameter

* Refactors one of the tutorials to fit new API

* Refactors PolynomialTerm, LineSegment, and ExcludedRegion classes to add 'id' parameter

* Add missing SPDX license headers

* Refactor PolynomialTerm, LineSegment, and ExcludedRegion classes to set default values for parameters

* Mark parameters as free if uncertainty is present in CIF deserialization

* Update Biso values in lbco.cif to include uncertainty and remove unnecessary data

* Add minimal example for Rietveld refinement using LBCO and HRPT data

* Remove unnecessary blank line before showing project summary report

* Refactor minimal example to streamline project and experiment definitions, removing unnecessary logging and aliases

* Remove trailing whitespace from multiple files

* Refactor joint_fit_experiments method call to use 'add' instead of 'add_from_args'

* Refactor add method in Experiments and SampleModels to allow explicit sample/experiment input

* Refactor Chebyshev and LineSegment models to include identifier descriptors and improve documentation

* Refactor PdDataPoint classes to update point_id type and adjust mixin order

* Refactor SampleModelFactory to introduce _create_minimal method for creating default models

* Update tutorials

* Add new data classes for powder diffraction and total scattering experiments

* Temporary disable unit tests hook from pre-push checks

* Add d_spacing property to PdDataBase for calculated d values

* Refactor tutorials

* Refactor format_value function to improve value formatting and precision handling

* Refactor category_collection_to_cif function for improved readability and structure

* Add analysis output for free parameters in project

* Fix category_entry_name handling to ensure it defaults to an empty string

* Update default values in ExperimentType to use enum values directly

* Update functional tests following API changes

* Update unit tests following new API

* Refactor sample model and experiment addition methods

* Enhance Chebyshev and LineSegment classes with improved background handling and id property

* Refactor Chebyshev and LineSegment background tests to use mock parent data structure

* Enhance Analysis and Fitter classes to update categories during fitting process

* Refactor CategoryCollection to optimize child instance creation logic

* Refactor test_fit_neutron_pd_cwl_hs to improve background data handling and enhance project setup

* Refactor sample model addition in tutorials to use updated method

* Fix fill_value in LineSegmentBackground interpolation to use correct y values

* Update category handling in Fitter

* Refactor time-of-flight to follow new API

* More fixes of the functional tests

* Refactor test_joint_fit

* More refactoring in fitting tests

* More refactoring of the tutorials to follow new API

* Fix formatting

* Update unit tests to follow new API

* Refactor CIF string handling in Experiment and SampleModel factories

* Refactor package structure by removing obsolete files and adding new data modules

* Add '_pd_proc.intensity_norm' and '_pd_proc.intensity_norm_su' to CIF handler

* Add integration tests for reading CIF files from Scipp

* Rename functional tests to integration tests

* Add SPDX license headers to test_scipp-cif.py

* Extend tutorial section in docs

* Refactor test for reading CIF files from Scipp

* Bump deps

* Pin pdffit2 to be <1.5.2 due to the issues or changed API in the latest versions

* Add temporary workaround for pdffit2 installation in CI workflow

* Update dependencies in pixi.toml and pyproject.toml for pdffit2 compatibility

* Remove temporary workaround for pdffit2 installation in CI workflow

* Add id-based data download API; update tutorials

* Adopts download_data in tests; prunes local data

* Excludes TOF regions in neutron PD fit test

* Removes repo download util; updates index hash

* Updates tutorial to new data download API

* Adapts tests to index-based download_data

* Uses returned data paths instead of hardcoded ones

* Debugging (3089,) (3098,) (3089,)

* Runs script tests serially (temporarily?)

* More debugging

* Runs tutorial scripts in isolated subprocesses

* Streamlines tutorial tests in CI workflow

* Justifies subprocess use in tests; adds noqa tags
@AndrewSazonov AndrewSazonov added the [maintainer] auto-pull-request Automated release PR. Excluded from changelog/versioning. label Dec 15, 2025
@codecov
Copy link

codecov bot commented Dec 15, 2025

Codecov Report

❌ Patch coverage is 82.75702% with 743 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.26%. Comparing base (52262f7) to head (07ae323).
⚠️ Report is 9 commits behind head on master.

Files with missing lines Patch % Lines
src/easydiffraction/utils/logging.py 72.92% 59 Missing and 16 partials ⚠️
src/easydiffraction/analysis/analysis.py 60.44% 49 Missing and 4 partials ⚠️
src/easydiffraction/display/plotting.py 69.13% 42 Missing and 8 partials ⚠️
src/easydiffraction/project/project.py 67.14% 42 Missing and 4 partials ⚠️
src/easydiffraction/io/cif/serialize.py 75.14% 27 Missing and 16 partials ⚠️
src/easydiffraction/experiments/experiment/base.py 72.03% 28 Missing and 5 partials ⚠️
...rc/easydiffraction/experiments/experiment/enums.py 55.55% 30 Missing and 2 partials ⚠️
src/easydiffraction/utils/environment.py 53.12% 26 Missing and 4 partials ⚠️
src/easydiffraction/display/tablers/pandas.py 35.00% 26 Missing ⚠️
src/easydiffraction/utils/utils.py 71.91% 21 Missing and 4 partials ⚠️
... and 48 more
Additional details and impacted files
@@             Coverage Diff             @@
##           master     #109       +/-   ##
===========================================
+ Coverage   71.57%   82.26%   +10.68%     
===========================================
  Files          47       88       +41     
  Lines        3550     5451     +1901     
  Branches      373      454       +81     
===========================================
+ Hits         2541     4484     +1943     
+ Misses        894      802       -92     
- Partials      115      165       +50     
Flag Coverage Δ
functional ?
integration 69.95% <71.50%> (?)
unittests 72.44% <75.53%> (+11.57%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@AndrewSazonov AndrewSazonov merged commit e9f7d8e into master Dec 15, 2025
50 of 54 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[maintainer] auto-pull-request Automated release PR. Excluded from changelog/versioning.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants