@@ -165,6 +165,36 @@ def _get_cache_directory(dataset: OpenMLDataset) -> str:
165165 return _create_cache_directory_for_id (DATASETS_CACHE_DIR_NAME , dataset .dataset_id )
166166
167167
168+ def list_qualities (verbose = False ):
169+ """ Return list of data qualities available
170+
171+ The function performs an API call to retrieve the entire list of
172+ data qualities that are available are computed on the datasets uploaded.
173+
174+ Parameters
175+ ----------
176+ verbose : bool (default=False)
177+ If True, prints out the list with an index
178+
179+ """
180+ api_call = "data/qualities/list"
181+ xml_string = openml ._api_calls ._perform_api_call (api_call , 'get' )
182+ qualities = xmltodict .parse (xml_string )
183+ # Minimalistic check if the XML is useful
184+ if 'oml:data_qualities_list' not in qualities :
185+ raise ValueError ('Error in return XML, does not contain '
186+ '"oml:data_qualities_list"' )
187+ assert type (qualities ['oml:data_qualities_list' ]['oml:quality' ]) == list
188+ qualities = qualities ['oml:data_qualities_list' ]['oml:quality' ]
189+ if verbose :
190+ header = "List of available data qualities:"
191+ print (header )
192+ print ("=" * len (header ))
193+ for i , quality in enumerate (qualities ):
194+ print ("{:>3}....{}" .format (i + 1 , quality ))
195+ return qualities
196+
197+
168198def list_datasets (
169199 offset : Optional [int ] = None ,
170200 size : Optional [int ] = None ,
0 commit comments