Skip to content

Release: merge develop into master#132

Merged
AndrewSazonov merged 6 commits intomasterfrom
develop
Mar 31, 2026
Merged

Release: merge develop into master#132
AndrewSazonov merged 6 commits intomasterfrom
develop

Conversation

@easyscience
Copy link
Copy Markdown
Contributor

@easyscience easyscience bot commented Mar 31, 2026

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.

easyscience[bot] and others added 6 commits February 11, 2026 12:52
* Implement the extinction category

* Implement the linked crystal category

* Add base class for single crystal experiments

* Clarify sy handling; move background property

* Update BraggScExperiment class

* Add SC Bragg reflection data and linked crystal

* Add single-crystal Bragg CW data mapping

* Remove unused linked crystal validator

* Add minimizer flag to calculator API

* Remove lru_cache; update data index hash

* Add single-crystal Tb2TiO7 HEiDi tutorial

* Add TODO about sy handling when loading CIF

* Add single-crystal support to Cryspy calculator

* Add stol propagation and d-spacing for SC data

* Add d-spacing computation and fix plotting checks

* Update SC tutorial

* Use Cryspy-calculated intensity output

* Update SC tutorial

* Update data index checksum

* Add new SC-TOF tutorial

* Add TOF single-crystal support via Cryspy

* Apply formatting

* Cache tutorials index; adjust Bragg SC test

* Add single-crystal F2 meas-vs-calc plot

* Update SG tutorials

* Add Single Crystal Diffraction section to docs

* Update SC tutorial

* Lower coverage threshold to 60%

* Clarify Miller index and intensity descriptions

* Add TODOs and fix docstring

* Remove ED tutorial data; tidy pyproject comments

* Remove kwargs from Refln init; add return type

* Add units to extinction parameters

* Add single-crystal neutron fitting tests

* Reduce Ruff excludes; lint/format tests

* Simplify single-crystal category initializers

* Rename refln_id to id per coreCIF

* Add CW/TOF SC ASCII import with wavelength

* Rename plot_sg to plot_sc for single-crystal

* Add single-crystal scatter comparison plotting

* Extract scatter trace creation to helper

* Rename traces for powder and single-crystal

* Use Plotly autorange; drop fixed axis limits

* Extract Plotly config to helper

* Centralize Plotly figure display logic

* Refactor Plotly figure creation and formatting

* Draw identity line in paper coordinates

* Add reusable Plotly layout helper

* Extract diagonal reference line helper

* Rename plot methods for powder/single-crystal

* Reformat Plotly plotter for readability

* Clarify diffraction plotter docstrings

* Add single-crystal plotting tests

* Remove deprecated plot alias; update tests

* Add sin(theta)/lambda to d-spacing conversion

* Update SC data API; compute d-spacing via util

* Fix reflection index attribute names

* Add single-crystal support to plotter base

* Unify powder/SC plotting with axis auto-detect

* Unify plotting API; replace d_spacing with x

* Rename all_x to unfiltered_x

* Rename meas/calc to intensity_*; add axis aliases

* Rename TotalData module to total_pd

* Update tests for sample-form and intensity API

* Log read/validation errors; import numpy globally

* Move instrument and extinction to SC base

* Split Bragg SC into CWL/TOF; update factory

* Refactor single-crystal instrument support

* Move instrument init to BraggPdExperiment

* Update tests for Pd/Sc instrument classes

* Add scattering-type aware x-axis defaults

* Increase CIF float precision to 8 decimals

* Update pixi lock

* Update docs code examples for style consistency

* Pin scipp for ARM macOS; use editable local pkg

* Refactor plotting; unify axis and data prep

* Add macOS 14.0 minimum version requirement

