Skip to content
Snippets Groups Projects

complete experiment dump paths with k, n, ...

Merged STEVAN Antoine requested to merge complete-experiment-path into main
2 files
+ 29
10
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 24
9
use consts.nu
use ../../.nushell error "error throw"
const EXPERIMENT_FORMAT = "{seed}-{env}-{k}-{n}-{nb_bytes}"
const FULL_EXPERIMENT_FORMAT = "{seed}/{timestamp}-{env}-{strategy}-{k}-{n}-{nb_bytes}"
const OTHER_EXPERIMENT_FORMAT = "{timestamp}-{env}-{strategy}-{k}-{n}-{nb_bytes}"
def remove-cache-prefix []: path -> string {
str replace $"($consts.CACHE)(char path_sep)" ''
}
def get-experiments []: nothing -> list<string> {
$consts.CACHE
| path join '*' '*' '*'
| path join '*' '*'
| into glob
| ls $in
| get name
| path split
| each { last 3 | reject 1 | str join "-" }
| each { remove-cache-prefix }
| parse $FULL_EXPERIMENT_FORMAT
| reject timestamp strategy
| each { values | str join '-' }
| uniq
}
export def main [
experiment: string@get-experiments, # something of the form '<seed>-<env>'
experiment: string@get-experiments,
]: nothing -> table<strategy: string, diversity: table<x: int, y: float, e: float>> {
let exp = $experiment | parse "{seed}-{env}" | into record
let exp = $experiment | parse $EXPERIMENT_FORMAT | into record
if $exp == {} {
error throw {
err: "invalid experiment",
label: $"should have format '<seed>-<env>', found ($experiment)",
label: $"should have format '($EXPERIMENT_FORMAT)', found ($experiment)",
span: (metadata $experiment).span,
}
}
let experiment_path = [$consts.CACHE, $exp.seed, '*', $exp.env, '*' ]
let experiment_path = [
$consts.CACHE,
$exp.seed,
(['*', $exp.env, '*', $exp.k, $exp.n, $exp.nb_bytes] | str join '-')
]
| path join
| into glob
let experiment_files = try {
@@ -38,8 +52,9 @@ export def main [
}
$experiment_files
| insert strategy { get name | path split | last }
| select name strategy
| select name
| insert foo { get name | remove-cache-prefix | parse $OTHER_EXPERIMENT_FORMAT }
| flatten --all
| insert diversity {
ls $in.name
| each { get name | open | lines }
Loading