@@ -197,6 +197,7 @@ def _args_to_payload(self, **kwargs):
197197 @prepend_docstr_noreturns (_args_to_payload .__doc__ )
198198 def query_async (self ,
199199 get_query_payload = False ,
200+ cache = True ,
200201 ** kwargs ):
201202 """
202203 Returns
@@ -209,10 +210,8 @@ def query_async(self,
209210
210211 if get_query_payload :
211212 return request_payload
212- response = commons .send_request (Nrao .DATA_URL ,
213- request_payload ,
214- Nrao .TIMEOUT ,
215- request_type = 'POST' )
213+ response = self ._request ('POST' , self .DATA_URL , params = request_payload ,
214+ timeout = self .TIMEOUT , cache = cache )
216215 return response
217216
218217 @prepend_docstr_noreturns (_args_to_payload .__doc__ )
@@ -244,11 +243,8 @@ def query_region_async(self, coordinates, radius=1 * u.deg,
244243 def _parse_result (self , response , verbose = False ):
245244 if not verbose :
246245 commons .suppress_vo_warnings ()
247- # fix to replace non standard datatype 'integer' in returned VOTable
248- # with 'int' to make it parsable by astropy.io.votable
249- integer_re = re .compile (r'datatype="integer"' )
250- content = response .text
251- new_content = integer_re .sub (r'datatype="int"' , content )
246+
247+ new_content = response .text
252248
253249 # these are pretty bad hacks, but also needed...
254250 days_re = re .compile (r'unit="days" datatype="double"' )
@@ -257,10 +253,17 @@ def _parse_result(self, response, verbose=False):
257253 degrees_re = re .compile (r'unit="degrees" datatype="double"' )
258254 new_content = degrees_re .sub (r'unit="degrees" datatype="char" '
259255 'arraysize="*"' , new_content )
256+ telconfig_re = re .compile (r'datatype="char" name="Telescope:config"' )
257+ new_content = telconfig_re .sub (r'datatype="unicodeChar" '
258+ 'name="Telescope:config" '
259+ ' arraysize="*" ' , new_content )
260+
261+ datatype_mapping = {'integer' :'long' }
260262
261263 try :
262264 tf = six .BytesIO (new_content .encode ())
263- first_table = votable .parse (tf , pedantic = False ).get_first_table ()
265+ first_table = votable .parse (tf , pedantic = False ,
266+ datatype_mapping = datatype_mapping ).get_first_table ()
264267 try :
265268 table = first_table .to_table (use_names_over_ids = True )
266269 except TypeError :
0 commit comments