* Update plot_meas_vs_calc calls to use 'x' parameter for d_spacing
…ble-category API (#128)

* Refactor validation imports and remove unused DataTypes references

* Refactor value specification to use 'data_type' instead of 'type_' in AttributeSpec

* Refactor content_validator to validator in AttributeSpec

* Refactor Cell class constructor to use default parameters and simplify attribute setting

* Refactor AtomSite and SpaceGroup initializers to remove parameters and improve clarity

* Refactor constructors in multiple classes to remove parameters and use property setters

* Refactor add method to accept only keyword arguments for improved clarity

* Refactor initialization of descriptors in multiple classes for consistency

* Remove value initialization from validation class constructor

* Refactor parameter value specification to remove DataTypes dependency

* Refactor parameter initialization and property methods in mixin files

* Refactor: streamline CIF handler initialization and add public property comments

* Refactor ExperimentType initialization to use property setters

* Refactor ExperimentType initialization to use property setters

* Add temporary test script

* Initialize parent class in guard.py constructor

* Refactor peak-profile mixins to remove unused broadening and asymmetry methods

* Refactor broadening parameter comments and remove unused initializations in TofPeak

* Refactor parameter definitions to streamline unit assignments in various modules

* Refactor CIF handler initialization for clarity and consistency

* Refactor constructors in PdDataPoint mixins to remove kwargs

* Refactor parameters module to variable module; update imports across multiple files

* Refactor import statements for consistency and clarity

* Refactor sample models to structures in project and related files

* Refactor terminology from "sample" to "structure" in documentation and code comments

* More refactoring from sample models to structures

* Refactor factory methods, etc.

* Refactor method names from `add_from_scratch` to `create` for consistency across collections

* Rebuild classes structure

* Refactor validation module by removing unused type checking decorator

* Refactor PeakProfileTypeEnum to consider auto-extraction of peak profile info

* Add revised design for all factories

* Improve revised design for all factories

* Add copilot instructions for EasyDiffraction project

* Update all init files

* Refactor metadata handling

* Refactor type hints for optional parameters in collection.py

* Add per-file ignores for __init__.py in Ruff configuration

* Add TOF instrument and peak profile classes with compatibility and calculator support

* Clarify usage of keyword arguments in copilot instructions

* Add metadata dataclasses for factory-created classes

* Refactor setter methods for improved readability and consistency

* Refactor formatting of beam_mode and calculators in Chebyshev class

* Update copilot instructions to clarify beta project guidelines

* Update copilot instructions to clarify refactoring guidelines

* Add architecture documentation for EasyDiffraction library

* Refactor calculator management for joint and sequential fitting in experiments

* Refactor code blocks in architecture.md to specify shell syntax highlighting

* Document current and potential architectural issues in the codebase

* Document current and potential issues in architecture

* Document limitations of `FactoryBase` regarding constructor-variant registrations

* Refactor calculator and minimizer factory methods for consistency and clarity

* Refactor architecture documentation for improved clarity and consistency

* Refactor logging and docstring formatting in analysis and factory modules

* Refactor calculator and minimizer factory to use tag strings; update tests accordingly

* Refactor core factory structure to eliminate duplication and unify metadata handling

* Add initial experiment setup and analysis workflow for hrpt project

* Update easydiffraction version and SHA-256 hash in pixi.lock

* Refactor architecture documentation to clarify factory structures and display methods

* Remove unused exports from __init__.py to streamline module interface

* Refactor string quotes in test.py for consistency and readability

* unify CollectionBase key resolution, add __contains__ and remove()

* Make ExperimentType immutable after creation

* Make peak and background read-only public properties

* Document editable vs read-only property convention with _set_ private methods

* Standardize switchable-category naming convention

* Apply formatting

* Refactor Analysis class to instantiate calculator in __init__ and remove class-level attribute

* Remove duplicated symmetry methods from Structure

* Route constraint updates through validated setter

* Override _key_for in CategoryCollection and DatablockCollection

* Warn when switching background or peak profile type

* Document why minimisers bypass the value setter

* Replace 'lmfit (leastsq)' with 'lmfit' in tests, tutorials, and docs

* Consolidate revised-design-v5.md into architecture.md

* Apply formatting

* Update copilot instructions for linting and testing workflow

* Enable dirty-flag guard via _set_value_from_minimizer

* Add factory.py and metadata.py to package structure documentation

* Consolidate all issues into issues.md and update copilot instructions

* Move calculator from global Analysis to per-experiment

* Add Bragg+PDF joint tutorial, multi-experiment docs section, and test

* Temporarily disable Bragg+PDF joint fit until test is improved

* Add universal factories for Extinction and LinkedCrystal

* Add universal factories for all remaining categories

* Update tutorial #14

* Add switchable-category API to all factory-created categories

* Add switchable-category API for instrument and data on experiments

* Filter show_supported_instrument_types by experiment context

* Add target-audience and reliability instructions to copilot config

* Convert fit_mode to CategoryItem

* Convert fit_mode to factory-based category with enum comparison

* Add flat category structure rule to architecture.md

* Consolidate architecture docs and fix stale references

* Restructure help() to show Parameters, Properties, and Methods tables

* Auto-populate Analysis.help() from class introspection

* Refine eager-imports rule to document lazy-import exceptions

* Update tutorial structure in mkdocs.yml for clarity and consistency

* Update issues list

* Add instruction to run tutorial tests after changes

* Refactor background type naming for consistency

* Delete test.py

* Fix tutorial failures and stale calculator cache with excluded regions

* Update issues

* Update tutorial names and copyright year
* Apply new templates

* pixi run nonpy-format-fix

* pixi run py-lint-fix

* Disable some rules temporary

* pixi run py-format-fix

* Temporarily disable pydoclint until we are ready

* Update license headers

* Convert notebooks

* Clean up

* Add missing deps to test workflow

* Add parameter-property consistency checker

* Use structural type extraction in param consistency checker

* Enhance property docstrings and type hints for clarity and consistency

* Enhance docstrings by including type annotations for setter arguments

* Ignore E501 lint rule in favor of formatter and W505

* Update line length settings in pyproject.toml for consistency and clarity

* Simplify property docstring template and checker

* Wrap long property docstrings to satisfy max-doc-length

* Switch from docformatter to format-docstring

* Apply formatting

* Apply formatting

* Convert docstrings from google to numpy style: Step 1

* Remove docstring-format-check

* Convert docstrings from google to numpy style: Step 2

* Convert docstrings from google to numpy style: Step 3

* Enable ANN rules

* Apply linting and formatting

* Run docstring format fix for src/ only

* Add types to the Parameters sections in docstrings

* Apply docstrings formatting

* More rules

* Bump dependencies

* Add some missing docstrings to public methods

* New combination of rules

* Make all docstring summaries to take single line

* More docstring fixes

* Remove unused script

* Fix D401: use imperative mood in all docstring summaries

* More formatting and linting

* More fromatting

* Add missing D101 class docstrings across 9 files

* Add missing D105 magic method docstrings across 3 files

* Minor changes

* Fix broken nav entry, tutorial links, and anchor in docs

* Bump dependencies

* Refactor tutorial display to remove description and update title in index

* Add platform-specific dependencies for GNU Scientific Library and libc++ on macOS

* Consolidate GNU Scientific Library dependency for macOS in pixi.toml and test.yml
* Create and use load_numeric_block method in io/ascii.py

* Disable some rules for docs/

* Initial implementation of the new tutorial

* Add add_from_zip_path to Experiments collection

* Update data index hash

* Use data from web repo

* Use another dataset

* Save project after every fit

* Clean up

* Initial implementation of plotting parameter evolution

* Replace conditions category with diffrn using CIF naming

* Simplify extract_metadata API and make data loading explicit

* Fix fit_results to store snapshot parameters per experiment

* Clean up tutorial ed-17.py duplicate plot_param calls

* Fix test to use save_as() matching current ProjectInfo.path default

* Add integer index support to CollectionBase.__getitem__

* Rename plot_param to plot_param_series with versus descriptor

* Clean up tutorial

* Update docs with new notebook

* Simplify constraints API to single expression string

* Fix docstring lint errors in CollectionBase.__getitem__

* New dataset and update tutorials

* Update T-scan notebook

* Fix Windows CI UnicodeDecodeError in script test runner
* Create and use load_numeric_block method in io/ascii.py

* Disable some rules for docs/

* Initial implementation of the new tutorial

* Add add_from_zip_path to Experiments collection

* Update data index hash

* Use data from web repo

* Use another dataset

* Save project after every fit

* Clean up

* Initial implementation of plotting parameter evolution

* Replace conditions category with diffrn using CIF naming

* Simplify extract_metadata API and make data loading explicit

* Fix fit_results to store snapshot parameters per experiment

* Clean up tutorial ed-17.py duplicate plot_param calls

* Fix test to use save_as() matching current ProjectInfo.path default

* Add integer index support to CollectionBase.__getitem__

* Rename plot_param to plot_param_series with versus descriptor

* Clean up tutorial

* Update docs with new notebook

* Simplify constraints API to single expression string

* Fix docstring lint errors in CollectionBase.__getitem__

* New dataset and update tutorials

* Update T-scan notebook

* Add fit verbosity parameter with full, short and silent modes

* Update notebook

* Add project-level verbosity with full, short and silent modes

* Improve grammar and consistency in ed-17 tutorial

* Fix docstring lint errors in data loading methods

* Increase notebook cell timeout to 1200s for T-scan tutorial
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 31, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.04%. Comparing base (3d9262e) to head (5a82427).
⚠️ Report is 7 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #132      +/-   ##
==========================================
- Coverage   82.93%   82.04%   -0.90%     
==========================================
  Files          89      133      +44     
  Lines        5463     6916    +1453     
  Branches      453      581     +128     
==========================================
+ Hits         4531     5674    +1143     
- Misses        761     1037     +276     
- Partials      171      205      +34     
Flag Coverage Δ
integration 68.50% <ø> (-0.03%) ⬇️
unittests 71.54% <ø> (-1.96%) ⬇️

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 2f1a707 into master Mar 31, 2026
43 of 44 checks passed
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.

1 participant