Skip to content

Feature dtcenter/METbaseimage#61 python 3.14 conda envs#3293

Merged
georgemccabe merged 37 commits intodevelopfrom
feature_py314_conda_envs
May 4, 2026
Merged

Feature dtcenter/METbaseimage#61 python 3.14 conda envs#3293
georgemccabe merged 37 commits intodevelopfrom
feature_py314_conda_envs

Conversation

@georgemccabe
Copy link
Copy Markdown
Collaborator

@georgemccabe georgemccabe commented Apr 29, 2026

Part of work for dtcenter/METbaseimage#61

Pull Request Testing

  • Describe testing already performed for these changes:

Ran use cases, then debugged issues with failing use cases relating to pandas 2>3

  • Recommend testing for the reviewer(s) to perform, including the location of input datasets, and any additional instructions:

@jprestop : Review changes to conda environment files for your own understanding

Use case owners: Please review changes to use case python scripts for your awareness and differences in the output (if any).

@DanielAdriaansen :

  • land/PointStat_fcstUFS_obsGDAS_CTP_HI/create_raob_mask_file.py

@CPKalb

  • s2s_mjo/common/OMI_driver.py
  • s2s_mjo/UserScript_obsERA_obsOnly_PhaseDiagram/PhaseDiagram_driver.py
  • s2s_stratosphere/UserScript_fcstGFS_obsERA_StratospherePolar/bias_rmse_plot_driver.py
  • fire/PointStat_fcstHRRR_obsMADIS_FrazierFire (differences in output)

@willmayfield

  • unstructured_grids/StatAnalysis_fcstLFRIC_UGRID_obsASCII_PyEmbed/ugrid_lfric_mpr.py
  • Do these changes include sufficient documentation updates, ensuring that no errors or warnings exist in the build of the documentation? [Yes]

  • Do these changes include sufficient testing updates? [Yes]

  • Will this PR result in changes to the test suite? [No]

    If yes, describe the new output and/or changes to the existing output:

  • Do these changes introduce new SonarQube findings? [No]

    If yes, please describe:

  • Please complete this pull request review by 5/4/2026.

Pull Request Checklist

See the METplus Workflow for details.

  • Add any new Python packages to the METplus Components Python Requirements table.
  • For any new datasets, an entry to the METplus Verification Datasets Guide.
  • Review the source issue metadata (required labels, projects, and milestone).
  • Complete the PR definition above.
  • Ensure the PR title matches the feature or bugfix branch name.
  • Define the PR metadata, as permissions allow.
    Select: Reviewer(s) and Development issue
    Select: Milestone as the version that will include these changes
    Select: Coordinated METplus-X.Y Support project for bugfix releases or METplus-Wrappers-X.Y.Z Development project for official releases
  • After submitting the PR, select the ⚙️ icon in the Development section of the right hand sidebar. Search for the issue that this PR will close and select it, if it is not already selected.
  • After the PR is approved, merge your changes. If permissions do not allow this, request that the reviewer do the merge.
  • Close the linked issue and delete your feature or bugfix branch from GitHub.

…rsions -- these will be specified explicitly based on what is used by conda/mamba to install them after the envs are successfully created to preserve the state of the environments when they were created
…pecifying versions to preserve state of environments upon rebuild
…quirements explicitly due to a bug in conda on MacOS where the metplotpy env cannot be cloned due to a weird issue with x264 package caching
…ault from fork to forkserver), to prevent crash when importing via python embedding
…ith escape characters and delimeters when switching to pandas 3
@georgemccabe georgemccabe requested review from CPKalb and jprestop April 29, 2026 20:37
@github-project-automation github-project-automation Bot moved this to 🩺 Needs Triage in METplus-13.0 Development Apr 29, 2026
@georgemccabe georgemccabe added this to the METplus-13.0.0 milestone Apr 29, 2026
@georgemccabe georgemccabe moved this from 🩺 Needs Triage to 🔎 In review in METplus-13.0 Development Apr 29, 2026
@coveralls
Copy link
Copy Markdown

coveralls commented Apr 29, 2026

Coverage Report for CI Build 25222239880

Coverage remained the same at 92.054%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 10471
Covered Lines: 9639
Line Coverage: 92.05%
Coverage Strength: 1.84 hits per line

💛 - Coveralls

@georgemccabe georgemccabe marked this pull request as ready for review April 30, 2026 14:51
@georgemccabe
Copy link
Copy Markdown
Collaborator Author

georgemccabe commented Apr 30, 2026

The differences in these outputs are negligible image diffs:

medium_range:12 -- medium_range/PointStat_fcstCREDIT_GFS_obsGDAS_6hrRealtime
s2s_mid_lat:0-2 -- s2s_mid_lat/UserScript_obsERA_obsOnly_WeatherRegime
clouds:8 -- clouds/GridStat_fcstGFS_obsGFS_cloudFracLayer
land:2 -- land/PointStat_fcstUFS_obsISMN_SoilMoistureTemp (map is shifted slightly north but points are in the same locations)

The following have rounding differences that come from metpy functions that can produce slightly different results

medium_range:8 -- medium_range/TCStat_SeriesAnalysis_fcstGFS_obsGFS_FeatureRelative_SeriesByLead_PyEmbed_Multiple_Diagnostics
land:1 -- land/PointStat_fcstUFS_obsGDAS_CTP_HI

CPKalb
CPKalb previously approved these changes May 1, 2026
Copy link
Copy Markdown
Contributor

@CPKalb CPKalb left a comment

Choose a reason for hiding this comment

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

Examined the differences. All of the changes I saw result either from small changes in Metpy functions, or negligible image differences.

jprestop
jprestop previously approved these changes May 1, 2026
Copy link
Copy Markdown
Collaborator

@jprestop jprestop left a comment

Choose a reason for hiding this comment

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

Thanks for all of your work on this @georgemccabe and for including me in the PR. I have reviewed changes to the conda environment files.

@georgemccabe georgemccabe dismissed stale reviews from jprestop and CPKalb via 7d36ac2 May 1, 2026 14:56
@georgemccabe georgemccabe merged commit ae3091d into develop May 4, 2026
79 of 88 checks passed
@github-project-automation github-project-automation Bot moved this from 🔎 In review to 🏁 Done in METplus-13.0 Development May 4, 2026
@georgemccabe georgemccabe deleted the feature_py314_conda_envs branch May 4, 2026 15:27
georgemccabe pushed a commit that referenced this pull request May 4, 2026
@DanielAdriaansen
Copy link
Copy Markdown
Contributor

I talked with @georgemccabe offline on several of the differences including from the CTP/HI model_applications/land use case and the medium_range multiple diagnostic use case computing Saturation Equivalent Potential Temperature (sept). These use cases utilize MetPy and Python embedding to perform calculations, and the differences observed in the output from these use cases changed but in a very small way relative to the magnitude of typical values for the fields being computed. It's hard to fully track down where the differences are introduced, as it could be from an updated version of MetPy, some of its dependencies, or some other dependencies within the Python installation. For the CTP/HI use case, an iterative solver is used during the computation of the moist lapse rate, which could be an obvious area where differences could originate but we did not track it down explicitly. We feel the differences were small enough to approve updating the baseline data.

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

Labels

None yet

Projects

Status: 🏁 Done

Development

Successfully merging this pull request may close these issues.

5 participants