nemo-evaluator-launcher 0.1.0rc6__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.
Files changed (62) hide show
  1. {nemo_evaluator_launcher-0.1.0rc6/src/nemo_evaluator_launcher.egg-info → nemo_evaluator_launcher-0.1.0rc8}/PKG-INFO +1 -1
  2. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/api/functional.py +38 -1
  3. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/slurm/executor.py +15 -2
  4. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/package_info.py +1 -1
  5. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8/src/nemo_evaluator_launcher.egg-info}/PKG-INFO +1 -1
  6. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/LICENSE +0 -0
  7. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/README.md +0 -0
  8. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/pyproject.toml +0 -0
  9. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/setup.cfg +0 -0
  10. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/__init__.py +0 -0
  11. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/api/__init__.py +0 -0
  12. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/api/types.py +0 -0
  13. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/api/utils.py +0 -0
  14. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/__init__.py +0 -0
  15. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/export.py +0 -0
  16. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/info.py +0 -0
  17. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/kill.py +0 -0
  18. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/ls_runs.py +0 -0
  19. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/ls_tasks.py +0 -0
  20. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/main.py +0 -0
  21. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/run.py +0 -0
  22. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/status.py +0 -0
  23. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/cli/version.py +0 -0
  24. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/common/__init__.py +0 -0
  25. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/common/execdb.py +0 -0
  26. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/common/helpers.py +0 -0
  27. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/common/logging_utils.py +0 -0
  28. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/common/mapping.py +0 -0
  29. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/__init__.py +0 -0
  30. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/default.yaml +0 -0
  31. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/deployment/nim.yaml +0 -0
  32. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/deployment/none.yaml +0 -0
  33. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/deployment/sglang.yaml +0 -0
  34. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/deployment/vllm.yaml +0 -0
  35. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/execution/lepton/default.yaml +0 -0
  36. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/execution/local.yaml +0 -0
  37. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/configs/execution/slurm/default.yaml +0 -0
  38. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/__init__.py +0 -0
  39. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/base.py +0 -0
  40. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/lepton/__init__.py +0 -0
  41. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/lepton/deployment_helpers.py +0 -0
  42. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/lepton/executor.py +0 -0
  43. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/lepton/job_helpers.py +0 -0
  44. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/local/__init__.py +0 -0
  45. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/local/executor.py +0 -0
  46. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/local/run.template.sh +0 -0
  47. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/registry.py +0 -0
  48. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/executors/slurm/__init__.py +0 -0
  49. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/__init__.py +0 -0
  50. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/base.py +0 -0
  51. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/gsheets.py +0 -0
  52. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/local.py +0 -0
  53. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/mlflow.py +0 -0
  54. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/registry.py +0 -0
  55. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/utils.py +0 -0
  56. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/exporters/wandb.py +0 -0
  57. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher/resources/mapping.toml +0 -0
  58. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher.egg-info/SOURCES.txt +0 -0
  59. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher.egg-info/dependency_links.txt +0 -0
  60. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher.egg-info/entry_points.txt +0 -0
  61. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher.egg-info/requires.txt +0 -0
  62. {nemo_evaluator_launcher-0.1.0rc6 → nemo_evaluator_launcher-0.1.0rc8}/src/nemo_evaluator_launcher.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nemo-evaluator-launcher
3
- Version: 0.1.0rc6
3
+ Version: 0.1.0rc8
4
4
  Summary: NeMo Evaluator Launcher - Public API
5
5
  Requires-Python: <3.14,>=3.10
6
6
  Description-Content-Type: text/markdown
@@ -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
- job_data = ExecutionDB().get_job(single_id)
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# AUTO-EXPORT ON SUCCESS\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"
@@ -16,7 +16,7 @@
16
16
  MAJOR = 0
17
17
  MINOR = 1
18
18
  PATCH = 0
19
- PRE_RELEASE = "rc6"
19
+ PRE_RELEASE = "rc8"
20
20
 
21
21
  # Use the following formatting: (major, minor, patch, pre-release)
22
22
  VERSION = (MAJOR, MINOR, PATCH, PRE_RELEASE)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nemo-evaluator-launcher
3
- Version: 0.1.0rc6
3
+ Version: 0.1.0rc8
4
4
  Summary: NeMo Evaluator Launcher - Public API
5
5
  Requires-Python: <3.14,>=3.10
6
6
  Description-Content-Type: text/markdown