@@ -518,34 +518,17 @@ def locate_data(self, query_result=None, catalog_name=None):
518
518
519
519
# datalink url
520
520
dlink_url = f'{ self .VO_URL } /datalink/{ catalog_name } '
521
- def query_func (query_chunk ):
522
- return pyvo .dal .adhoc .DatalinkQuery (
523
- baseurl = dlink_url ,
524
- id = query_chunk ['__row' ],
525
- session = self ._session
526
- )
521
+ query = pyvo .dal .adhoc .DatalinkQuery (
522
+ baseurl = dlink_url ,
523
+ id = query_result ['__row' ],
524
+ session = self ._session
525
+ )
527
526
528
- # Standard URL limit of ~2000 characters for GET
529
- # With query formula https://[urlbase]?ID=###, could get 100 16 digit IDs
530
- URI_MAX = 100
531
- if len (query_result ) > URI_MAX :
532
- # execute a set amount at a time
533
- chunks = len (query_result ) % URI_MAX
534
- for chunk in range (chunks ):
535
- query_chunk = query_result [URI_MAX * chunk : URI_MAX * chunk + URI_MAX ]
536
- query = query_func (query_chunk )
537
- dl_result_chunk = query .execute ().to_table ()
538
- if chunk == 0 :
539
- dl_result = dl_result_chunk
540
- else :
541
- dl_result = vstack ([dl_result , dl_result_chunk ])
542
- query_chunk = query_result [URI_MAX * chunk + URI_MAX :]
543
- query = query_func (query_chunk )
544
- dl_result_chunk = query .execute ().to_table ()
545
- dl_result = vstack ([dl_result , dl_result_chunk ])
546
- else :
547
- query = query_func (query_result )
548
- dl_result = query .execute ().to_table ()
527
+ dl_result = pyvo .dal .DALResults (
528
+ query .execute_votable (post = True ),
529
+ url = query .queryurl ,
530
+ session = query ._session
531
+ ).to_table ()
549
532
550
533
# include rows that have directory links (i.e. data) and those
551
534
# that report errors (usually means there are no data products)
0 commit comments