Repository navigation
GAIA: update the method load_data to return the path of the downloaded DataLink archive - #3673
Conversation
|
The proposed API seems fine to me. This should be accompanied by a warning, since it will change the output of An alternative approach is to leave the default behavior as-is ( I may slightly prefer the latter but I don't feel strongly. I'll check what we do elsewhere in astroquery... |
84e1f46 to
ff2fa5a
Compare
Hi @keflavich, thanks for your feedback. I will discuss this alternative implementation with the rest of the team. |
a5983b0 to
2090536
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3673 +/- ##
==========================================
+ Coverage 73.86% 74.05% +0.19%
==========================================
Files 228 228
Lines 21475 21649 +174
==========================================
+ Hits 15863 16033 +170
- Misses 5612 5616 +4 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
fb3e3c6 to
d449dcb
Compare
ae385b4 to
3cfc2e0
Compare
|
We’d prioritize backward compatibility, so we’ve updated the implementation as follows:
We think this is the least disruptive migration, although it does make the type annotation a little more complicated. We haven’t added a warning because there’s no deprecated behaviour for existing users. |
|
I'm happy with that change. I would still want some kind of warning about the API change, but this can just go in the changelog, not necessarily the code - the return type may now be a tuple instead of a dict. @bsipocz what do you think? |
a6fc4ec to
2a1e2be
Compare
1947910 to
5704eb3
Compare
bsipocz
left a comment
There was a problem hiding this comment.
The API looks reasonable, my only comment is about if we really need that type annotation.
| @overload | ||
| def load_data(self, ids, *, data_release=None, data_structure='DATAMODEL_STANDARD', retrieval_type="ALL", | ||
| linking_parameter='SOURCE_ID', valid_data=False, band=None, avoid_datatype_check=False, | ||
| format="votable", dump_to_file: Literal[False] = False, overwrite_output_file=False, verbose=False, | ||
| output_file=None) -> dict[str, Table]: | ||
| ... | ||
|
|
||
| @overload | ||
| def load_data(self, ids, *, data_release=None, data_structure='DATAMODEL_STANDARD', retrieval_type="ALL", | ||
| linking_parameter='SOURCE_ID', valid_data=False, band=None, avoid_datatype_check=False, | ||
| format="votable", dump_to_file: Literal[True], overwrite_output_file=False, verbose=False, | ||
| output_file=None) -> tuple[dict[str, Table], str]: | ||
| ... | ||
|
|
||
| @overload | ||
| def load_data(self, ids, *, data_release=None, data_structure='DATAMODEL_STANDARD', retrieval_type="ALL", | ||
| linking_parameter='SOURCE_ID', valid_data=False, band=None, avoid_datatype_check=False, | ||
| format="votable", dump_to_file: bool, overwrite_output_file=False, verbose=False, | ||
| output_file=None) -> dict[str, Table] | tuple[dict[str, Table], str]: | ||
| ... | ||
|
|
There was a problem hiding this comment.
I'm not at all a fan of this, or in fact any typing -- we don't enforce it and we are never dispatching into a computationally performant algorithm either.
Is there a particular reason you want this?
There was a problem hiding this comment.
I'm not at all a fan of this, or in fact any typing -- we don't enforce it and we are never dispatching into a computationally performant algorithm either. Is there a particular reason you want this?
Hi @bsipocz, we just thought it would be a useful way to distinguish between the three possible scenarios while maintaining backward compatibility. What would you suggest?
There was a problem hiding this comment.
ahh, ok, I see what you mean. I suppose it's OK then for this one case, but overall I would still say that we may not want to overcomplicate our life by doing types when this is not code where we ever really need.
There was a problem hiding this comment.
Hi @bsipocz, we’d be happy to implement whichever solution you think is best. The current implementation is one possible approach, but we’re open to your suggestions and would be happy to follow your recommendation.
ed1de06 to
3cd0b9c
Compare
3cd0b9c to
9b9f411
Compare
bsipocz
left a comment
There was a problem hiding this comment.
The RTD failure is genuine, and to fix it I added commit here that turns off typehints for the documentation.
That being said, we'll keep seeing RTD failures, but those are unrelated and are due to the currently unavailable requests intersphinx mapping.
Dear Astroquery team,
we have opened this PR since we'd like to update the
Gaia.load_datamethod to return the path of the downloaded DataLink archive whendump_to_file=True.Currently,
load_dataprints the generated archive path but does not make it available programmatically. Returning the path allows users to directly access and process downloaded products, which is particularly useful for the upcoming Gaia DR4 residual_image products.We have implemented the following changes:
Nonewhendump_to_file=False.dump_to_file=True.Example
cc @esdc-esac-esa-int
jira: GAIASA-3522