Skip to content

add SWVO to PyHC - #390

Merged
sapols merged 2 commits into
heliophysicsPy:mainfrom
sahiljhawar:add-swvo
Sep 21, 2026
Merged

sapols merged 2 commits into
heliophysicsPy:mainfrom
sahiljhawar:add-swvo

Conversation

@sahiljhawar

Copy link
Copy Markdown
Contributor

Add SWVO to the PyHC project list

Adds SWVO (https://github.com/GFZ/SWVO) to _data/projects.yml.

SWVO is a Python package for downloading and reading space-weather data and geomagnetic indices (Kp, Dst, Hp, F10.7, SuperMAG electrojet/substorm indices, solar wind parameters from ACE/DSCOVR/OMNI/ENLIL, and plasmasphere density predictions).

Self-assessed grades:

  • Community: Good
  • Documentation: Good
  • Testing: Good
  • Software Maturity: Partially met
  • PHEP 3: Good
  • License: Good

Here's the evaluation doc: SWVO_PyHC_Evaluation.md

Contact: Sahil Jhawar (jhawar@gfz.de), Bernhard Haas (bhaas@gfz.de)

@sapols

sapols commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Thanks for the submission, @sahiljhawar! Looks like a great project. Just wanted to let you know I've seen this, but it might take me a week or so to get to it.

@sapols

sapols commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Hi again @sahiljhawar, sorry for the delay but I finally got around to reviewing this.

First off, this is a great package that will be a great addition to PyHC! We’d love to have you, there are just a couple things to discuss first.

  1. Thanks for including a PyHC Standards Evaluator report in this PR—I love to see it. However, I regenerated a new report using Fable 5.1 and its grades disagreed with yours. I’d recommend these instead:

    • Community: Good
    • Documentation: Partially met
    • Testing: Good
    • Software Maturity: Good
    • PHEP 3: Partially met (but this becomes Good if you relax the pins per item 2 below, so use that grade if you do)
    • License: Good

Please review the new report and update your grades here if you agree?

The main reasons for the changes are: Software Maturity is actually “good” because the package meets all “musts” in our standards (“shoulds” are not strict requirements), Documentation is “partially met” mostly because of missing docstrings, and PHEP 3 is demoted to “partially met” because your requirements unfortunately violate our PHEP 3 support timeline.

  1. Related to the PHEP 3 item above: those same pins currently make SWVO uninstallable in the PyHC Environment, our Docker/Binder image that ships all PyHC packages together.

The good news is fixing the PHEP 3 issues would also fix PyHC Environment compatibility, and tests I ran locally seemed to indicate your package still works with the different minimum bounds we’d require. We publish two reusable GitHub Actions in pyhc-actions that should simplify this for you—I’d recommend adding them to your CI if you’re game:

- uses: heliophysicsPy/pyhc-actions/phep3-compliance@v1
- uses: heliophysicsPy/pyhc-actions/pyhc-env-compat@v1

I’ll note that none of this is a hard requirement for merging; if you'd rather not make these changes we can still accept SWVO. But it would mean leaving SWVO out of the PyHC Environment which would obviously be a shame. I'd rather get compatibility sorted first if you're up for it! (Once a release with the relaxed pins is on PyPI, I’d merge this—with PHEP 3 marked Good.)

@sahiljhawar

sahiljhawar commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor Author

Hi @sapols, thanks for the detailed review. Here's where things stand after working through your feedback:

Done

  • Relaxed the minimum pins to satisfy PHEP 3: numpy>=2.2, scipy>=1.15, xarray>=2024.10, matplotlib>=3.10. Verified locally with phep3-check and pyhc-env-compat-check from pyhc-actions.
  • Added the phep3-compliance@v1 and pyhc-env-compat@v1 GitHub Actions to CI going forward.
  • Deprecated the RBMDataSet subpackage in favor of el_paso (docstring .. warning::/deprecation notices, a runtime deprecation log on instantiation, and excluded it from ruff/ty checks). It was the source of most of the docstring gaps you flagged, so rather than complete its docstrings, we're retiring it (however we want to still keep it since some of our colleagues are using it).
  • Completed missing docstrings across the rest of the package (modules, classes, functions), added Examples sections to all read()/download_and_process() methods, and fixed a couple of docstring/signature mismatches. For example, PlasmaspherePredictionReader documented a folder: str parameter that didn't match the actual data_dir: Optional[Path] signature.

Under consideration

  • new version / PyPi release. should be done soon today

Updated self-assessed grades

  • Community: Good
  • Documentation: Good (was Partially met, docstring gaps closed)
  • Testing: Good

@sahiljhawar

Copy link
Copy Markdown
Contributor Author

@sapols We now have new version SWVO v1.2.8 with the required changes

SWVO meets every "must" in the PyHC software maturity standard, so the grade is Good; the remaining gaps are "shoulds", which are not strict requirements.
@sapols
sapols merged commit d553397 into heliophysicsPy:main Sep 21, 2026
1 check passed
@sapols

sapols commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Fantastic work, @sahiljhawar. Thanks for the quick turnaround! SWVO is accepted into PyHC 🎉

I updated this PR to reflect that SWVO now earns Good in all six categories.

Relaxing those pins also sorted out PyHC Environment compatibility, so SWVO ships in the environment as of today's build.

I'm merging this now. SWVO now appears in:

One more thing, if you're up for it, we'd love for you to present SWVO at an upcoming PyHC telecon. We think our members would be interested to hear about it. If this sounds good to you, our PI Julie will get in touch to schedule that.

Welcome to PyHC! 👋

@sahiljhawar

Copy link
Copy Markdown
Contributor Author

@sapols Amazing, thank you!
Regarding the telecon, I will speak to colleagues and will let you know.

@sahiljhawar
sahiljhawar deleted the add-swvo branch September 22, 2026 07:53
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