-
-
Notifications
You must be signed in to change notification settings - Fork 415
Enable TAP for ESO module #3141
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
base: main
Are you sure you want to change the base?
Conversation
Hello @juanmcloaiza! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found: There are currently no PEP 8 issues detected in this Pull Request. Cheers! 🍻 Comment last updated at 2025-01-17 14:13:03 UTC |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3141 +/- ##
==========================================
+ Coverage 69.88% 70.47% +0.59%
==========================================
Files 232 233 +1
Lines 19742 19693 -49
==========================================
+ Hits 13796 13878 +82
+ Misses 5946 5815 -131 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One comment for now regarding the deprecation, otherwise is looking good so far (I didn't dive into the details, but had a quick look
eb83ef2
to
1829e1c
Compare
@bsipocz, hi, I'd like to ask for your feedback regarding deprecated functionality. This PR's scope is to switch the back-end of the ESO module from WDB to TAP. In doing so, many of the functions will be renamed and their signatures changed (i.e. completely new functions are being written, while others are being removed). If I understand correctly, astroquery requires that deprecated features are handled via The question I'd like to ask you as an astroquery maintainer is the following: Would it be admissible for this time to avoid adding deprecated decorators to each of the functions and arguments that we are discontinuing? My impression is that the Please let us know what you think (cc @szampier). Thanks in advance for your feedback ;) |
a769979
to
71d4681
Compare
Given this is a full refactoring and switching out what backend to use on the server side, it should be OK to do it without decorating with deprecations and remove methods that don't make sense any more. |
Also let me know when I should come in and do a first round of review. I already noticed a few things that are odd and would preferably done differently, e.g. the custom caching functions (e.g. it would be nice to either reuse what we already have, or generalize these and put it into a more central location). Also, I see some workaround for the tests that preferably should be resolved, e.g. don't filter warnings but if they are legit, then check if they are raised, also, empty tests should not be around for the sake of fooling codecov (you can just ignore the report for now, it doesn't report on the remote tests) |
Hi @bsipocz , thanks for the feedback. I reply each of your points here:
I will ping you again when we're ready with our internal feedback rounds, so you can go through it more thoroughly. Thanks again for your preliminary feedback! 👍 |
@bsipocz , hi, one quick question. Preparing for the future, we are thinking on developing ESO submodules, so that we can query ESO data in the following way: import astroquery.eso.observations as observations # Current Pull Request
import astroquery.eso.catalogues as catalogues # To be developed in the future
raw_datasets = observations.list_raw_instruments()
# >>> ['MUSE', 'VVV', 'SPHERE', ... ]
# Query raw data:
raw_data = observations.Raw() # Raw data from table dbo.raw
my_astropy_table = raw_data.query(instrument="MUSE")
# Query raw data from an IST:
muse_data = observations.Raw("MUSE") # Raw data from table ist.muse
my_astropy_table = muse_data.query(...)
# Query Phase 3 data:
processed_data = observations.Processed() # Processed data from table ivoa.ObsCore
my_astropy_table = processed_data.query(collections=["MUSE"]) Would this be OK for astroquery standards? |
I'd recommend that some of what you're proposing should be keywords. e.g. If you're going to use Other archives generally split their queries by Observation first, Processed State next (e.g., MAST). Is there a structural reason you need to split by processed state first, or could you also support queries that return everything associated with a given observation, then filter from there? If you can support both ways, I think that's better - the average user will not want raw data, so your approach looks possibly better. |
I would really like to keep the facility name in the name of classes, etc, so while submodules are fine I think it would be better to keep calling them something ESO.
(I know that mast is an outlier in this sense, and then gemini copied their approach, but I haven't given up on getting the renamed done as outlined in #1748) |
Strongly agree @bsipocz . What you've suggested is a documentation (suggested usage) change, right? i.e., |
No, I would strongly recommend to rename the class itself. |
Hi @bsipocz and @keflavich , thanks for the attention given to my question. My takeaway is as follows:
To quickly answer your questions:
Not to deviate the discussion, I'm not going into more detailed answers, but am happy to discuss further elsewhere if you're interested. For the rest of your comments, I don't have a clear answer now but they gave important insights as to what external users expect. We will discuss internally and come back with a solution. Thanks a lot! 👍 |
@bsipocz, @keflavich, hi, thanks again for the discussion last time. We will implement a new interface, but to streamline the review process, we won't do it in this pull request. I will open a new one shortly. @bsipocz, could you please start giving a more thorough look at this pull request? @szampier is also looking at it in parallel, but we don't expect large changes. Thanks in advance, looking forward to your feedback! |
c14cd32
to
612fd82
Compare
@bsipocz , hi, we are ready for a review. @ashleythomasbarnes is currently working on the documentation but the development of this PR is finished. We look forward to your review, thanks a lot in advance! |
Thanks @juanmcloaiza for the ping. I'll try to get to the first round of review as soon as I can so we can start the iteration (however I'm out next week on a workshop, so it may all be in a few weeks time). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have some minor suggestions on the docs. I didn't review the main code in detail - I just assume it works.
A question, though: Why did you change the docstring format from numpy format to the current one? I haven't checked the docs build, but I'm not sure these will render correctly. If they do, no problem from my end (though I will let @bsipocz say if the style clash is too great), but I'd like to verify that.
While the Python interface remains the same, the values accepted by the ``columns`` and ``column_filters`` | ||
parameters must reflect TAP field names and ADQL syntax. This means that, | ||
although the structure of your code won't need to change, **the values you pass to the arguments** | ||
``columns`` **and** ``column_filters`` **must be revised** to comply with the new format. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this text is about 'new' and 'change' etc., let's add a date tag. Somewhere in here, say "as of May 2025".
Is WDB itself being taken offline? It also helps to indicate that so that users know there is not some alternative other approach.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(this is partly so that we don't have to figure out when to remove the "new" qualifier in this text; it's easy to forget to update documentation)
**Note:** for a deeper description of each column, the following query can be issued | ||
on the ESO **Programmatic Access** website (https://archive.eso.org/programmatic/#TAP): | ||
|
||
``select column_name, description from TAP_SCHEMA.columns where table_name = 'ist.midi'`` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there any reason that same query can't be done from astroquery? Or is the formatting just nicer on the web?
Addresses #3138
Changes:
open_form
andcache
arguments