This is a set of unofficial Python bindings for the CometML REST API. There are functions for all current endpoints as well as a couple of functions that build on the basic endpoint ones to provide, e.g., simpler output or filtering. I haven't used all of the endpoints myself, so some of the functions haven't been tested at all (e.g. get_html
). Documentation is currently limited but the functions provided are generally quite simple.
See Endpoints for the official documentation of the REST API.
pip install cometml_api
Note that there is a different project called comet_ml_api
(note the extra underscore); don't accidentally install that one when you're trying to get this one!
Python 2 is not supported. This should work on any OS, but I've only tested on Ubuntu (and a very small amount on Windows).
See this page first for how to generate your REST API key. There are two possible methods of authentication using that key:
- Store the key in
~/.comet_rest_key
. When you import theapi
script, it will automatically load a key that it finds in this file. - Call the
set_api_key
function and pass your key in. The key will be saved in a global variable so that the same key is used for all subsequent requests unless you explicitly set a new key.
Most of the basic endpoint functions are named get_<endpoint>
where <endpoint>
is the corresponding endpoint (e.g. get_workspaces
to access https://www.comet.ml/api/rest/v1/workspaces
). However, there are a few exceptions.
There are two endpoints for metrics: metrics
and metrics-raw
. I call both of these "raw" because they return data that isn't well-formatted for immediate plotting/analysis. As the metrics
endpoint only return the min, max, and most recent data points for a given metric, I call that one a summary, hence get_raw_metric_summaries
; the function for metrics-raw
is get_raw_metrics
. There is also a helper function get_metrics
which converts the metrics into a better format for visualization or analysis.
Similarly to metrics, the raw parameters data may not be in the most usable format right away. I thus also call this endpoint get_raw_params
and have a helper function get_params
which provides a more concise output.
As for params except, though the endpoint is log-other
, the functions are get_raw_others
and get_others
.
The images
endpoint doesn't return the images themselves, just the data about them (including the URLs from which the actual images can be downloaded?). I call this endpoint get_image_data
, but I haven't tested it.
from cometml_api import api
workspaces = api.get_workspaces()
project_ids = api.get_project_names_and_ids(workspaces[0]) # {name: id}
experiments = api.get_experiments(project_ids.popitem()[1])
api.get_params(experiments[0]["experiment_key"])