Skip to content

Conversation

@AndrewSazonov
Copy link
Member

This PR introduces a substantial refactor of CIF parsing, data handling, and category update logic across the codebase.

Key changes include:

  • Unified CIF parsing and serialization support across Category, Parameter, SampleModel, and Experiment
  • A unified category update workflow based on update_priority, with consistent propagation through Analysis, Fitter, and Calculator layers
  • Migration from independent datastore usage to the new data category
  • Improved handling of d-spacing calculations and free parameters
  • Introduction of new data classes for powder diffraction, total scattering, and single-crystal reflection data
  • Introduction of a new download-by-id data API
  • CI and dependency fixes, including workarounds for pdffit2
  • Refactoring of tutorials, unit tests, and integration tests to align with the updated API

…culations and update methods for improved data handling
…tions and simplifying experiment data handling
…handling; removes obsolete ScDatastore class
…implifies fitting method; deletes obsolete datastore test files
@AndrewSazonov AndrewSazonov added this to the New API Stabilization milestone Dec 15, 2025
@AndrewSazonov AndrewSazonov added the [scope] enhancement Adds/improves features (major.MINOR.patch) label Dec 15, 2025
@codecov
Copy link

codecov bot commented Dec 15, 2025

Codecov Report

❌ Patch coverage is 85.98248% with 112 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.26%. Comparing base (17ded39) to head (139c3c4).
⚠️ Report is 1 commits behind head on develop.

Files with missing lines Patch % Lines
src/easydiffraction/io/cif/serialize.py 66.66% 19 Missing and 8 partials ⚠️
...ydiffraction/sample_models/sample_model/factory.py 42.85% 13 Missing and 3 partials ⚠️
...diffraction/experiments/categories/data/factory.py 61.29% 6 Missing and 6 partials ⚠️
src/easydiffraction/experiments/experiment/base.py 68.75% 7 Missing and 3 partials ⚠️
src/easydiffraction/project/project.py 11.11% 8 Missing ⚠️
src/easydiffraction/utils/utils.py 83.67% 5 Missing and 3 partials ⚠️
.../easydiffraction/experiments/experiment/factory.py 88.00% 4 Missing and 2 partials ⚠️
...ion/experiments/categories/background/chebyshev.py 75.00% 5 Missing ⚠️
...sydiffraction/experiments/categories/data/total.py 95.57% 4 Missing and 1 partial ⚠️
...iffraction/experiments/categories/data/bragg_pd.py 98.27% 2 Missing and 1 partial ⚠️
... and 8 more
Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #108      +/-   ##
===========================================
+ Coverage    81.31%   82.26%   +0.94%     
===========================================
  Files           89       88       -1     
  Lines         5117     5451     +334     
  Branches       412      454      +42     
===========================================
+ Hits          4161     4484     +323     
+ Misses         810      802       -8     
- Partials       146      165      +19     
Flag Coverage Δ
functional ?
integration 69.95% <83.85%> (?)
unittests 72.44% <59.32%> (-1.26%) ⬇️

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 b799bed into develop Dec 15, 2025
46 of 47 checks passed
@AndrewSazonov AndrewSazonov deleted the cif-parsing branch December 18, 2025 20:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[scope] enhancement Adds/improves features (major.MINOR.patch)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants