Skip to content
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

Partial rewrite of the MOCServer module #3139

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

ManonMarchand
Copy link
Member

@ManonMarchand ManonMarchand commented Nov 27, 2024

Hello astroquery,

This is a quite big rewrite of the MOS Server module.

The two main motivations behind it were:

  • there was a bug that using query_region with a MOC would write a real file on the people's current folder. This file would be named moc.fits and could potentially overwrite a pre-existing file with the same name silently.
  • the MOC server upstream now works with time MOCs and space-time MOCs, so these features were needed here

The actual changes in this PR

  • new method query_hips allows to filter only hips in a shortcut rather than having to remember all the time to have to type hips_frame=* in the meta_data (convenience method)
  • before, you could only search by region or by meta_data. This was unnecessary, and now the two methods are exactly the same and allow to filter on region and to add a criteria. I was wondering whether find_datasets should be deprecated
  • new parameters casesensitive and spacesys allow to chose whether the query will respect the case, and to chose a specific system for the datasets (ex: mars, venus, sky)
  • new methods list_spacesys that prints the currently available spacesys (can evolve as providers post new datasets)
  • new method list_fields to see the possible fields (there are 134 today) sorted by occurrence and with an example
  • the default returned table now have a sub-selection of fields rather than the whole 134 ones (this speeds up the module considerably)
  • return_moc is no longer only a boolean. It keeps it former behavior (True means Space MOC) but it can now also take the values smoc, tmoc, or stmoc to specify the kind of MOC that should be returned
  • in query_region, the region argument can now also be a mocpy.TimeMOC and a mocpy.STMOC on top of the previously accepted classes
  • removed the regions module from the mandatory dependencies

Changes while I was there

@pep8speaks
Copy link

pep8speaks commented Nov 27, 2024

Hello @ManonMarchand! 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 2024-12-19 13:33:05 UTC

@ManonMarchand ManonMarchand force-pushed the mocserver branch 4 times, most recently from 68d1db0 to 065b393 Compare November 27, 2024 15:43
@ManonMarchand

This comment was marked as outdated.

Copy link

codecov bot commented Nov 27, 2024

Codecov Report

Attention: Patch coverage is 92.59259% with 8 lines in your changes missing coverage. Please review.

Project coverage is 67.69%. Comparing base (04c6069) to head (804c94a).
Report is 10 commits behind head on main.

Files with missing lines Patch % Lines
astroquery/mocserver/core.py 92.52% 8 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3139      +/-   ##
==========================================
+ Coverage   67.54%   67.69%   +0.14%     
==========================================
  Files         233      233              
  Lines       18493    18476      -17     
==========================================
+ Hits        12491    12507      +16     
+ Misses       6002     5969      -33     

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

@bsipocz bsipocz added this to the v0.4.8 milestone Nov 27, 2024
@ManonMarchand ManonMarchand marked this pull request as draft December 2, 2024 16:47
@ManonMarchand
Copy link
Member Author

Switching to draft as I asked for a review internally in CDS

Copy link
Contributor

@tboch tboch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this PR.
My main comment is about space_sys which I don't like much, and about 'C' which really should be 'sky'.

I see no harm in starting to have a deprecation message for find_datasets.
Should we have a new get_coverage or get_moc method which would be cleaner than the return_moc parameter? This can be added in a later PR of course.

astroquery/mocserver/__init__.py Outdated Show resolved Hide resolved
astroquery/mocserver/__init__.py Outdated Show resolved Hide resolved
fields : [str], optional
Specifies which columns to retrieve. Defaults to a pre-defined subset of
fields. The complete list of fields can be obtained with `list_fields`.
spacesys: str, optional
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not huge fan of spacesys, but can not find a better one.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, me neither, I just took the name from the server itself. Maybe @bsipocz or an other maintainer will have a better idea?

astroquery/mocserver/core.py Outdated Show resolved Hide resolved
astroquery/mocserver/core.py Outdated Show resolved Hide resolved
astroquery/mocserver/core.py Outdated Show resolved Hide resolved
astroquery/mocserver/core.py Outdated Show resolved Hide resolved
mostly achieved by looking at a small MOC in test_moc_order_param rather than the whole sky
for tables, we use the fact that Table accepts dictionnaries. For MOCs, the dictionnary parsing has been improved in MOCpy > 0.12 and does not require to remove empty orders anymore
this is mainly motivated by the new support for time mocs and space-time mocs upstream
allows to work in the browser with wasm-based python implementations
this makes this parameter different from the one the server understands, but it's more consistant with the other possible values for spacesys
@ManonMarchand ManonMarchand marked this pull request as ready for review December 19, 2024 13:07
@ManonMarchand
Copy link
Member Author

ManonMarchand commented Dec 19, 2024

I applied Thomas's suggestions. This is ready to be reviewed 🙂

@bsipocz
Copy link
Member

bsipocz commented Dec 19, 2024

I'll get back to this in the new year. Thanks, Manon and Happy Holidays!

@bsipocz bsipocz modified the milestones: v0.4.8, v0.4.9 Dec 19, 2024
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.

4 participants