diff --git a/bins/inbreeding/consts.nu b/bins/inbreeding/consts.nu index 177d568cedaf2db37854e65516e47f9fa3a68afc..708ac7abee9d4329ee571eb63dac32b92d0728c6 100644 --- a/bins/inbreeding/consts.nu +++ b/bins/inbreeding/consts.nu @@ -1,2 +1,6 @@ export const BIN = "./target/release/inbreeding" export const CACHE = ($nu.home-path | path join .cache komodo inbreeding) + +export const ARG_EXPERIMENT_FORMAT = "{seed}-{env}-{k}-{n}-{nb_bytes}" +export const EXPERIMENT_FORMAT = "{timestamp}-{env}-{strategy}-{k}-{n}-{nb_bytes}" +export const FULL_EXPERIMENT_FORMAT = $"{seed}(char path_sep)($EXPERIMENT_FORMAT)" diff --git a/bins/inbreeding/inspect.nu b/bins/inbreeding/inspect.nu new file mode 100644 index 0000000000000000000000000000000000000000..8fe9d548d95490a7314a654074690494b5274fdf --- /dev/null +++ b/bins/inbreeding/inspect.nu @@ -0,0 +1,32 @@ +use consts.nu +use path.nu [ "remove-cache-prefix" ] + +def get-seeds [] [ nothing -> list<string> ] { + $consts.CACHE | path join '*' | into glob | ls $in | get name | each { path split | last } +} + +export def main [seed: int@get-seeds]: [ + nothing -> table< + seed: string, + timestamp: string, + env: string, + strategy: string, + k: string, + n: string, + nb_bytes: string, + m: int, + > +] { + $consts.CACHE + | path join ($seed | into string) '*' + | into glob + | ls $in + | insert m { ls $in.name | length } + | select name m + | update name { + remove-cache-prefix + | parse $consts.FULL_EXPERIMENT_FORMAT + } + | flatten --all name +} + diff --git a/bins/inbreeding/load.nu b/bins/inbreeding/load.nu index 9537b96b7ffce8688132fecd65ca7f05cf311172..3c2c5cd77f83f1ce589e618bf40025d5e966e84b 100644 --- a/bins/inbreeding/load.nu +++ b/bins/inbreeding/load.nu @@ -1,14 +1,7 @@ use consts.nu +use path.nu [ "remove-cache-prefix" ] use ../../.nushell error "error throw" -const ARG_EXPERIMENT_FORMAT = "{seed}-{env}-{k}-{n}-{nb_bytes}" -const EXPERIMENT_FORMAT = "{timestamp}-{env}-{strategy}-{k}-{n}-{nb_bytes}" -const FULL_EXPERIMENT_FORMAT = $"{seed}(char path_sep)($EXPERIMENT_FORMAT)" - -def remove-cache-prefix []: path -> string { - str replace $"($consts.CACHE)(char path_sep)" '' -} - # return experiment names following `$ARG_EXPERIMENT_FORMAT` def get-experiments []: nothing -> list<string> { $consts.CACHE @@ -17,7 +10,7 @@ def get-experiments []: nothing -> list<string> { | ls $in | get name | each { remove-cache-prefix } - | parse $FULL_EXPERIMENT_FORMAT + | parse $consts.FULL_EXPERIMENT_FORMAT | reject timestamp strategy | each { values | str join '-' } | uniq @@ -26,11 +19,11 @@ def get-experiments []: nothing -> list<string> { export def main [ experiment: string@get-experiments, ]: nothing -> table<strategy: string, diversity: table<x: int, y: float, e: float>> { - let exp = $experiment | parse $ARG_EXPERIMENT_FORMAT | into record + let exp = $experiment | parse $consts.ARG_EXPERIMENT_FORMAT | into record if $exp == {} { error throw { err: "invalid experiment", - label: $"should have format '($ARG_EXPERIMENT_FORMAT)', found ($experiment)", + label: $"should have format '($consts.ARG_EXPERIMENT_FORMAT)', found ($experiment)", span: (metadata $experiment).span, } } @@ -54,7 +47,7 @@ export def main [ $experiment_files | select name - | insert . { get name | remove-cache-prefix | parse $EXPERIMENT_FORMAT } + | insert . { get name | remove-cache-prefix | parse $consts.EXPERIMENT_FORMAT } | flatten --all | insert diversity { ls $in.name diff --git a/bins/inbreeding/mod.nu b/bins/inbreeding/mod.nu index 6917cad337879d3b0d53c99d2a17b3a2d1b81720..f3bdbd9dfce28c9c657c0b8fb205b39c5c01445d 100644 --- a/bins/inbreeding/mod.nu +++ b/bins/inbreeding/mod.nu @@ -1,4 +1,5 @@ export use build.nu export use run.nu +export use inspect.nu export use load.nu export use plot.nu diff --git a/bins/inbreeding/path.nu b/bins/inbreeding/path.nu new file mode 100644 index 0000000000000000000000000000000000000000..4614db12ff3e211215ad1d5cebc21ba0a4ac2ae4 --- /dev/null +++ b/bins/inbreeding/path.nu @@ -0,0 +1,5 @@ +use consts.nu + +export def remove-cache-prefix []: path -> string { + str replace $"($consts.CACHE)(char path_sep)" '' +}