Skip to content

Commit b348489

Browse files
committed
Log info if there are download duplicates for MAST
1 parent 3a57b4c commit b348489

File tree

3 files changed

+15
-22
lines changed

3 files changed

+15
-22
lines changed

astroquery/exceptions.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@
77

88
__all__ = ['TimeoutError', 'InvalidQueryError', 'RemoteServiceError',
99
'TableParseError', 'LoginError', 'ResolverError',
10-
'NoResultsWarning', 'DuplicateResultsWarning', 'LargeQueryWarning',
11-
'InputWarning', 'AuthenticationWarning', 'MaxResultsWarning',
12-
'CorruptDataWarning']
10+
'NoResultsWarning', 'LargeQueryWarning', 'InputWarning',
11+
'AuthenticationWarning', 'MaxResultsWarning', 'CorruptDataWarning']
1312

1413

1514
class TimeoutError(Exception):
@@ -68,13 +67,6 @@ class NoResultsWarning(AstropyWarning):
6867
pass
6968

7069

71-
class DuplicateResultsWarning(AstropyWarning):
72-
"""
73-
Astroquery warning class to be issued when a query returns no result.
74-
"""
75-
pass
76-
77-
7870
class LargeQueryWarning(AstropyWarning):
7971
"""
8072
Astroquery warning class to be issued when a query is larger than

astroquery/mast/observations.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
from ..utils import commons, async_to_sync
3232
from ..utils.class_or_instance import class_or_instance
3333
from ..exceptions import (TimeoutError, InvalidQueryError, RemoteServiceError,
34-
ResolverError, MaxResultsWarning, DuplicateResultsWarning,
35-
NoResultsWarning, InputWarning, AuthenticationWarning)
34+
ResolverError, MaxResultsWarning, NoResultsWarning,
35+
InputWarning, AuthenticationWarning)
3636

3737
from . import conf, utils
3838
from .core import MastQueryWithLogin
@@ -827,8 +827,8 @@ def _remove_duplicate_products(self, data_products):
827827
unique_products = unique(data_products, keys="dataURI")
828828
number_unique = len(unique_products)
829829
if number_unique < number:
830-
warnings.warn(f"{number - number_unique} of {number} products were duplicates."
831-
f"Only downloading {number_unique} unique product(s).", DuplicateResultsWarning)
830+
log.info(f"{number - number_unique} of {number} products were duplicates. "
831+
f"Only downloading {number_unique} unique product(s).")
832832

833833
return unique_products
834834

astroquery/mast/tests/test_mast_remote.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
from ..utils import ResolverError
1717
from ...exceptions import (InvalidQueryError, MaxResultsWarning, NoResultsWarning,
18-
DuplicateResultsWarning, RemoteServiceError)
18+
RemoteServiceError)
1919

2020

2121
OBSID = '1647157'
@@ -290,7 +290,7 @@ def test_observations_download_products(self, tmpdir):
290290
assert os.path.isfile(result2['Local Path'][0])
291291
assert len(result2) == 1
292292

293-
def test_observations_download_products_no_duplicates(tmpdir):
293+
def test_observations_download_products_no_duplicates(self, tmpdir, caplog):
294294

295295
# Pull products for a JWST NIRSpec MSA observation with 6 known
296296
# duplicates of the MSA configuration file, propID=2736
@@ -303,20 +303,21 @@ def test_observations_download_products_no_duplicates(tmpdir):
303303
assert len(products) == 6
304304

305305
# Download the product
306-
with pytest.warns(DuplicateResultsWarning):
307-
manifest = mast.Observations.download_products(products,
308-
download_dir=str(tmpdir))
306+
manifest = mast.Observations.download_products(products,
307+
download_dir=str(tmpdir))
309308

310309
# Check that it downloads the MSA config file only once
311310
assert len(manifest) == 1
312311

312+
# Check that an INFO message about duplicates was logged
313+
with caplog.at_level("INFO", logger="astroquery"):
314+
assert "products were duplicates" in caplog.text
315+
313316
# enable access to public AWS S3 bucket
314317
mast.Observations.enable_cloud_dataset()
315318

316319
# Check duplicate cloud URIs as well
317-
with pytest.warns(DuplicateResultsWarning):
318-
uris = mast.Observations.get_cloud_uris(products)
319-
320+
uris = mast.Observations.get_cloud_uris(products)
320321
assert len(uris) == 1
321322

322323
def test_observations_download_file(self, tmpdir):

0 commit comments

Comments
 (0)