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 [bot] pull request and is excluded from release notes and version bump logic.

henrikjacobsenfys and others added 11 commits September 19, 2025 10:56
* add coverage.yaml

* fix typo

* Add toml, gitignore and basic folder structure

* add dummy test

* add some dummy code to check if code coverage works

* set up coverage

* Add BSD 3-Clause License

Added the BSD 3-Clause License to the project.

* Update pyproject.toml for hatchling build system

* move dummy code to add source folder

* change dummy tests

* change import

* Enhance coverage report command in CI workflow

* Create __init__.py

* Add GitHub Actions workflow for unit testing

* Add  __pycache__ to .gitignore

---------

Co-authored-by: Andrew Sazonov <AndrewSazonov@users.noreply.github.com>
* Add detailed balance and tests
* add coverage.yaml

* fix typo

* Add toml, gitignore and basic folder structure

* add dummy test

* add some dummy code to check if code coverage works

* set up coverage

* Add BSD 3-Clause License

Added the BSD 3-Clause License to the project.

* Update pyproject.toml for hatchling build system

* move dummy code to add source folder

* change dummy tests

* change import

* Enhance coverage report command in CI workflow

* Create __init__.py

* Add GitHub Actions workflow for unit testing

* remove dummies, add sample model and components

* Fixing type issues

* update typing, remove a method that will be introduced later

* More type

* Add example

* More type fixing

* more typing...

* Update detailed balancing

* Update eample and detailed balance calculation

* Update gitignore

* Update example

* Update example

* Remove pycache

* Remove features to make pull request smaller

* try to fix coverage

* Fix some minor issues

* Formatting

* remove dummy code

* Added many tests and updated a few style things

* More tests

* And a few more tests

* rename folder to sample_model

* split compoments into different files

* update type hinting

* Update units, remove unused tests

* Split tests into components

* Update handling of incorrect units

* Update warnings to handle parameter input

