@@ -715,12 +715,7 @@ def download_products(self, products, *, download_dir=None,
715
715
products = vstack (product_lists )
716
716
717
717
# Remove duplicate products
718
- number = len (products )
719
- products = unique (products , keys = "dataURI" )
720
- number_unique = len (products )
721
- if number_unique < number :
722
- warnings .warn (f"{ number - number_unique } of { number } products were duplicates."
723
- f"Only downloading { number_unique } unique product(s)." , DuplicateResultsWarning )
718
+ products = self ._remove_duplicate_products (products )
724
719
725
720
# apply filters
726
721
products = self .filter_products (products , mrp_only = mrp_only , ** filters )
@@ -773,6 +768,9 @@ def get_cloud_uris(self, data_products, *, include_bucket=True, full_url=False):
773
768
raise RemoteServiceError ('Please enable anonymous cloud access by calling `enable_cloud_dataset` method. '
774
769
'See MAST Labs documentation for an example: https://mast-labs.stsci.io/#example-data-access-with-astroquery-observations' )
775
770
771
+ # Remove duplicate products
772
+ products = self ._remove_duplicate_products (products )
773
+
776
774
return self ._cloud_connection .get_cloud_uri_list (data_products , include_bucket , full_url )
777
775
778
776
def get_cloud_uri (self , data_product , * , include_bucket = True , full_url = False ):
@@ -808,6 +806,30 @@ def get_cloud_uri(self, data_product, *, include_bucket=True, full_url=False):
808
806
# Query for product URIs
809
807
return self ._cloud_connection .get_cloud_uri (data_product , include_bucket , full_url )
810
808
809
+ def _remove_duplicate_products (self , data_products ):
810
+ """
811
+ Removes duplicate data products that have the same dataURI.
812
+
813
+ Parameters
814
+ ----------
815
+ data_products : `~astropy.table.Table`
816
+ Table containing products to be checked for duplicates.
817
+
818
+ Returns
819
+ -------
820
+ unique_products : `~astropy.table.Table`
821
+ Table containing products with unique dataURIs.
822
+
823
+ """
824
+ number = len (data_products )
825
+ unique_products = unique (data_products , keys = "dataURI" )
826
+ number_unique = len (unique_products )
827
+ if number_unique < number :
828
+ warnings .warn (f"{ number - number_unique } of { number } products were duplicates."
829
+ f"Only downloading { number_unique } unique product(s)." , DuplicateResultsWarning )
830
+
831
+ return unique_products
832
+
811
833
812
834
@async_to_sync
813
835
class MastClass (MastQueryWithLogin ):
0 commit comments