Skip to content

Mango support #664

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

Draft
wants to merge 43 commits into
base: main
Choose a base branch
from
Draft

Mango support #664

wants to merge 43 commits into from

Conversation

lmichel
Copy link
Contributor

@lmichel lmichel commented Apr 10, 2025

This draft PR proposes an API that facilitates the mapping of VOTable data to the MANGO data model.

Mango is a model (VO working draft) designed to extend the description of table data in such a way that each table row can be interpreted as a Mango object (MangoObject class of the Mango data model-.
MangoObject instances consist of a property container, a description of the data origin, and links to other Mango objects (not yet implemented).

In this current implementation, only a few properties are supported (EpochPosition and Photometry), and the data origin can be added as literal values (not associated with table data).

To annotate data, the user must provide mapping dictionaries that associate model roles with column identifiers or literal values from which the code builds complete MIVOT annotations.

Complete examples can be found in pyvo/mivot/tests/test_mango_annoter.py and pyvo/mivot/tests/test_header_mapper.py.

The HeaderMapper class can help with this process. It analyzes INFO, COOSYS, TIMESYS, and FIELDS to suggest mappings that matches the current VOTable metadata.

lmichel added 30 commits April 6, 2025 16:39
Mango annotations
to make the distinction between column reference and literals
x_path_startwith works recursively
…a VODMK parsing - move constants to the glossary
…removed, shouln't be committed - documentation
Copy link

codecov bot commented Apr 10, 2025

Codecov Report

Attention: Patch coverage is 94.68268% with 31 lines in your changes missing coverage. Please review.

Project coverage is 83.70%. Comparing base (6c1ebc1) to head (8e656cd).
Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
pyvo/mivot/writer/instances_from_models.py 93.84% 12 Missing ⚠️
pyvo/mivot/utils/mivot_utils.py 90.00% 8 Missing ⚠️
pyvo/mivot/writer/header_mapper.py 92.45% 8 Missing ⚠️
pyvo/mivot/utils/xml_utils.py 88.88% 2 Missing ⚠️
pyvo/mivot/writer/mango_object.py 98.87% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #664      +/-   ##
==========================================
+ Coverage   82.97%   83.70%   +0.72%     
==========================================
  Files          75       80       +5     
  Lines        7759     8272     +513     
==========================================
+ Hits         6438     6924     +486     
- Misses       1321     1348      +27     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@lmichel
Copy link
Contributor Author

lmichel commented Apr 10, 2025

The failing CI task is due to ongoing change in the Vizier implementation. This will be fixed later.

lmichel added 6 commits April 17, 2025 13:36
implementation, which could change again.
Style check
mango-support

# Conflicts:
#	pyvo/mivot/tests/test_mivot_instance_generation.py
#	pyvo/mivot/tests/test_user_api.py
implementation, which could change again.
Style check
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants