Skip to content

Commit 862806e

Browse files
committed
Adding function to list evaluation measures
1 parent 3905544 commit 862806e

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

doc/api.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ Modules
8383
:template: function.rst
8484

8585
list_evaluations
86+
list_evaluation_measures
8687

8788
:mod:`openml.flows`: Flow Functions
8889
-----------------------------------

openml/evaluations/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
from .evaluation import OpenMLEvaluation
2-
from .functions import list_evaluations
2+
from .functions import list_evaluations, list_evaluation_measures
33

4-
__all__ = ['OpenMLEvaluation', 'list_evaluations']
4+
__all__ = ['OpenMLEvaluation', 'list_evaluations', 'list_evaluation_measures']

openml/evaluations/functions.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,29 @@ def __list_evaluations(api_call, output_format='object'):
200200
evals = pd.DataFrame.from_dict(evals, orient='index')
201201

202202
return evals
203+
204+
205+
def list_evaluation_measures() -> list:
206+
""" Return list of data qualities available.
207+
208+
The function performs an API call to retrieve the entire list of
209+
data qualities that are computed on the datasets uploaded.
210+
211+
Returns
212+
-------
213+
list
214+
215+
"""
216+
api_call = "evaluationmeasure/list"
217+
xml_string = openml._api_calls._perform_api_call(api_call, 'get')
218+
qualities = xmltodict.parse(xml_string, force_list=('oml:measures'))
219+
# Minimalistic check if the XML is useful
220+
if 'oml:evaluation_measures' not in qualities:
221+
raise ValueError('Error in return XML, does not contain '
222+
'"oml:evaluation_measures"')
223+
if not isinstance(qualities['oml:evaluation_measures']['oml:measures'][0]['oml:measure'],
224+
list):
225+
raise TypeError('Error in return XML, does not contain '
226+
'"oml:measure" as a list')
227+
qualities = qualities['oml:evaluation_measures']['oml:measures'][0]['oml:measure']
228+
return qualities

0 commit comments

Comments
 (0)