openml-python icon indicating copy to clipboard operation
openml-python copied to clipboard

Improve error message when API key is not provided

Open mfeurer opened this issue 4 years ago • 0 comments

The error message for a missing API key looks very generic and is not very user friendly:

Traceback (most recent call last):
  File "/home/feurerm/sync_dir/projects/openml/python/local/example.py", line 13, in <module>
    run = openml.runs.run_model_on_task(clf, task)  # run classifier on splits
  File "/home/feurerm/sync_dir/projects/openml/python/openml/runs/functions.py", line 140, in run_model_on_task
    n_jobs=n_jobs,
  File "/home/feurerm/sync_dir/projects/openml/python/openml/runs/functions.py", line 228, in run_flow_on_task
    flow_id = flow_exists(flow.name, flow.external_version)
  File "/home/feurerm/sync_dir/projects/openml/python/openml/flows/functions.py", line 256, in flow_exists
    "flow/exists", "post", data={"name": name, "external_version": external_version},
  File "/home/feurerm/sync_dir/projects/openml/python/openml/_api_calls.py", line 67, in _perform_api_call
    response = __read_url(url, request_method, data)
  File "/home/feurerm/sync_dir/projects/openml/python/openml/_api_calls.py", line 206, in __read_url
    request_method=request_method, url=url, data=data, md5_checksum=md5_checksum
  File "/home/feurerm/sync_dir/projects/openml/python/openml/_api_calls.py", line 237, in _send_request
    __check_response(response=response, url=url, file_elements=files)
  File "/home/feurerm/sync_dir/projects/openml/python/openml/_api_calls.py", line 284, in __check_response
    raise __parse_server_exception(response, url, file_elements=file_elements)
openml.exceptions.OpenMLServerException: https://test.openml.org/api/v1/xml/flow/exists returned code 102: No authentication (Please provide API key for all requests other than HTTP GET) - None

Process finished with exit code 1

Something like

The API call https://test.openml.org/api/v1/xml/flow/exists requires authentication via an API key. Please configure OpenML-Python to use your API as described in this example: https://openml.github.io/openml-python/main/examples/20_basic/introduction_tutorial.html#authentication

mfeurer avatar May 30 '21 10:05 mfeurer