Skip to content

Commit 671d87c

Browse files
committed
Make default dataset metadata loading robust to both repo-root and module-root working directories.
1 parent 78a3c4c commit 671d87c

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

jvector-examples/src/main/java/io/github/jbellis/jvector/example/benchmarks/datasets/DataSetMetadataReader.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
import java.io.FileInputStream;
2222
import java.io.IOException;
2323
import java.io.InputStream;
24+
import java.nio.file.Files;
25+
import java.nio.file.Path;
26+
import java.nio.file.Paths;
2427
import java.util.HashMap;
2528
import java.util.Map;
2629
import java.util.Optional;
@@ -49,6 +52,7 @@
4952
public class DataSetMetadataReader {
5053

5154
private static final String DEFAULT_FILE = "jvector-examples/yaml-configs/dataset-metadata.yml";
55+
private static final String MODULE_RELATIVE_DEFAULT_FILE = "yaml-configs/dataset-metadata.yml";
5256

5357
private final Map<String, Map<String, Object>> metadata;
5458

@@ -61,7 +65,21 @@ private DataSetMetadataReader(Map<String, Map<String, Object>> metadata) {
6165
/// @return the loaded metadata
6266
/// @throws RuntimeException if the file cannot be read
6367
public static DataSetMetadataReader load() {
64-
return load(DEFAULT_FILE);
68+
Path defaultPath = Paths.get(DEFAULT_FILE);
69+
if (Files.isRegularFile(defaultPath)) {
70+
return load(defaultPath.toString());
71+
}
72+
73+
Path moduleRelativePath = Paths.get(MODULE_RELATIVE_DEFAULT_FILE);
74+
if (Files.isRegularFile(moduleRelativePath)) {
75+
return load(moduleRelativePath.toString());
76+
}
77+
78+
throw new RuntimeException(
79+
"Failed to load dataset metadata from default locations: "
80+
+ defaultPath.toAbsolutePath().normalize()
81+
+ " or "
82+
+ moduleRelativePath.toAbsolutePath().normalize());
6583
}
6684

6785
/// Loads dataset metadata from the specified file.

0 commit comments

Comments
 (0)