CLI crashes for task parameters starting with run/executor/plugins (e.g. runtime=…): "Run overwrites must start with 'run.'"
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 78/100
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
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")returnsa.b=1— everyrun.occurrence is stripped, silently targeting the wrong parameter._parse_prefixed_args(["executor=k=v"], "executor")returns valuekinstead ofk=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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NVIDIA-NeMo/Run
-
community-request waiting-on-maintainers
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
NVIDIA-NeMo/Run#610 ·
-
community-request waiting-on-maintainers
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
NVIDIA-NeMo/Run#608 ·
-
community-request
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
NVIDIA-NeMo/Run#559 · 1 commento ·
-
bug community-request waiting-on-maintainers
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
NVIDIA-NeMo/Run#481 · 1 commento ·
-
community-request waiting-on-maintainers
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
NVIDIA-NeMo/Run#606 ·
Tutte le issue di NVIDIA-NeMo/Run
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
stephrobert/dsoxlab#238 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
sublimehq/package_control#1780 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
nwg-piotr/nwg-displays#145 ·