Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change IQmod to dataclass #1001

Draft
wants to merge 2 commits into
base: next
Choose a base branch
from
Draft

Change IQmod to dataclass #1001

wants to merge 2 commits into from

Conversation

backmari
Copy link
Contributor

@backmari backmari commented Feb 25, 2025

Description of work:

As part of harmonizing the annular binning output, we want to create a base class for 1D intensity profiles, from which IQmod and the new class I1Dannular will inherit. This is a draft PR to explore changing IQmod from namedtuple to dataclass, since inheriting from a namedtuple does not easily allow adding additional attributes. By using dataclass with the frozen flag, we can emulate immutability like for namedtuple.

Check all that apply:

  • added release notes (if not, provide an explanation in the work description)
  • updated documentation
  • Source added/refactored
  • Added unit tests
  • Added integration tests
  • Verified that tests requiring the /SNS and /HFIR filesystems pass without fail

References:

Manual test for the reviewer

Check list for the reviewer

  • release notes updated, or an explanation is provided as to why release notes are unnecessary
  • best software practices
    • clearly named variables (better to be verbose in variable names)
    • code comments explaining the intent of code blocks
  • All the tests are passing
  • The documentation is up to date
  • code comments added when explaining intent

Execution of tests requiring the /SNS and /HFIR filesystems

It is strongly encouraged that the reviewer runs the following tests in their local machine
because these tests are not run by the GitLab CI. It is assumed that the reviewer has the /SNS and /HFIR filesystems
remotely mounted in their machine.

cd /path/to/my/local/drtsans/repo/
git fetch origin merge-requests/<MERGE_REQUEST_NUMBER>/head:mr<MERGE_REQUEST_NUMBER>
git switch mr<MERGE_REQUEST_NUMBER>
conda activate <my_drtsans_dev_environment>
pytest -m mount_eqsans ./tests/unit/ ./tests/integration/

In the above code snippet, substitute <MERGE_REQUEST_NUMBER> for the actual merge request number. Also substitute
<my_drtsans_dev_environment> with the name of the conda environment you use for development. It is critical that
you have installed the repo in this conda environment in editable mode with pip install -e . or conda develop .

@codecov-commenter
Copy link

codecov-commenter commented Feb 25, 2025

Codecov Report

Attention: Patch coverage is 94.82759% with 6 lines in your changes missing coverage. Please review.

Project coverage is 86.13%. Comparing base (df03fa4) to head (d5b9ad4).

Files with missing lines Patch % Lines
src/drtsans/dataobjects.py 94.44% 6 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             next    #1001      +/-   ##
==========================================
+ Coverage   86.10%   86.13%   +0.03%     
==========================================
  Files          97       97              
  Lines       10757    10802      +45     
==========================================
+ Hits         9262     9304      +42     
- Misses       1495     1498       +3     

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

@backmari backmari changed the title (exploration) Change IQmod to dataclass Change IQmod to dataclass Feb 25, 2025
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