astropy / astroquery

Functions and classes to access online data resources. Maintainers: @keflavich and @bsipocz and @ceb8
http://astroquery.readthedocs.org/en/latest/
BSD 3-Clause "New" or "Revised" License
686 stars 391 forks source link

Jwst.Edb.GetTimeseries service request no longer works #1906

Open havok2063 opened 3 years ago

havok2063 commented 3 years ago

The service request to retrieve mnemonic information from the JWST engineering database no longer works. Using astroquery 0.4 I get the following error:

from astroquery.mast import Mast
service = "Mast.JwstEdb.GetTimeseries.All"
params = {'mnemonic': 'SA_ZADUCMDX', 
          'start':'2019-05-31 23:59:58', 
          'end':'2019-06-01 23:59:59'} 

out = Mast.service_request(service, params, fetch_name="Mast.JwstEdb", pagesize=1000)

---------------------------------------------------------------------------
RemoteServiceError                        Traceback (most recent call last)
<ipython-input-5-2a2f56a283fa> in <module>
----> 1 out = Mast.service_request(service, params, fetch_name="Mast.JwstEdb", pagesize=1000)

~/anaconda3/lib/python3.7/site-packages/astroquery/utils/class_or_instance.py in f(*args, **kwds)
     23         def f(*args, **kwds):
     24             if obj is not None:
---> 25                 return self.fn(obj, *args, **kwds)
     26             else:
     27                 return self.fn(cls, *args, **kwds)

~/anaconda3/lib/python3.7/site-packages/astroquery/utils/process_asyncs.py in newmethod(self, *args, **kwargs)
     27             if kwargs.get('get_query_payload') or kwargs.get('field_help'):
     28                 return response
---> 29             result = self._parse_result(response, verbose=verbose)
     30             self.table = result
     31             return result

~/anaconda3/lib/python3.7/site-packages/astroquery/mast/core.py in _parse_result(self, responses, verbose)
    605                 # check for error message
    606                 if result['status'] == "ERROR":
--> 607                     raise RemoteServiceError(result.get('msg', "There was an error with your request."))
    608 
    609                 result_table = _mashup_json_to_table(result, col_config)

RemoteServiceError: Object reference not set to an instance of an `object.`

After updating to 0.4.1 I get a different error:

out = Mast.service_request(service, params, fetch_name="Mast.JwstEdb", pagesize=1000)

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-14-388cd3d8e137> in <module>
----> 1 out = Mast.service_request(service, params, fetch_name="Mast.JwstEdb", pagesize=1000)

~/anaconda3/lib/python3.7/site-packages/astroquery/utils/class_or_instance.py in f(*args, **kwds)
     23         def f(*args, **kwds):
     24             if obj is not None:
---> 25                 return self.fn(obj, *args, **kwds)
     26             else:
     27                 return self.fn(cls, *args, **kwds)

~/anaconda3/lib/python3.7/site-packages/astroquery/utils/process_asyncs.py in newmethod(self, *args, **kwargs)
     27             if kwargs.get('get_query_payload') or kwargs.get('field_help'):
     28                 return response
---> 29             result = self._parse_result(response, verbose=verbose)
     30             self.table = result
     31             return result

~/anaconda3/lib/python3.7/site-packages/astroquery/mast/observations.py in _parse_result(self, responses, verbose)
    796         """
    797
--> 798         return self._portal_api_connection._parse_result(responses, verbose)
    799
    800     @class_or_instance

~/anaconda3/lib/python3.7/site-packages/astroquery/mast/discovery_portal.py in _parse_result(self, responses, verbose)
    289             # check for error message
    290             if result['status'] == "ERROR":
--> 291                 raise RemoteServiceError(result.get('msg', "There was an error with your request."))
    292
    293             result_table = _json_to_table(result, col_config)

NameError: name 'RemoteServiceError' is not defined
bsipocz commented 3 years ago

Try to upgrade to the latest version with pip install -U --pre astroquery. We continuously deploy, and therefore there are bugfixes out there since the last 0.4.1 tagged release.

havok2063 commented 3 years ago

Tested with 0.4.2.dev6449 and I get the original error that I did with 0.4.0.

bsipocz commented 1 year ago

now I see another error for the example above:

In [4]: out = Mast.service_request(service, params, fetch_name="Mast.JwstEdb", pagesize=1000)
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-4-388cd3d8e137> in <module>
----> 1 out = Mast.service_request(service, params, fetch_name="Mast.JwstEdb", pagesize=1000)

~/munka/devel/astroquery/astroquery/utils/class_or_instance.py in f(*args, **kwds)
     23         def f(*args, **kwds):
     24             if obj is not None:
---> 25                 return self.fn(obj, *args, **kwds)
     26             else:
     27                 return self.fn(cls, *args, **kwds)

~/munka/devel/astroquery/astroquery/utils/process_asyncs.py in newmethod(self, *args, **kwargs)
     27             if kwargs.get('get_query_payload') or kwargs.get('field_help'):
     28                 return response
---> 29             result = self._parse_result(response, verbose=verbose)
     30             self.table = result
     31             return result

~/munka/devel/astroquery/astroquery/mast/observations.py in _parse_result(self, responses, verbose)
    872         """
    873 
--> 874         return self._portal_api_connection._parse_result(responses, verbose)
    875 
    876     @class_or_instance

~/munka/devel/astroquery/astroquery/mast/discovery_portal.py in _parse_result(self, responses, verbose)
    290                 raise RemoteServiceError(result.get('msg', "There was an error with your request."))
    291 
--> 292             result_table = _json_to_table(result, col_config)
    293             result_list.append(result_table)
    294 

~/munka/devel/astroquery/astroquery/mast/discovery_portal.py in _json_to_table(json_obj, col_config)
     70 
     71     if not all(x in json_obj.keys() for x in ['fields', 'data']):
---> 72         raise KeyError("Missing required key(s) 'data' and/or 'fields.'")
     73 
     74     for col, atype in [(x['name'], x['type']) for x in json_obj['fields']]:

KeyError: "Missing required key(s) 'data' and/or 'fields.'"

cc @jaymedina