* Remove Parameters as input :(

* first step to making attributes

* remove get_parameter

* changed class descriptions

* Update minimum width to be nonzero

* Added minimum for area

* Update evaluate expressions

* Update copy

* Remove unneeded checks in evaluate

* Update docstring of evaluate

* Update evaluate of Gaussian

* Check NaN and inf

* Make equations slightly easier to read

* Add setters and getters for gaussian

* Update tests

* Update doc strings

* Add getters and setters

* Update tests of gaussian

* Add WHEN THEN EXPECT to tests

* Add tests of the getters and setters

* Add tests to DHO

* Update tests

* And a bit more test

* ruff

* Update units to allow scipp units

* add WHEN THEN EXPECT to DHO

* add WHEN THEN EXPECT to DeltaFunction

* add WHEN THEN EXPECT to Gaussian

* Add WHEN THEN EXPECT to Lorentzian

* add more WHEN THEN EXPECT to tests

* fixed warnings in tests

* Update polynomial to accept units

* Add some explanation to polynomial component

* rename a few tests

* make evaluate a bit easier

* Handle sc.DataArray as input

* Add some tests and handle some comments

* Update delta function

* Add checks to prevent setting negative widths

* Move unit to ModelComponent

* Update polynomial, various small fixes

* Update tests

* parametrize

* Parametrize tests of setters

* Delete unneeded tests

* Update test of get_parameters

* Update polynomial

* Add EPSILON to delta function

* Update delta function and make x sorted

* Update polynomial

* Update copy

* Final fixes

---------

Co-authored-by: Andrew Sazonov <AndrewSazonov@users.noreply.github.com>
Use Parameter Injection when making model components, which removes a lot of unneccesary code and makes serializing work.

* Use parameter injection

* Update to allow Parameters as input for serialisation

* fix test

* Remove outcommented code

* Update Lorentzian

* Update Voigt

* And tests of voigt and Lorentzian

* Update DHO

* move convert_unit to ModelComponent

* Update tests

* Update polynomial

* More tests

* Add a test

* First attempt at mixin

* remove unneeded code

* remove output from example

* rename some things

* Added tests of mixin, outcommented some tests in Gaussian

* Update test

* Remove outcommented code

* Respond to review comments

* Clear example notebook

* Move MINIMUM_WIDTH and MINIMUM_AREA
Collection of components such as Gaussians, Lorentzians etc. to be used for modelling.
Add Brownian diffusion model, which creates ComponentCollections at desired Q with Lorentzians with width determined by the diffusion constant.
Create sample, resolution and background models.
Also introduces a temporary fix to the weakref bug in corelib messing up the tests.
* copier

* fix tests

* update dependencies

* update toml

* fix test?

* update global object
* Add basic sample_model and tests

* Clean up, fix tests

* Improve tests

* Update example and tests

* Add one more test

* Added a few tests

* a few more tests

* fix a test

* respond to PR comments

* Use CollectionBase

* Update example

* Update to new ModelComponent

* Cleanup and a few tests

* First implementation of convolution

* Update tests and convolution

* Cleaning up

* Fix test

* make tests nicer

* fix test

* fix test

* Small update

* Type hints and docstrings

* Add example and performance test

* Update tests

* Clear example notebook

* Add comment about thresholds

* Delete old examples

* small update

* Rename x to energy, add auto method

* Add example

* Fix a test

* update numerical convolution

* Polishing

* starting to refactor....

* Lots of refactoring

* Update example, fix minor things

* Allow energy to be a scipp variable

* Flesh out base class

* Update numerical convolution base

* Clean up numerical convolution

* First draft of refactor done, time for tests

* test convolution_base

* Add edge case tests

* Update performance test

* Small updates

* Begin test of numerical convolution base

* Update analytical convolution and some tests

* Finish test of analytical convolution

* Add comment

* test offset

* Remove offset

* Update example and fix offset bug

* small changes

* Small updates

* More tests of numerical convolution

* fix small bug

* 100% coverage of numerical convolution?

* 100%!

* Test numerical convolution

* small update

* Make convolution plan logic more robust

* update init test of convolution

* More tests

* remove outdated test

* Remove comments

* Update type hints

* 100% coverage?

* 100% coverage!

* Remove output from Jupyter notebook

* update notebook

* Respond to PR comments

* retry actions

* start fixing

* Update to ComponentCollection instead of SampleModel
* restructure tests and linting

* fix linting
* copier

* fix tests

* update dependencies

* update toml

* fix test?

* update global object

* Update to new templates structure

* Updates configuration files

* Update pixi.lock

* More updates

* Update pixi.lock

* Remove old files

* Format non-python files

* Move unit tests inside package subdirectory

* Move tutorials from examples/ to docs/docs/tutorials

* Update docs to use new tutorials

* Update docs assets

* Add ipympl and ipywidgets as deps for notebooks

* Temporary disable notebook conversion step

* Strip notebooks

* Move unit tests to tests/unit/...

* Add convolution example

* Format tests

* Install pytest-forked to isolate tests in subprocesses

* reset_global_object for sample_model tests only

* Enable ruff rule 'I'

* Enable ruff rule 'F82'

* Enable ruff rule 'E9'

* Enable ruff rule 'F'

* Enable ruff rule 'F63'

* Enable ruff rule 'S'

* Enable ruff rule 'W'

* Enable ruff rule 'E'

* Temporary fix for dashboard build

* Temporarily disable notebooks formatting check

* Another try to fix dashboard build

* Add dummy header cell to allow code cells to fill full width

* Strip notebook cells

* Add some api-reference files

* Clean up

* Trying to fix coverage and speed up reset_global_object

* Add small threshold for patch coverage

* Temporary: always run unit tests with "--cov" (helps with reseting global state)

* Use "--cov= --cov-report=" in pytest to enable faster global state fixture

* Add missing copyright headers

---------

Co-authored-by: henrikjacobsenfys <henrik.jacobsen.fys@gmail.com>
@AndrewSazonov AndrewSazonov added the [bot] pull request Automated release PR. Excluded from changelog/versioning. label Jan 27, 2026
@codecov
Copy link

codecov bot commented Jan 27, 2026

Codecov Report

❌ Patch coverage is 97.66804% with 34 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (master@4607c57). Learn more about missing BASE report.

Files with missing lines Patch % Lines
src/easydynamics/utils/detailed_balance.py 89.74% 7 Missing and 1 partial ⚠️
src/easydynamics/sample_model/sample_model.py 95.27% 3 Missing and 3 partials ⚠️
...dynamics/sample_model/components/delta_function.py 92.30% 2 Missing and 2 partials ⚠️
...ynamics/sample_model/components/model_component.py 95.06% 3 Missing and 1 partial ⚠️
...dynamics/convolution/numerical_convolution_base.py 97.45% 1 Missing and 2 partials ⚠️
.../easydynamics/sample_model/component_collection.py 97.58% 1 Missing and 2 partials ⚠️
...easydynamics/sample_model/components/polynomial.py 97.22% 1 Missing and 1 partial ⚠️
src/easydynamics/sample_model/model_base.py 97.70% 0 Missing and 2 partials ⚠️
...mple_model/diffusion_model/diffusion_model_base.py 96.00% 1 Missing ⚠️
src/easydynamics/utils/utils.py 96.55% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff            @@
##             master      #84   +/-   ##
=========================================
  Coverage          ?   97.66%           
=========================================
  Files             ?       28           
  Lines             ?     1458           
  Branches          ?      237           
=========================================
  Hits              ?     1424           
  Misses            ?       19           
  Partials          ?       15           
Flag Coverage Δ
integration 0.00% <0.00%> (?)
unittests 97.66% <97.66%> (?)

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.

@henrikjacobsenfys henrikjacobsenfys merged commit c50ef4d into master Jan 27, 2026
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[bot] pull request Automated release PR. Excluded from changelog/versioning.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants