nemo-evaluator-launcher 0.1.0rc7__tar.gz → 0.1.0rc8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nemo_evaluator_launcher-0.1.0rc7/src/nemo_evaluator_launcher.egg-info → nemo_evaluator_launcher-0.1.0rc8}/PKG-INFO +1 -1
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/api/functional.py +38 -1
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/slurm/executor.py +15 -2
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/package_info.py +1 -1
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8/src/nemo_evaluator_launcher.egg-info}/PKG-INFO +1 -1
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/LICENSE +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/README.md +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/pyproject.toml +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/setup.cfg +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/__init__.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/api/__init__.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/api/types.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/api/utils.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/__init__.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/export.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/info.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/kill.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/ls_runs.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/ls_tasks.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/main.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/run.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/status.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/version.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/common/__init__.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/common/execdb.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/common/helpers.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/common/logging_utils.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/common/mapping.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/__init__.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/default.yaml +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/deployment/nim.yaml +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/deployment/none.yaml +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/deployment/sglang.yaml +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/deployment/vllm.yaml +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/execution/lepton/default.yaml +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/execution/local.yaml +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/execution/slurm/default.yaml +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/__init__.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/base.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/lepton/__init__.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/lepton/deployment_helpers.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/lepton/executor.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/lepton/job_helpers.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/local/__init__.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/local/executor.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/local/run.template.sh +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/registry.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/slurm/__init__.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/__init__.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/base.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/gsheets.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/local.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/mlflow.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/registry.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/utils.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/wandb.py +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/resources/mapping.toml +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher.egg-info/SOURCES.txt +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher.egg-info/dependency_links.txt +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher.egg-info/entry_points.txt +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher.egg-info/requires.txt +0 -0
- {nemo_evaluator_launcher-0.1.0rc7 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher.egg-info/top_level.txt +0 -0
|
@@ -18,8 +18,10 @@
|
|
|
18
18
|
This module provides the main functional entry points for running evaluations, querying job status, and listing available tasks. These functions are intended to be used by CLI commands and external integrations.
|
|
19
19
|
"""
|
|
20
20
|
|
|
21
|
+
from pathlib import Path
|
|
21
22
|
from typing import Any, List, Optional, Union
|
|
22
23
|
|
|
24
|
+
import yaml
|
|
23
25
|
from omegaconf import DictConfig, OmegaConf
|
|
24
26
|
|
|
25
27
|
from nemo_evaluator_launcher.api.types import RunConfig
|
|
@@ -434,7 +436,42 @@ def export_results(
|
|
|
434
436
|
single_id = invocation_ids[0]
|
|
435
437
|
|
|
436
438
|
if "." in single_id: # job_id
|
|
437
|
-
|
|
439
|
+
md_job_data = None
|
|
440
|
+
# Use artifacts/run_config.yml if present
|
|
441
|
+
ypath_artifacts = Path("run_config.yml")
|
|
442
|
+
if ypath_artifacts.exists():
|
|
443
|
+
try:
|
|
444
|
+
cfg_yaml = (
|
|
445
|
+
yaml.safe_load(ypath_artifacts.read_text(encoding="utf-8"))
|
|
446
|
+
or {}
|
|
447
|
+
)
|
|
448
|
+
# merge exporter config if present
|
|
449
|
+
ypath_export = Path("export_config.yml")
|
|
450
|
+
if ypath_export.exists():
|
|
451
|
+
exp_yaml = (
|
|
452
|
+
yaml.safe_load(ypath_export.read_text(encoding="utf-8"))
|
|
453
|
+
or {}
|
|
454
|
+
)
|
|
455
|
+
exec_cfg = cfg_yaml.get("execution") or {}
|
|
456
|
+
auto_exp = (exp_yaml.get("execution") or {}).get(
|
|
457
|
+
"auto_export"
|
|
458
|
+
)
|
|
459
|
+
if auto_exp is not None:
|
|
460
|
+
exec_cfg["auto_export"] = auto_exp
|
|
461
|
+
cfg_yaml["execution"] = exec_cfg
|
|
462
|
+
# metadata
|
|
463
|
+
md_job_data = JobData(
|
|
464
|
+
invocation_id=single_id.split(".")[0],
|
|
465
|
+
job_id=single_id,
|
|
466
|
+
timestamp=0.0,
|
|
467
|
+
executor="local", #
|
|
468
|
+
data={"output_dir": str(Path.cwd().parent)},
|
|
469
|
+
config=cfg_yaml,
|
|
470
|
+
)
|
|
471
|
+
except Exception:
|
|
472
|
+
md_job_data = None
|
|
473
|
+
# fallback to execDB only
|
|
474
|
+
job_data = md_job_data or ExecutionDB().get_job(single_id)
|
|
438
475
|
if job_data is None:
|
|
439
476
|
return {
|
|
440
477
|
"success": False,
|
|
@@ -470,6 +470,8 @@ def _create_slurm_sbatch_script(
|
|
|
470
470
|
s += "#SBATCH --exclusive\n"
|
|
471
471
|
s += "#SBATCH --output {}\n".format(remote_task_subdir / "logs" / "slurm-%A.out")
|
|
472
472
|
s += "\n"
|
|
473
|
+
s += f'TASK_DIR="{str(remote_task_subdir)}"\n'
|
|
474
|
+
s += "\n"
|
|
473
475
|
|
|
474
476
|
# collect all env vars
|
|
475
477
|
env_vars = copy.deepcopy(dict(cfg.evaluation.get("env_vars", {})))
|
|
@@ -620,11 +622,22 @@ def _generate_auto_export_section(
|
|
|
620
622
|
if not destinations:
|
|
621
623
|
return ""
|
|
622
624
|
|
|
623
|
-
s = "\n#
|
|
625
|
+
s = "\n# Auto-export on success\n"
|
|
624
626
|
s += "EVAL_EXIT_CODE=$?\n"
|
|
625
627
|
s += "if [ $EVAL_EXIT_CODE -eq 0 ]; then\n"
|
|
626
628
|
s += " echo 'Evaluation completed successfully. Starting auto-export...'\n"
|
|
627
|
-
|
|
629
|
+
s += " set +e\n" # per exporter failure allowed
|
|
630
|
+
s += " set +x\n"
|
|
631
|
+
s += ' cd "$TASK_DIR/artifacts"\n'
|
|
632
|
+
auto_export_cfg = OmegaConf.to_container(
|
|
633
|
+
cfg.execution.get("auto_export", {}), resolve=True
|
|
634
|
+
)
|
|
635
|
+
yaml_str = yaml.safe_dump(
|
|
636
|
+
{"execution": {"auto_export": auto_export_cfg}}, sort_keys=False
|
|
637
|
+
)
|
|
638
|
+
s += " cat > export_config.yml << 'EOF'\n"
|
|
639
|
+
s += yaml_str
|
|
640
|
+
s += "EOF\n"
|
|
628
641
|
for dest in destinations:
|
|
629
642
|
s += f" echo 'Exporting to {dest}...'\n"
|
|
630
643
|
s += f" nemo-evaluator-launcher export {job_id} --dest {dest} || echo 'Export to {dest} failed'\n"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|