-
Notifications
You must be signed in to change notification settings - Fork 171
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-3749: Add mypy type checking #8852
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #8852 +/- ##
==========================================
- Coverage 61.79% 61.79% -0.01%
==========================================
Files 377 377
Lines 38832 38827 -5
==========================================
- Hits 23997 23992 -5
Misses 14835 14835 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding changes related to lib
: LGTM
Leaving as just a comment since I did not do a full review.
Some failures in the first round of regtests related to over-zealous removal of things in extract1d, will look at this tomorrow or Monday and fix it |
new run of regression tests here after fixing the bug locally edit: all passing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything looks good from my perspective, pending review from Brett or Zach for the pyproject/tox changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- ci.yml = 👍
- pyproject.toml = 👍
- tox.ini = 👍
The configuration files look good to me.
Resolves JP-3749
Closes #8794
This PR adds type hint checking to the GitHub Actions workflow. The mypy configuration is nearly identical to the one in stcal, except that it disables checking imports globally instead of module-by-module. In order to bring the repository up to the standard required by these mypy checks, this PR also:
typing: ignore
flag in a few places, hopefully judiciously and with good reasonBefore all the mypy checks can pass, there are a few outstanding issues that need to be resolved:
__all__
injwst.datamodels
gets lots of classes fromstdatamodels.jwst.datamodels
appended to it. I think the discussion in MyPy not acknowledging __all__ python/mypy#1606 may be relevant, but I can't figure out a good solution that doesn't involve manually ignoring all ~20 places in the repository where we import a specific model type fromdatamodels
. Edit: I did decide to just manually ignore the 14 instances of this error. If someone has a better idea during PR review, I'm all ears.set_telescope_pointing
was type-hinted at some point, but the hints are either outdated or were never checked by mypy. These look like a fair amount of work to fix - perhaps removing them entirely is the best plan. Need to figure out if there would be objections to that. Edit: After discussing with @stscieisenhamer, I removed all type hints not directly related to the two dataclasses in there, and then found a sneaky way to make mypy ok with setting many of the attributes to None. There may still be a better solution but this one seems to work, at least.Tasks
Build 11.3
(use the latest build if not sure)no-changelog-entry-needed
)changes/
:echo "changed something" > changes/<PR#>.<changetype>.rst
(see below for change types)docs/
pageokify_regtests
to update the truth filesnews fragment change types...
changes/<PR#>.general.rst
: infrastructure or miscellaneous changechanges/<PR#>.docs.rst
changes/<PR#>.stpipe.rst
changes/<PR#>.datamodels.rst
changes/<PR#>.scripts.rst
changes/<PR#>.fits_generator.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