Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

CLI crashes for task parameters starting with run/executor/plugins (e.g. runtime=…): "Run overwrites must start with 'run.'"

Aperta
#604 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
cli

Direzione di ricerca

Inizia con _parse_prefixed_args e il suo chiamante, RunContext.cli_execute. Riproduci i casi a livello di unità per runtime=3600, i prefissi run. ripetuti ed executor=k=v, quindi traccia il comportamento esistente dell'analisi degli argomenti. Il lavoro è completato quando i normali parametri dell'attività vengono accettati, vengono gestiti solo i prefissi iniziali validi, i prefissi ripetuti non vengono rimossi silenziosamente e i valori contenenti '=' vengono preservati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

community-request waiting-on-maintainers
Description

Any @run.cli.entrypoint function with a parameter whose name starts with a reserved prefix (run, executor, plugins) cannot be configured from the CLI — the invocation crashes before the task argument parser runs:

ValueError: Run overwrites must start with 'run.'. Got runtime=120

Affected names include runtime, run_id, runs_per_epoch, executors, plugins_dir etc — all normal parameter names.

Steps to reproduce
# app.py
import nemo_run as run

@run.cli.entrypoint(skip_confirmation=True)
def train(runtime: int = 60, lr: float = 0.1):
    print(runtime, lr)

if __name__ == "__main__":
    run.cli.main(train)
$ python app.py runtime=120 lr=0.2
ValueError: Run overwrites must start with 'run.'. Got runtime=120

Unit-level: _parse_prefixed_args(["runtime=3600"], "run") raises.

Expected behavior

runtime is a task parameter, the run should behave like any other name (max_runtime=120 works today). Only run=…, run.…, run[…] (and executor/plugins equivalents) should be treated as prefixed overwrites.

Actual behavior

RunContext.cli_execute passes all task args through _parse_prefixed_args(args, "run"), which matches startswith("run") with no word boundary.

Two more issues in the same function:

  • _parse_prefixed_args(["run.a.run.b=1"], "run") returns a.b=1 — every run. occurrence is stripped, silently targeting the wrong parameter.
  • _parse_prefixed_args(["executor=k=v"], "executor") returns value k instead of k=v (value split at first =).
Environment

nemo-run main (b85eb67), Python 3.12, macOS

Lingua principale
Python
Stelle
259
Fork
114
Merge medio
1g 3h
PR unite (30g)
5

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di NVIDIA-NeMo/Run

Tutte le issue di NVIDIA-NeMo/Run

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.