Skip to content

Commit a3c7e80

Browse files
committed
more interactive tests revealed that my hacks didn't really work, this
commit has some fixes
1 parent e929b44 commit a3c7e80

File tree

2 files changed

+22
-11
lines changed

2 files changed

+22
-11
lines changed

astroquery/higal/core.py

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from astropy.table import Table
1212
from astropy.io import fits
1313

14-
from ..query import BaseQuery
14+
from ..query import BaseQuery, AstroQuery
1515
from ..utils import commons
1616
from ..utils import prepend_docstr_nosections
1717
from ..utils import async_to_sync
@@ -188,34 +188,44 @@ def get_images(self, coordinates, radius, get_query_payload=False,
188188
-------
189189
A list of `astropy.fits.HDUList` objects
190190
"""
191-
responses = self.get_images_async(coordinates, radius,
191+
filenames = self.get_images_async(coordinates, radius,
192192
get_query_payload=get_query_payload,
193193
cache=cache)
194194
if get_query_payload:
195-
return responses
196-
return [fits.open(io.BytesIO(response.content)) for response in responses]
195+
return filenames
196+
return [fits.open(fn) for fn in filenames]
197197

198198
@prepend_docstr_nosections(get_images.__doc__)
199199
def get_images_async(self, coordinates, radius, get_query_payload=False,
200-
cache=False):
200+
cache=False, timeout=None):
201201
"""
202202
Returns
203203
-------
204204
A list of context-managers that yield readable file-like objects
205205
"""
206+
print(f"Getting image list at {coordinates} with {radius}")
206207
image_urls = self.get_image_list(coordinates, radius,
207208
get_query_payload=get_query_payload)
208209
if get_query_payload:
209210
return image_urls
210211

211212
responses = []
213+
filenames = []
212214
for url in image_urls:
213-
response = self._request('GET', url, timeout=self.TIMEOUT,
214-
cache=cache)
215-
response.raise_for_status()
215+
print("Downloading URL {0}".format(url))
216+
query = AstroQuery('GET', url)
217+
cachefile = query.request_file(self.cache_location)
218+
response = self._download_file(url, cachefile, cache=cache,
219+
timeout=timeout or self.TIMEOUT,
220+
close_response=False
221+
)
222+
filenames.append(cachefile)
223+
#response = self._request('GET', url, timeout=self.TIMEOUT,
224+
# cache=cache)
225+
#response.raise_for_status()
216226
responses.append(response)
217227

218-
return responses
228+
return filenames
219229

220230
@prepend_docstr_nosections(get_images.__doc__)
221231
def get_image_list(self, coordinates, radius, get_query_payload=False,

astroquery/query.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ def _request(self, method, url,
313313

314314
def _download_file(self, url, local_filepath, timeout=None, auth=None,
315315
continuation=True, cache=False, method="GET",
316-
head_safe=False, **kwargs):
316+
head_safe=False, close_response=True, **kwargs):
317317
"""
318318
Download a file. Resembles `astropy.utils.data.download_file` but uses
319319
the local ``_session``
@@ -435,7 +435,8 @@ def _download_file(self, url, local_filepath, timeout=None, auth=None,
435435
else:
436436
pb.update(bytes_read)
437437

438-
response.close()
438+
if close_response:
439+
response.close()
439440
return response
440441

441442

0 commit comments

Comments
 (0)