From 6db233b815ae0f34178590c3e0de179242078647 Mon Sep 17 00:00:00 2001 From: "Adam Ginsburg (keflavich)" Date: Wed, 26 Oct 2016 10:05:38 -0600 Subject: [PATCH 1/5] NRAO queries should allow all keywords... --- astroquery/nrao/core.py | 1 + 1 file changed, 1 insertion(+) diff --git a/astroquery/nrao/core.py b/astroquery/nrao/core.py index 68e0bf37b6..05adb6a6cc 100644 --- a/astroquery/nrao/core.py +++ b/astroquery/nrao/core.py @@ -351,6 +351,7 @@ def query_region_async(self, coordinates, radius=1 * u.deg, end_date="", freq_low=None, freq_up=None, telescope_config='all', obs_band='all', querytype='OBSSUMMARY', sub_array='all', + project_code=None, protocol='VOTable-XML', retry=False, get_query_payload=False, cache=True): From 9ac9f683b06cedc632c174ef38869cf41a8ccb86 Mon Sep 17 00:00:00 2001 From: "Adam Ginsburg (keflavich)" Date: Wed, 26 Oct 2016 10:10:16 -0600 Subject: [PATCH 2/5] fail & retry if response is empty or whitespace --- astroquery/nrao/core.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/astroquery/nrao/core.py b/astroquery/nrao/core.py index 05adb6a6cc..c5de7d2fe7 100644 --- a/astroquery/nrao/core.py +++ b/astroquery/nrao/core.py @@ -332,7 +332,8 @@ def query_async(self, response.raise_for_status() - if not response.content: + # fail if response is entirely whitespace or if it is empty + if not response.content.strip(): if cache: last_pickle = self._last_query.hash()+".pickle" cache_fn = os.path.join(self.cache_location, last_pickle) From a1b51553d62a7b32d0a2f0a7b56670b39e2f273f Mon Sep 17 00:00:00 2001 From: "Adam Ginsburg (keflavich)" Date: Wed, 26 Oct 2016 10:13:08 -0600 Subject: [PATCH 3/5] add retry message --- astroquery/nrao/core.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/astroquery/nrao/core.py b/astroquery/nrao/core.py index c5de7d2fe7..bd79f6f3d8 100644 --- a/astroquery/nrao/core.py +++ b/astroquery/nrao/core.py @@ -339,6 +339,8 @@ def query_async(self, cache_fn = os.path.join(self.cache_location, last_pickle) os.remove(cache_fn) if retry > 0: + log.warning("Query resulted in an empty result. Retrying {0}" + " more times.".format(retry)) self.query_async(cache=cache, retry=retry-1, **kwargs) else: raise ValueError("Query resulted in an empty result but " From 9f1594c075288e6c295afb5bb15ce61ebb6413e0 Mon Sep 17 00:00:00 2001 From: "Adam Ginsburg (keflavich)" Date: Wed, 26 Oct 2016 10:23:53 -0600 Subject: [PATCH 4/5] allow vector obs bands --- astroquery/nrao/core.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/astroquery/nrao/core.py b/astroquery/nrao/core.py index bd79f6f3d8..57c28aa317 100644 --- a/astroquery/nrao/core.py +++ b/astroquery/nrao/core.py @@ -40,7 +40,12 @@ def wrapper(*args, **kwargs): if telescope_config.upper() not in Nrao.telescope_config: raise ValueError("'telescope_config' must be one of {!s}" .format(Nrao.telescope_config)) - if obs_band.upper() not in Nrao.obs_bands: + if isinstance(obs_band, (list, tuple)): + for ob in obs_band: + if ob.upper() not in Nrao.obs_bands: + raise ValueError("'obs_band' must be one of {!s}" + .format(Nrao.obs_bands)) + elif obs_band.upper() not in Nrao.obs_bands: raise ValueError("'obs_band' must be one of {!s}" .format(Nrao.obs_bands)) if sub_array not in Nrao.subarrays and sub_array != 'all': @@ -167,6 +172,12 @@ def _args_to_payload(self, **kwargs): else: freq_str = "" + obs_bands = kwargs.get('obs_band', 'all') + if isinstance(obs_bands, six.string_types): + obs_bands = obs_bands.upper() + elif isinstance(obs_bands, (list,tuple)): + obs_bands = [x.upper() for x in obs_bands] + request_payload = dict( QUERYTYPE=kwargs.get('querytype', "OBSSUMMARY"), PROTOCOL=kwargs.get('protocol',"VOTable-XML"), @@ -195,7 +206,7 @@ def _args_to_payload(self, **kwargs): SRAD=str( commons.parse_radius(kwargs.get('radius', "1.0m")).deg) + 'd', TELESCOPE_CONFIG=kwargs.get('telescope_config', 'all').upper(), - OBS_BANDS=kwargs.get('obs_band', 'all').upper(), + OBS_BANDS=obs_bands, SUBARRAY=kwargs.get('subarray', 'all').upper(), SOURCE_ID=kwargs.get('source_id', ''), SRC_SEARCH_TYPE='SIMBAD or NED', From d706c69411ee78decd002ca1044d4eee05060423 Mon Sep 17 00:00:00 2001 From: "Adam Ginsburg (keflavich)" Date: Wed, 26 Oct 2016 10:26:05 -0600 Subject: [PATCH 5/5] Ka does not have uppercase. 'ALL' and 'all' must both be accepted --- astroquery/nrao/core.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/astroquery/nrao/core.py b/astroquery/nrao/core.py index 57c28aa317..d2574d4b73 100644 --- a/astroquery/nrao/core.py +++ b/astroquery/nrao/core.py @@ -42,10 +42,10 @@ def wrapper(*args, **kwargs): .format(Nrao.telescope_config)) if isinstance(obs_band, (list, tuple)): for ob in obs_band: - if ob.upper() not in Nrao.obs_bands: + if ob not in Nrao.obs_bands: raise ValueError("'obs_band' must be one of {!s}" .format(Nrao.obs_bands)) - elif obs_band.upper() not in Nrao.obs_bands: + elif obs_band not in Nrao.obs_bands: raise ValueError("'obs_band' must be one of {!s}" .format(Nrao.obs_bands)) if sub_array not in Nrao.subarrays and sub_array != 'all': @@ -74,7 +74,7 @@ class NraoClass(QueryWithLogin): telescope_config = ['ALL', 'A', 'AB', 'BnA', 'B', 'BC', 'CnB', 'C', 'CD', 'DnC', 'D', 'DA'] - obs_bands = ['ALL', '4', 'P', 'L', 'S', 'C', 'X', 'U', 'K', 'Ka', 'Q', 'W'] + obs_bands = ['ALL', 'all', '4', 'P', 'L', 'S', 'C', 'X', 'U', 'K', 'Ka', 'Q', 'W'] subarrays = ['ALL', 1, 2, 3, 4, 5]