Skip to content

Commit f44df10

Browse files
committed
bugfix for pagesize and page in catalogs.query_criteria
1 parent e6a1c1f commit f44df10

File tree

4 files changed

+40
-10
lines changed

4 files changed

+40
-10
lines changed

CHANGES.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,8 @@ mast
157157

158158
- Add ``verbose`` parameter to modulate output in ``mast.observations.download_products`` method. [#3031]
159159

160+
- Fix bug in ``Catalogs.query_criteria()`` to use ``page`` and ``pagesize`` parameters correctly. [#3065]
161+
160162

161163

162164
0.4.7 (2024-03-08)

astroquery/mast/collections.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,8 @@ def query_criteria_async(self, catalog, *, pagesize=None, page=None, **criteria)
225225
226226
Parameters
227227
----------
228+
catalog : str
229+
The catalog to be queried.
228230
pagesize : int, optional
229231
Can be used to override the default pagesize.
230232
E.g. when using a slow internet connection.

astroquery/mast/services.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ def _parse_result(self, response, verbose=False, data_key='data'):
222222
return result_table
223223

224224
@class_or_instance
225-
def service_request_async(self, service, params, page_size=None, page=None, use_json=False, **kwargs):
225+
def service_request_async(self, service, params, pagesize=None, page=None, use_json=False, **kwargs):
226226
"""
227227
Given a MAST fabric service and parameters, builds and executes a fabric microservice catalog query.
228228
See documentation `here <https://catalogs.mast.stsci.edu/docs/index.html>`__
@@ -234,7 +234,7 @@ def service_request_async(self, service, params, page_size=None, page=None, use_
234234
The MAST catalogs service to query. Should be present in self.SERVICES
235235
params : dict
236236
JSON object containing service parameters.
237-
page_size : int, optional
237+
pagesize : int, optional
238238
Default None.
239239
Can be used to override the default pagesize (set in configs) for this query only.
240240
E.g. when using a slow internet connection.
@@ -273,13 +273,13 @@ def service_request_async(self, service, params, page_size=None, page=None, use_
273273
catalogs_request = []
274274
if not page:
275275
page = params.pop('page', None)
276-
if not page_size:
277-
page_size = params.pop('page_size', None)
276+
if not pagesize:
277+
pagesize = params.pop('pagesize', None)
278278

279279
if page is not None:
280280
catalogs_request.append(('page', page))
281-
if page_size is not None:
282-
catalogs_request.append(('pagesize', page_size))
281+
if pagesize is not None:
282+
catalogs_request.append(('pagesize', pagesize))
283283

284284
if not use_json:
285285
# Decompose filters, sort
@@ -331,7 +331,7 @@ def _build_catalogs_params(self, params):
331331
if prop == 'format':
332332
# Ignore format changes
333333
continue
334-
elif prop == 'page_size':
334+
elif prop == 'pagesize':
335335
catalog_params.extend(('pagesize', value))
336336
elif prop == 'sort_by':
337337
# Loop through each value if list

astroquery/mast/tests/test_mast_remote.py

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,14 @@ def test_mast_service_request(self):
7474
'dec': 54.5,
7575
'radius': 0.001}
7676

77-
result = Mast.service_request(service, params)
77+
result = Mast.service_request(service, params, pagesize=10, page=2)
7878

7979
# Is result in the right format
8080
assert isinstance(result, Table)
8181

82+
# Is result limited to ten rows
83+
assert len(result) == 10
84+
8285
# Are the GALEX observations in the results table
8386
assert "GALEX" in result['obs_collection']
8487

@@ -532,15 +535,18 @@ def check_result(result, row, exp_values):
532535
radius=0.01*u.deg, catalog="panstarrs",
533536
table="mean")
534537
row = np.where((result['objName'] == 'PSO J322.4622+12.1920') & (result['yFlags'] == 16777496))
538+
second_id = result[1]['objID']
535539
assert isinstance(result, Table)
536540
np.testing.assert_allclose(result[row]['distance'], 0.039381703406789904)
537541

538542
result = Catalogs.query_region("322.49324 12.16683",
539543
radius=0.01*u.deg, catalog="panstarrs",
540544
table="mean",
541-
page_size=3)
545+
pagesize=1,
546+
page=2)
542547
assert isinstance(result, Table)
543-
assert len(result) == 3
548+
assert len(result) == 1
549+
assert second_id == result[0]['objID']
544550

545551
result = Catalogs.query_region("158.47924 -7.30962",
546552
radius=in_radius,
@@ -588,6 +594,16 @@ def check_result(result, exp_values):
588594
radius=.001,
589595
catalog="TIC")
590596
check_result(result, {'ID': '1305764225'})
597+
second_id = result[1]['ID']
598+
599+
result = Catalogs.query_object("M10",
600+
radius=.001,
601+
catalog="TIC",
602+
pagesize=1,
603+
page=2)
604+
assert isinstance(result, Table)
605+
assert len(result) == 1
606+
assert second_id == result[0]['ID']
591607

592608
result = Catalogs.query_object("M10",
593609
radius=.001,
@@ -681,6 +697,16 @@ def check_result(result, exp_vals):
681697
Bmag=[30, 50],
682698
objType="STAR")
683699
check_result(result, {'ID': '81609218'})
700+
second_id = result[1]['ID']
701+
702+
result = Catalogs.query_criteria(catalog="Tic",
703+
Bmag=[30, 50],
704+
objType="STAR",
705+
pagesize=1,
706+
page=2)
707+
assert isinstance(result, Table)
708+
assert len(result) == 1
709+
assert second_id == result[0]['ID']
684710

685711
result = Catalogs.query_criteria(catalog="ctl",
686712
Tmag=[10.5, 11],

0 commit comments

Comments
 (0)