Open
Conversation
Add specific loading method for each format
- fix bug where by a urn could be parsed even if unvalid
remove if case never reached
- trying to solve windows failing CI tests
trying to solve windows ci/tests failure
gmaze
added a commit
that referenced
this pull request
Jan 26, 2026
- fix some deprecation warning - also useful to debug Windows failing at #575
...to implement read-only attributes
- removed inspect to improve performance
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.
This PR aims to bring a more robust and exhaustive support for meta-data of the Argo vocabulary referencing system to Argopy.
The Argo vocabulary referencing system is a collection of reference tables, values and relationships used to constrain how Argo parameters can be filled in netcdf files. This referencing system is managed by the Argo Vocabulary Task Team (AVTT) and powered by the web-API of the NERC Vocabulary Server (NVS).
This PR provides:
Status of NVS support as of Argopy v1.4.0
Argopy already provides support for tables retrieval and basic search in table names with the ArgoNVSReferenceTables class:
However, this support is:Limitations
This PR will bring:New features objectives
definitionattribute have a dictionary likeLocal_AttributesandPropertiesstring that can be interpreted automatically to provide a dictionary like access to items)We can try to define the targeted audience as:
New APIs Documentation
Before writing down a full documentation, we need feedbacks from the AVTT, to settle down on the new API facades.
Once the API facade will get satisfactory feedbacks, we'll prepare complementary documentation sections for the AVTT README and ADMT documentation page.
In the mean time, here is a brut docstring copy/paste to illustrate what's the current features or use-cases.
Doc for ArgoReferenceTable
Rq: I hesitated to call this class
ArgoReferenceVocabularyorArgoVocabulary. But since the Argo user's manual uses "Reference Table", I opted to keep this approach and do not stick too much to the NVS jargon (which is still visible in the internal machinery though).The
ArgoReferenceTableinstance holds all the Argo referencing system information:SENSORin place ofR25),art.descriptionandart.version,art.date, etc...,art['CTD_TEMP_CNDC']; this means that the instance can be used almost like a dictionary (e.g. for inclusion assertion and iteration),art.search(),art.to_dataframe(),art.to_dict()Creation
Attributes
Indexing and values
Export methods
Search method
Doc for ArgoReferenceValue
Rq: I hesitated to call this class
ArgoReferenceConceptorArgoVocabularyConcept. But since the Argo user's manual uses "Reference Table", I opted to keep this approach and do not stick too much to the NVS jargon (which is still visible in the internal machinery though).The
ArgoReferenceValueinstance holds all the Argo referencing system information:arv.definitionandarv.version,arv.deprecated, etc...,arv.to_dict(),arv.to_json().Creation
Attributes
Extra attributes (only for values from R03, R14, R18)
Export methods
Doc for ArgoReferenceMapping
A mapping is a list of relationships between 1 concept (the 'subject') and others (the 'object'). Subjects are grouped by reference tables, as well as subjects. So that there will be one mapping between one ArgoReferenceTable and another.
Relationships between concepts can be:
In this high-level API I opted to remove the NVS jargon of 'skos' and 'owl', to simplify relationships understanding. But in order to avoid too much confusion for the AVTT, I also opted to keep "predicates" to refer to relationships. May be this is not the best choice and 'relations' could be preferred over 'predicates'.
List of known mappings:
ArgoSensorsub-module, but still in dev.Eg:
More details from the AVTT documentation:
https://github.com/OneArgo/ArgoVocabs?tab=readme-ov-file#ivb-mappings
Creation
Indexing and values
Export method
PR work
Short history for argopy dev. team:
This PR thus allows for the full NVS support to be merged without sensor-related features,
hence, replacing #545 that is going to be closed without merging.
todo list:
Local_AttributesandProperties)Template_Values)Template_Values)