Skip to content

Commit d3da83b

Browse files
committed
CM-4552: Implemented support for getting ID of the existing experiment from the COMET_EXPERIMENT_KEY environment variable.
1 parent 7e38515 commit d3da83b

File tree

6 files changed

+31
-2
lines changed

6 files changed

+31
-2
lines changed

comet-java-client/src/main/java/ml/comet/experiment/exception/CometGeneralException.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ public CometGeneralException(String message) {
2626

2727
/**
2828
* Constructs a new runtime exception with the specified detail message and
29-
* cause. <p>Note that the detail message associated with
30-
* {@code cause} is <i>not</i> automatically incorporated in
29+
* cause.
30+
*
31+
* <p>Note that the detail message associated with {@code cause} is <i>not</i> automatically incorporated in
3132
* this runtime exception's detail message.
3233
*
3334
* @param message the detail message (which is saved for later retrieval

comet-java-client/src/main/java/ml/comet/experiment/impl/ApiExperimentImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import static ml.comet.experiment.impl.config.CometConfig.COMET_API_KEY;
1919
import static ml.comet.experiment.impl.config.CometConfig.COMET_BASE_URL;
20+
import static ml.comet.experiment.impl.config.CometConfig.COMET_EXPERIMENT_KEY;
2021
import static ml.comet.experiment.impl.config.CometConfig.COMET_MAX_AUTH_RETRIES;
2122
import static ml.comet.experiment.impl.config.CometConfig.COMET_PROJECT_NAME;
2223
import static ml.comet.experiment.impl.config.CometConfig.COMET_TIMEOUT_CLEANING_SECONDS;
@@ -173,6 +174,9 @@ public ApiExperiment build() {
173174
if (StringUtils.isBlank(this.workspace)) {
174175
this.workspace = COMET_WORKSPACE_NAME.getOptionalString().orElse(null);
175176
}
177+
if (StringUtils.isBlank(this.experimentKey)) {
178+
this.experimentKey = COMET_EXPERIMENT_KEY.getOptionalString().orElse(null);
179+
}
176180
ApiExperimentImpl experiment = new ApiExperimentImpl(
177181
this.apiKey, this.experimentKey, this.logger,
178182
COMET_BASE_URL.getString(),

comet-java-client/src/main/java/ml/comet/experiment/impl/OnlineExperimentBuilderImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import static ml.comet.experiment.impl.config.CometConfig.COMET_API_KEY;
1313
import static ml.comet.experiment.impl.config.CometConfig.COMET_BASE_URL;
14+
import static ml.comet.experiment.impl.config.CometConfig.COMET_EXPERIMENT_KEY;
1415
import static ml.comet.experiment.impl.config.CometConfig.COMET_MAX_AUTH_RETRIES;
1516
import static ml.comet.experiment.impl.config.CometConfig.COMET_PROJECT_NAME;
1617
import static ml.comet.experiment.impl.config.CometConfig.COMET_TIMEOUT_CLEANING_SECONDS;
@@ -111,6 +112,9 @@ public OnlineExperimentImpl build() {
111112
if (StringUtils.isBlank(this.baseUrl)) {
112113
this.baseUrl = COMET_BASE_URL.getString();
113114
}
115+
if (StringUtils.isBlank(this.experimentKey)) {
116+
this.experimentKey = COMET_EXPERIMENT_KEY.getOptionalString().orElse(null);
117+
}
114118
if (this.maxAuthRetries == -1) {
115119
this.maxAuthRetries = COMET_MAX_AUTH_RETRIES.getInt();
116120
}

comet-java-client/src/main/java/ml/comet/experiment/impl/config/CometConfig.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ public final class CometConfig {
5050
*/
5151
public static final ConfigItem COMET_PROJECT_NAME =
5252
new ConfigItem("project", "COMET_PROJECT_NAME", instance);
53+
/**
54+
* The key of the existing Comet experiment.
55+
*/
56+
public static final ConfigItem COMET_EXPERIMENT_KEY =
57+
new ConfigItem("experimentKey", "COMET_EXPERIMENT_KEY", instance);
5358
/**
5459
* The Comet workspace name.
5560
*/

comet-java-client/src/test/java/ml/comet/experiment/impl/config/CometConfigTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,4 +125,18 @@ public void testClearOverrideConfig() {
125125
assertNotNull(timeout);
126126
assertEquals(timeout.getSeconds(), 3600);
127127
}
128+
129+
@Test
130+
public void testReadAllConfigVariables() {
131+
CometConfig.applyConfigOverride(fullCometConfig);
132+
String defaultStringValue = "full";
133+
134+
assertEquals(defaultStringValue, CometConfig.COMET_API_KEY.getString());
135+
assertEquals(defaultStringValue, CometConfig.COMET_PROJECT_NAME.getString());
136+
assertEquals(defaultStringValue, CometConfig.COMET_EXPERIMENT_KEY.getString());
137+
assertEquals(defaultStringValue, CometConfig.COMET_WORKSPACE_NAME.getString());
138+
assertEquals("https://www.comet.ml", CometConfig.COMET_BASE_URL.getString());
139+
assertEquals(5, CometConfig.COMET_MAX_AUTH_RETRIES.getInt());
140+
assertEquals(60, CometConfig.COMET_TIMEOUT_CLEANING_SECONDS.getInt());
141+
}
128142
}

comet-java-client/src/test/resources/full-comet-config.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ comet {
44
apiKey = "full"
55
project = "full"
66
workspace = "full"
7+
experimentKey = "full"
78
cleaningTimeoutSeconds = 60
89
}

0 commit comments

Comments
 (0)