Skip to content

Commit e48c5c5

Browse files
authored
Merge pull request #74 from comet-ml/CM-4572-get-all-worspaces
[CM-4572]: Implement Comet API to get all workspaces
2 parents 5d04258 + f60a775 commit e48c5c5

File tree

5 files changed

+60
-34
lines changed

5 files changed

+60
-34
lines changed

comet-examples/pom.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@
6363
<dependency>
6464
<groupId>ch.qos.logback</groupId>
6565
<artifactId>logback-classic</artifactId>
66-
<version>1.2.11</version>
66+
<!-- Keep fixed to 1.3.x until we decide to move to the Java version higher than Java8 -->
67+
<version>1.3.3</version>
6768
</dependency>
6869
</dependencies>
6970
<build>

comet-examples/src/main/java/ml/comet/examples/ApiExamples.java

Lines changed: 51 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import java.util.List;
1111
import java.util.Objects;
12-
import java.util.Optional;
12+
import java.util.UUID;
1313

1414
/**
1515
* Provides variety of examples of data logging using REST API client.
@@ -24,7 +24,7 @@
2424
* Make sure to provide correct values above.
2525
*/
2626
public class ApiExamples {
27-
static final String someExperimentName = "some-experiment-name";
27+
static final String randomExperimentName = UUID.randomUUID().toString();
2828

2929
/**
3030
* The main entry point to the example.
@@ -38,45 +38,70 @@ public static void main(String[] args) throws Exception {
3838
private static void run() throws Exception {
3939
// create test experiment
4040
//
41-
String projectName;
42-
String workspaceName;
41+
String experimentProjectName;
42+
String experimentWorkspaceName;
43+
String experimentKey;
4344
try (OnlineExperiment experiment = ExperimentBuilder
4445
.OnlineExperiment()
4546
.interceptStdout()
4647
.build()) {
4748

48-
experiment.setExperimentName(someExperimentName);
49+
experiment.setExperimentName(randomExperimentName);
4950
experiment.logMetric("some-metric", 10);
5051

51-
projectName = experiment.getProjectName();
52-
workspaceName = experiment.getWorkspaceName();
52+
experimentProjectName = experiment.getProjectName();
53+
experimentWorkspaceName = experiment.getWorkspaceName();
54+
experimentKey = experiment.getExperimentKey();
5355
}
5456

55-
// get test experiment by name
57+
// Comet API usage examples
5658
//
5759
try (CometApi api = ExperimentBuilder.CometApi().build()) {
58-
// get project where experiment saved
59-
List<Project> projects = api.getAllProjects(workspaceName);
60-
Optional<Project> optionalProject = projects.stream()
61-
.filter(project -> project.getProjectName().equals(projectName))
62-
.findAny();
63-
if (!optionalProject.isPresent()) {
64-
return;
65-
}
66-
Project project = optionalProject.get();
67-
System.out.printf("Looking for experiments in project: %s\n---------\n", project);
60+
// get all workspaces available for the user
61+
//
62+
System.out.println("===== All user's workspaces =====");
63+
List<String> availableWorkspaces = api.getAllWorkspaces();
64+
availableWorkspaces.forEach(System.out::println);
65+
System.out.println("=====\n");
66+
67+
// get all projects under particular workspace
68+
//
69+
String workspace = availableWorkspaces.get(0);
70+
System.out.printf("===== Projects in workspace: '%s' =====\n", workspace);
71+
List<Project> projects = api.getAllProjects(workspace);
72+
projects.forEach(System.out::println);
73+
System.out.println("=====\n");
6874

69-
// list all experiments in the project and select the one we are looking for
75+
// get all experiments under particular project
76+
//
77+
Project project = projects.get(0);
78+
System.out.printf("===== First 10 Experiments in project: '%s' =====\n", project.getProjectName());
7079
List<ExperimentMetadata> experiments = api.getAllExperiments(project.getProjectId());
71-
Optional<ExperimentMetadata> experimentMetadata = experiments.stream()
72-
.peek(System.out::println)
73-
.filter(meta -> Objects.equals(meta.getExperimentName(), someExperimentName))
74-
.findAny();
75-
if (experimentMetadata.isPresent()) {
76-
displayExperiment(experimentMetadata.get());
80+
experiments.stream()
81+
.filter(experimentMetadata -> !Objects.isNull(experimentMetadata.getExperimentName()))
82+
.limit(10)
83+
.forEach(System.out::println);
84+
System.out.println("=====\n");
85+
86+
// get experiment(-s) by name/regex (using the one we created above)
87+
//
88+
System.out.printf("===== Experiment(-s) by name/regex '%s' in workspace/project: '%s/%s' =====\n",
89+
randomExperimentName, experimentWorkspaceName, experimentProjectName);
90+
experiments = api.getExperiments(experimentWorkspaceName, experimentProjectName, randomExperimentName);
91+
if (experiments.size() == 1) {
92+
displayExperiment(experiments.get(0));
7793
} else {
78-
System.out.printf("Failed to find experiment with name: %s\n", someExperimentName);
94+
System.out.printf("*** No, or more than one experiment was found. Found: %d experiments.\n",
95+
experiments.size());
7996
}
97+
System.out.println("=====\n");
98+
99+
// get experiment's meta-data by experiment key
100+
//
101+
System.out.printf("===== Experiment's metadata by experiment key: '%s' =====\n", experimentKey);
102+
ExperimentMetadata metadata = api.getExperimentMetadata(experimentKey);
103+
System.out.println(metadata);
104+
System.out.println("=====\n");
80105
}
81106
}
82107

comet-java-client/pom.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
<dependency>
6363
<groupId>com.fasterxml.jackson.core</groupId>
6464
<artifactId>jackson-databind</artifactId>
65-
<version>2.13.3</version>
65+
<version>2.13.4</version>
6666
</dependency>
6767
<dependency>
6868
<groupId>com.vdurmont</groupId>
@@ -77,12 +77,12 @@
7777
<dependency>
7878
<groupId>org.slf4j</groupId>
7979
<artifactId>slf4j-api</artifactId>
80-
<version>1.7.36</version>
80+
<version>2.0.3</version>
8181
</dependency>
8282
<dependency>
8383
<groupId>org.slf4j</groupId>
8484
<artifactId>slf4j-simple</artifactId>
85-
<version>1.7.36</version>
85+
<version>2.0.3</version>
8686
</dependency>
8787

8888
<!-- tests -->
@@ -94,13 +94,13 @@
9494
<dependency>
9595
<groupId>org.mockito</groupId>
9696
<artifactId>mockito-inline</artifactId>
97-
<version>4.6.1</version>
97+
<version>4.8.0</version>
9898
<scope>test</scope>
9999
</dependency>
100100
<dependency>
101101
<groupId>com.github.tomakehurst</groupId>
102102
<artifactId>wiremock-jre8</artifactId>
103-
<version>2.33.2</version>
103+
<version>2.34.0</version>
104104
<scope>test</scope>
105105
</dependency>
106106
<dependency>

comet-java-client/src/main/resources/reference.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# The default configuration values for Comet Java SDK
22
comet {
33
# The base URL (env: COMET_BASE_URL)
4-
baseUrl = "https://www.comet-ml.com"
4+
baseUrl = "https://www.comet.com"
55
# The maximal number of authentication retries (env: COMET_MAX_AUTH_RETRIES)
66
maxAuthRetries = 4
77
# The timeout to finish upload of all pending log records and resources to the Comet at experiment end (env: COMET_TIMEOUT_CLEANING)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
comet {
2-
baseUrl = "https://www.comet-ml.com"
2+
baseUrl = "https://www.comet.com"
33
maxAuthRetries = 5
44
}

0 commit comments

Comments
 (0)