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

JP-3900: Tests, clean up, and code style for residual_fringe #9242

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

melanieclarke
Copy link
Collaborator

@melanieclarke melanieclarke commented Mar 4, 2025

Resolves JP-3900

Add test coverage for residual_fringe and update code style to new standards. Also, increase the minimum pin for BayesicFitting to make sure it's compatible with numpy 2.

While writing unit tests, I noticed some minor bugs, inefficiencies, and unused code, so I cleaned these out as well. None of these changes are likely to have any impact on the user -- this is just a maintainability improvement.

The truth files for the new regression test were generated with the code on the main branch, to make sure this PR does not introduce any regresssions.

Tasks

  • request a review from someone specific, to avoid making the maintainers review every PR
  • add a build milestone, i.e. Build 11.3 (use the latest build if not sure)
  • Does this PR change user-facing code / API? (if not, label with no-changelog-entry-needed)
    • write news fragment(s) in changes/: echo "changed something" > changes/<PR#>.<changetype>.rst (see below for change types)
    • update or add relevant tests
    • update relevant docstrings and / or docs/ page
    • start a regression test and include a link to the running job (click here for instructions)
      • Do truth files need to be updated ("okified")?
        • after the reviewer has approved these changes, run okify_regtests to update the truth files
  • if a JIRA ticket exists, make sure it is resolved properly
news fragment change types...
  • changes/<PR#>.general.rst: infrastructure or miscellaneous change
  • changes/<PR#>.docs.rst
  • changes/<PR#>.stpipe.rst
  • changes/<PR#>.datamodels.rst
  • changes/<PR#>.scripts.rst
  • changes/<PR#>.set_telescope_pointing.rst
  • changes/<PR#>.pipeline.rst

stage 1

  • changes/<PR#>.group_scale.rst
  • changes/<PR#>.dq_init.rst
  • changes/<PR#>.emicorr.rst
  • changes/<PR#>.saturation.rst
  • changes/<PR#>.ipc.rst
  • changes/<PR#>.firstframe.rst
  • changes/<PR#>.lastframe.rst
  • changes/<PR#>.reset.rst
  • changes/<PR#>.superbias.rst
  • changes/<PR#>.refpix.rst
  • changes/<PR#>.linearity.rst
  • changes/<PR#>.rscd.rst
  • changes/<PR#>.persistence.rst
  • changes/<PR#>.dark_current.rst
  • changes/<PR#>.charge_migration.rst
  • changes/<PR#>.jump.rst
  • changes/<PR#>.clean_flicker_noise.rst
  • changes/<PR#>.ramp_fitting.rst
  • changes/<PR#>.gain_scale.rst

stage 2

  • changes/<PR#>.assign_wcs.rst
  • changes/<PR#>.badpix_selfcal.rst
  • changes/<PR#>.msaflagopen.rst
  • changes/<PR#>.nsclean.rst
  • changes/<PR#>.imprint.rst
  • changes/<PR#>.background.rst
  • changes/<PR#>.extract_2d.rst
  • changes/<PR#>.master_background.rst
  • changes/<PR#>.wavecorr.rst
  • changes/<PR#>.srctype.rst
  • changes/<PR#>.straylight.rst
  • changes/<PR#>.wfss_contam.rst
  • changes/<PR#>.flatfield.rst
  • changes/<PR#>.fringe.rst
  • changes/<PR#>.pathloss.rst
  • changes/<PR#>.barshadow.rst
  • changes/<PR#>.photom.rst
  • changes/<PR#>.pixel_replace.rst
  • changes/<PR#>.resample_spec.rst
  • changes/<PR#>.residual_fringe.rst
  • changes/<PR#>.cube_build.rst
  • changes/<PR#>.extract_1d.rst
  • changes/<PR#>.resample.rst

stage 3

  • changes/<PR#>.assign_mtwcs.rst
  • changes/<PR#>.mrs_imatch.rst
  • changes/<PR#>.tweakreg.rst
  • changes/<PR#>.skymatch.rst
  • changes/<PR#>.exp_to_source.rst
  • changes/<PR#>.outlier_detection.rst
  • changes/<PR#>.tso_photometry.rst
  • changes/<PR#>.stack_refs.rst
  • changes/<PR#>.align_refs.rst
  • changes/<PR#>.klip.rst
  • changes/<PR#>.spectral_leak.rst
  • changes/<PR#>.source_catalog.rst
  • changes/<PR#>.combine_1d.rst
  • changes/<PR#>.ami.rst

other

  • changes/<PR#>.wfs_combine.rst
  • changes/<PR#>.white_light.rst
  • changes/<PR#>.cube_skymatch.rst
  • changes/<PR#>.engdb_tools.rst
  • changes/<PR#>.guider_cds.rst

@melanieclarke
Copy link
Collaborator Author

melanieclarke commented Mar 4, 2025

Regression tests here:
https://github.com/spacetelescope/RegressionTests/actions/runs/13662806122

No failures, including the new test, checked against truth files from main.

Copy link

codecov bot commented Mar 4, 2025

Codecov Report

Attention: Patch coverage is 96.87500% with 9 lines in your changes missing coverage. Please review.

Project coverage is 75.30%. Comparing base (e2f4801) to head (c018352).
Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
jwst/residual_fringe/utils.py 89.70% 7 Missing ⚠️
jwst/residual_fringe/residual_fringe.py 98.87% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #9242      +/-   ##
==========================================
+ Coverage   73.67%   75.30%   +1.62%     
==========================================
  Files         369      369              
  Lines       36407    36326      -81     
==========================================
+ Hits        26824    27356     +532     
+ Misses       9583     8970     -613     

☔ 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.

@melanieclarke melanieclarke marked this pull request as ready for review March 5, 2025 13:53
@melanieclarke melanieclarke requested review from a team as code owners March 5, 2025 13:53
@melanieclarke
Copy link
Collaborator Author

melanieclarke commented Mar 5, 2025

FYI @drlaw1558 - while implementing tests for residual_fringe, I noticed some TODOs in the code, to remove the contrast and quality calculations and output table. I think they were leftover from some of your work on residual fringe correction. I went ahead and removed the unused code here.

Copy link
Collaborator

@emolter emolter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks much cleaner Melanie, thanks for this! I added a few small comments.

@melanieclarke
Copy link
Collaborator Author

Thanks for reviewing @emolter! I'll get those fixes in shortly.

@drlaw1558
Copy link
Collaborator

FYI @drlaw1558 - while implementing tests for residual_fringe, I noticed some TODOs in the code, to remove the contrast and quality calculations and output table. I think they were leftover from some of your work on residual fringe correction. I went ahead and removed the unused code here.

Thanks- given its heritage some of this code is pretty convoluted.

@melanieclarke
Copy link
Collaborator Author

Thanks- given its heritage some of this code is pretty convoluted.

Yes, it looks like it could use a more general assessment and refactor. In particular, it would be nice to see if we can either replace or reimplement the BayesicFitting dependency with something less fragile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants