Skip to content

Commit 2823283

Browse files
committed
BUG: ignore column int overflow warning for windows
1 parent 3cba46f commit 2823283

File tree

2 files changed

+82
-25
lines changed

2 files changed

+82
-25
lines changed

astroquery/sdss/core.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
"""
55
import warnings
66
import numpy as np
7+
import sys
78

89
from astropy import units as u
910
from astropy.coordinates import Angle
1011
from astropy.table import Table, Column
12+
from astropy.utils.exceptions import AstropyWarning
1113

1214
from ..query import BaseQuery
1315
from . import conf
@@ -935,7 +937,16 @@ def _parse_result(self, response, verbose=False):
935937
if 'error_message' in response.text:
936938
raise RemoteServiceError(response.text)
937939

938-
arr = Table.read(response.text, format='ascii.csv', comment="#")
940+
with warnings.catch_warnings():
941+
# Capturing the warning and converting the objid column to int64 is necessary for consistency as
942+
# it was convereted to string on systems with defaul integer int32 due to an overflow.
943+
if sys.platform.startswith('win'):
944+
warnings.filterwarnings("ignore", category=AstropyWarning,
945+
message=r'OverflowError converting to IntType in column.*')
946+
arr = Table.read(response.text, format='ascii.csv', comment="#")
947+
for id_column in ['objid', 'specobjid']:
948+
if id_column in arr.columns:
949+
arr[id_column] = arr[id_column].astype(np.int64)
939950

940951
if len(arr) == 0:
941952
return None

astroquery/sdss/tests/test_sdss.py

Lines changed: 70 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@
55
import socket
66
import numpy as np
77
from numpy.testing import assert_allclose
8+
import sys
9+
import warnings
810

911
import astropy.units as u
1012
from astropy.io import fits
1113
from astropy.coordinates import Angle
1214
from astropy.table import Column, Table
15+
from astropy.utils.exceptions import AstropyWarning
1316
import pytest
1417

1518
from ... import sdss
@@ -194,11 +197,17 @@ class = 'galaxy'
194197
and zWarning = 0
195198
"""
196199
xid = sdss.SDSS.query_sql(query, data_release=dr)
197-
data = Table.read(data_path(DATA_FILES['images_id']),
198-
format='ascii.csv', comment='#')
199200

200-
compare_xid_data(xid, data)
201-
url_tester(dr)
201+
with warnings.catch_warnings():
202+
if sys.platform.startswith('win'):
203+
warnings.filterwarnings("ignore", category=AstropyWarning,
204+
message=r'OverflowError converting.*')
205+
data = Table.read(data_path(DATA_FILES['images_id']),
206+
format='ascii.csv', comment='#')
207+
208+
data['objid'] = data['objid'].astype(np.int64)
209+
compare_xid_data(xid, data)
210+
url_tester(dr)
202211

203212

204213
@pytest.mark.parametrize("dr", dr_list)
@@ -232,39 +241,68 @@ def test_sdss_template(patch_request, patch_get_readable_fileobj):
232241
@pytest.mark.parametrize("dr", dr_list)
233242
def test_sdss_specobj(patch_request, dr):
234243
xid = sdss.SDSS.query_specobj(plate=2340, data_release=dr)
235-
data = Table.read(data_path(DATA_FILES['spectra_id']),
236-
format='ascii.csv', comment='#')
237244

238-
compare_xid_data(xid, data)
239-
url_tester(dr)
245+
with warnings.catch_warnings():
246+
if sys.platform.startswith('win'):
247+
warnings.filterwarnings("ignore", category=AstropyWarning,
248+
message=r'OverflowError converting.*')
249+
data = Table.read(data_path(DATA_FILES['spectra_id']),
250+
format='ascii.csv', comment='#')
251+
data['objid'] = data['objid'].astype(np.int64)
252+
data['specobjid'] = data['specobjid'].astype(np.int64)
253+
compare_xid_data(xid, data)
254+
url_tester(dr)
240255

241256

242257
@pytest.mark.parametrize("dr", dr_list)
243258
def test_sdss_photoobj(patch_request, dr):
244259
xid = sdss.SDSS.query_photoobj(
245260
run=1904, camcol=3, field=164, data_release=dr)
246-
data = Table.read(data_path(DATA_FILES['images_id']),
247-
format='ascii.csv', comment='#')
248-
compare_xid_data(xid, data)
249-
url_tester(dr)
261+
262+
with warnings.catch_warnings():
263+
if sys.platform.startswith('win'):
264+
warnings.filterwarnings("ignore", category=AstropyWarning,
265+
message=r'OverflowError converting.*')
266+
data = Table.read(data_path(DATA_FILES['images_id']),
267+
format='ascii.csv', comment='#')
268+
269+
data['objid'] = data['objid'].astype(np.int64)
270+
compare_xid_data(xid, data)
271+
url_tester(dr)
250272

251273

252274
@pytest.mark.parametrize("dr", dr_list)
253275
def test_list_coordinates(patch_request, dr):
254276
xid = sdss.SDSS.query_region(coords_list, data_release=dr)
255-
data = Table.read(data_path(DATA_FILES['images_id']),
256-
format='ascii.csv', comment='#')
257-
compare_xid_data(xid, data)
258-
url_tester_crossid(dr)
277+
278+
with warnings.catch_warnings():
279+
if sys.platform.startswith('win'):
280+
warnings.filterwarnings("ignore", category=AstropyWarning,
281+
message=r'OverflowError converting.*')
282+
data = Table.read(data_path(DATA_FILES['images_id']),
283+
format='ascii.csv', comment='#')
284+
285+
data['objid'] = data['objid'].astype(np.int64)
286+
287+
compare_xid_data(xid, data)
288+
url_tester_crossid(dr)
259289

260290

261291
@pytest.mark.parametrize("dr", dr_list)
262292
def test_column_coordinates(patch_request, dr):
263293
xid = sdss.SDSS.query_region(coords_column, data_release=dr)
264-
data = Table.read(data_path(DATA_FILES['images_id']),
265-
format='ascii.csv', comment='#')
266-
compare_xid_data(xid, data)
267-
url_tester_crossid(dr)
294+
295+
with warnings.catch_warnings():
296+
if sys.platform.startswith('win'):
297+
warnings.filterwarnings("ignore", category=AstropyWarning,
298+
message=r'OverflowError converting.*')
299+
data = Table.read(data_path(DATA_FILES['images_id']),
300+
format='ascii.csv', comment='#')
301+
302+
data['objid'] = data['objid'].astype(np.int64)
303+
304+
compare_xid_data(xid, data)
305+
url_tester_crossid(dr)
268306

269307

270308
def test_query_timeout(patch_request_slow, coord=coords):
@@ -285,10 +323,18 @@ def test_images_timeout(patch_request, patch_get_readable_fileobj_slow):
285323
@pytest.mark.parametrize("dr", dr_list)
286324
def test_query_crossid(patch_request, dr):
287325
xid = sdss.SDSS.query_crossid(coords_column, data_release=dr)
288-
data = Table.read(data_path(DATA_FILES['images_id']),
289-
format='ascii.csv', comment='#')
290-
compare_xid_data(xid, data)
291-
url_tester_crossid(dr)
326+
327+
with warnings.catch_warnings():
328+
if sys.platform.startswith('win'):
329+
warnings.filterwarnings("ignore", category=AstropyWarning,
330+
message=r'OverflowError converting.*')
331+
data = Table.read(data_path(DATA_FILES['images_id']),
332+
format='ascii.csv', comment='#')
333+
334+
data['objid'] = data['objid'].astype(np.int64)
335+
336+
compare_xid_data(xid, data)
337+
url_tester_crossid(dr)
292338

293339

294340
def test_query_crossid_large_radius(patch_request):

0 commit comments

Comments
 (0)