diff --git a/astroquery/ibe/__init__.py b/astroquery/ibe/__init__.py index a36371fc49..f1d7baa3e4 100644 --- a/astroquery/ibe/__init__.py +++ b/astroquery/ibe/__init__.py @@ -24,12 +24,11 @@ class Conf(_config.ConfigNamespace): dataset = _config.ConfigItem( 'images', - ('Default data set. See, for example, ' - 'http://irsa.ipac.caltech.edu/ibe/search/ptf for options.')) + ('This option is meaningless in the context of IRSA\'s ibe.')) table = _config.ConfigItem( - 'level1', - ('Default table. See, for example, ' - 'http://irsa.ipac.caltech.edu/ibe/search/ptf/images for options.')) + 'ptf.ptf_procimg', + ('Default table. Select the desired mission at ' + 'http://irsa.ipac.caltech.edu/ibe/search/ for options.')) timeout = _config.ConfigItem( 60, 'Time limit for connecting to the IRSA server.') diff --git a/astroquery/ibe/core.py b/astroquery/ibe/core.py index 15e20dba81..a116867fd8 100644 --- a/astroquery/ibe/core.py +++ b/astroquery/ibe/core.py @@ -15,6 +15,7 @@ import astropy.coordinates as coord from astropy.table import Table +from astropy.io.ascii.html import HTML import six from ..exceptions import InvalidQueryError @@ -276,14 +277,17 @@ def list_missions(self, cache=True): root = BeautifulSoup(response.text) links = root.findAll('a') - missions = [os.path.basename(a.attrs['href']) for a in links] + + missions = [os.path.basename(a.attrs['href'].rstrip('/')) + for a in links] self._missions = missions return missions def list_datasets(self, mission=None, cache=True): """ - For a given mission, list the available datasets + For a given mission, list the available datasets. + This level has no meaning in IRSA's ibe service. Parameters ---------- @@ -299,24 +303,8 @@ def list_datasets(self, mission=None, cache=True): datasets : list A list of dataset names """ - if mission is None: - mission = self.MISSION - if mission not in self.list_missions(): - raise ValueError("Invalid mission specified: {0}." - "Must be one of: {1}" - .format(mission, self.list_missions())) - url = "{URL}search/{mission}/".format(URL=self.URL, mission=mission) - response = self._request('GET', url, timeout=self.TIMEOUT, - cache=cache) - - root = BeautifulSoup(response.text) - links = root.findAll('a') - datasets = [a.text for a in links - if a.attrs['href'].count('/') >= 4 # shown as '..'; ignore - ] - - return datasets + return ["images"] def list_tables(self, mission=None, dataset=None, cache=True): """ @@ -358,9 +346,7 @@ def list_tables(self, mission=None, dataset=None, cache=True): .format(dataset, mission, self.list_datasets(mission, cache=True))) - url = "{URL}search/{mission}/{dataset}/".format(URL=self.URL, - mission=mission, - dataset=dataset) + url = "{URL}search/{mission}/".format(URL=self.URL, mission=mission) response = self._request('GET', url, timeout=self.TIMEOUT, cache=cache) @@ -386,10 +372,9 @@ def show_docs(self, mission=None, dataset=None, table=None): The table to be queried (if not the default table). """ - url = "{URL}docs/{mission}/{dataset}/{table}".format( + url = "{URL}docs/{mission}/{table}".format( URL=self.URL, mission=mission or self.MISSION, - dataset=dataset or self.DATASET, table=table or self.TABLE) return webbrowser.open(url) @@ -413,19 +398,20 @@ def get_columns(self, mission=None, dataset=None, table=None): A table containing a description of the columns """ - url = "{URL}search/{mission}/{dataset}/{table}".format( + url = "{URL}search/{mission}/{table}/".format( URL=self.URL, mission=mission or self.MISSION, - dataset=dataset or self.DATASET, table=table or self.TABLE) response = self._request( - 'GET', url, {'FORMAT': 'METADATA'}, timeout=self.TIMEOUT) + 'GET', url, {'FORMAT': 'METADATA'}, + timeout=self.TIMEOUT) # Raise exception, if request failed response.raise_for_status() + HTMLtoTable = HTML() - return Table.read(response.text, format='ipac', guess=False) + return HTMLtoTable.read(response.text) Ibe = IbeClass()