Add complete OMNI variable support#83
Open
Simon060899 wants to merge 4 commits into
Open
Conversation
Collaborator
|
@Simon060899 in child classes which are inheriting from OMNI, I think tz enforcement and time inequality assertion can be removed since parent class already have them. A similar refactoring should be performed for DSTOMNI to make things consistent. let me know if you need help |
Collaborator
|
@Simon060899 I think https://github.com/Simon060899/SWVO/blob/codex%2Fomni-all-variables/docs/omni_implementation_report.md can be removed from when we merge the PR. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
variables=None,variables="all", ordered subset selection, normalized aliases, andavailable_variables()metadata discoveryCompatibility and robustness
Existing calls retain their previous schemas because the new argument is optional. The implementation also adds explicit validation for cadence-incompatible selections, empty or invalid selections, mixed timezone inputs, invalid ranges, malformed NASA responses, invalid time fields, corrupt caches, and unsupported hourly record widths.
Cache replacement remains atomic and uses
pathlibandtempfile, so the implementation is portable across Linux, macOS, and Windows-style path handling.Documentation
Verification
The manually dispatched Linux/macOS Python 3.11–3.14 matrix established that every OMNI test passes on every requested combination. Seven jobs failed only the existing live SuperMAG test (zero or one of two requested days returned); macOS/Python 3.11 received both responses and passed completely. The Ty job reports the same two RBMDataSet diagnostics reproduced on untouched
upstream/main; neither is in a file changed by this PR.Reviewer entry points
swvo/io/omni/variables.py— authoritative variable metadata and selection rulesswvo/io/omni/omni_high_res.py— complete OMNIWeb request, parsing, and monthly cache-upgrade flowswvo/io/omni/omni_low_res.py— version-tolerant OMNI2 parsing and yearly cache-upgrade flowdocs/omni_variables.rst— complete public guidedocs/omni_implementation_report.md— design and verification report