Skip to content

Commit 5dd49a8

Browse files
committed
remove unrelated changes
1 parent 05b9b5b commit 5dd49a8

3 files changed

Lines changed: 18 additions & 100 deletions

File tree

src/srtctl/cli/interactive.py

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -199,25 +199,6 @@ def confirm_submission(config_path: Path, config: dict, is_sweep: bool) -> bool:
199199
).ask()
200200

201201

202-
def ask_run_name_suffix(config_path: Path) -> tuple[bool, str | None]:
203-
"""Prompt for optional run name suffix; suggest recipe stem (e.g. _agg4_dep8_batch8_nvfp4).
204-
205-
Returns:
206-
(cancelled, suffix): cancelled is True if user pressed Ctrl+C, suffix is the value or None for no suffix
207-
"""
208-
suggested = f"_{config_path.stem}" if config_path.stem else ""
209-
answer = questionary.text(
210-
"Run name suffix for output dir (e.g. _tep8x1_tep8x3 → outputs/12345_tep8x1_tep8x3). Leave empty for none:",
211-
default=suggested,
212-
style=STYLE,
213-
).ask()
214-
if answer is None:
215-
# User pressed Ctrl+C
216-
return (True, None)
217-
value = (answer or "").strip()
218-
return (False, value if value else None)
219-
220-
221202
def preview_sbatch(config_path: Path, config: dict) -> None:
222203
"""Preview the generated sbatch script."""
223204
from srtctl.cli.submit import generate_minimal_sbatch_script
@@ -308,13 +289,6 @@ def run_interactive() -> int:
308289
console.print()
309290
display_config_summary(config, title=str(config_path))
310291

311-
# Ask for run name suffix before the action menu
312-
console.print()
313-
cancelled, run_name_suffix = ask_run_name_suffix(config_path)
314-
if cancelled:
315-
console.print("[yellow]Cancelled.[/]")
316-
return 0
317-
318292
# Action menu
319293
while True:
320294
console.print()
@@ -343,11 +317,6 @@ def run_interactive() -> int:
343317
config = yaml.safe_load(f)
344318
is_sweep = "sweep" in config
345319
display_config_summary(config, title=str(config_path))
346-
console.print()
347-
cancelled, run_name_suffix = ask_run_name_suffix(config_path)
348-
if cancelled:
349-
console.print("[yellow]Cancelled.[/]")
350-
return 0
351320

352321
elif action == "preview":
353322
preview_sbatch(config_path, config)
@@ -382,9 +351,9 @@ def run_interactive() -> int:
382351

383352
try:
384353
if is_sweep:
385-
submit_sweep(config_path, dry_run=False, run_name_suffix=run_name_suffix)
354+
submit_sweep(config_path, dry_run=False)
386355
else:
387-
submit_single(config_path=config_path, dry_run=False, run_name_suffix=run_name_suffix)
356+
submit_single(config_path=config_path, dry_run=False)
388357
console.print("\n[bold green]✅ Submission complete![/]")
389358
return 0
390359
except Exception as e:

src/srtctl/cli/submit.py

Lines changed: 14 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,6 @@ def generate_minimal_sbatch_script(
184184
setup_script: str | None = None,
185185
output_dir: Path | None = None,
186186
runtime_config_filename: str = "config.yaml",
187-
run_name_suffix: str | None = None,
188187
) -> str:
189188
"""Generate minimal sbatch script that calls the Python orchestrator.
190189
@@ -235,7 +234,6 @@ def generate_minimal_sbatch_script(
235234
container_image = os.path.expandvars(config.model.container)
236235

237236
job_name = get_job_name(config)
238-
run_suffix = run_name_suffix or get_srtslurm_setting("run_name_suffix") or ""
239237

240238
rendered = template.render(
241239
job_name=job_name,
@@ -256,7 +254,6 @@ def generate_minimal_sbatch_script(
256254
srtctl_source=str(srtctl_source.resolve()),
257255
output_base=output_base,
258256
setup_script=setup_script,
259-
run_name_suffix=run_suffix,
260257
)
261258

262259
return rendered
@@ -269,7 +266,7 @@ def submit_with_orchestrator(
269266
tags: list[str] | None = None,
270267
setup_script: str | None = None,
271268
output_dir: Path | None = None,
272-
run_name_suffix: str | None = None,
269+
variant_suffix: str | None = None,
273270
source_config_path: Path | None = None,
274271
runtime_config_text: str | None = None,
275272
) -> str | None:
@@ -284,8 +281,8 @@ def submit_with_orchestrator(
284281
tags: Optional tags for the run
285282
setup_script: Optional custom setup script name (overrides config)
286283
output_dir: Custom output directory (CLI flag, highest priority)
287-
run_name_suffix: If set (e.g. "base", "lowmem"), also save config_path
288-
as config_{run_name_suffix}.yaml in the job output dir.
284+
variant_suffix: If set (e.g. "base", "lowmem"), also save config_path
285+
as config_{variant_suffix}.yaml in the job output dir.
289286
source_config_path: If set, save the original source YAML as config.yaml
290287
while the job executes a resolved variant config.
291288
runtime_config_text: Resolved runtime YAML written under OUTPUT_DIR when
@@ -295,8 +292,6 @@ def submit_with_orchestrator(
295292
job_id string on success, None for dry_run.
296293
"""
297294

298-
run_suffix = run_name_suffix if run_name_suffix is not None else (get_srtslurm_setting("run_name_suffix") or "")
299-
300295
if config is None:
301296
config = load_config(config_path)
302297

@@ -306,15 +301,14 @@ def submit_with_orchestrator(
306301
if runtime_config_text is None:
307302
raise ValueError("runtime_config_text is required when source_config_path is set")
308303
resolved_runtime_config_text = runtime_config_text
309-
runtime_config_filename = f"config_{run_name_suffix}.yaml" if run_name_suffix else "config_resolved.yaml"
304+
runtime_config_filename = f"config_{variant_suffix}.yaml" if variant_suffix else "config_resolved.yaml"
310305

311306
script_content = generate_minimal_sbatch_script(
312307
config=config,
313308
config_path=config_path,
314309
setup_script=setup_script,
315310
output_dir=output_dir,
316311
runtime_config_filename=runtime_config_filename,
317-
run_name_suffix=run_suffix or None,
318312
)
319313

320314
if dry_run:
@@ -357,20 +351,19 @@ def submit_with_orchestrator(
357351
)
358352

359353
job_id = result.stdout.strip().split()[-1]
360-
job_dir_name = f"{job_id}{run_suffix}"
361354

362355
# Determine output directory
363356
# Priority: CLI -o flag > srtslurm.yaml output_dir > srtctl_root/outputs
364357
if output_dir:
365-
job_output_dir = output_dir / job_dir_name
358+
job_output_dir = output_dir / job_id
366359
else:
367360
custom_output_dir = get_srtslurm_setting("output_dir")
368361
if custom_output_dir:
369-
job_output_dir = Path(os.path.expandvars(custom_output_dir)) / job_dir_name
362+
job_output_dir = Path(os.path.expandvars(custom_output_dir)) / job_id
370363
else:
371364
srtctl_root = get_srtslurm_setting("srtctl_root")
372365
srtctl_source = Path(srtctl_root) if srtctl_root else Path(__file__).parent.parent.parent.parent
373-
job_output_dir = srtctl_source / "outputs" / job_dir_name
366+
job_output_dir = srtctl_source / "outputs" / job_id
374367
job_output_dir.mkdir(parents=True, exist_ok=True)
375368

376369
shutil.copy(source_config_path or config_path, job_output_dir / "config.yaml")
@@ -458,7 +451,7 @@ def submit_single(
458451
setup_script: str | None = None,
459452
tags: list[str] | None = None,
460453
output_dir: Path | None = None,
461-
run_name_suffix: str | None = None,
454+
variant_suffix: str | None = None,
462455
source_config_path: Path | None = None,
463456
runtime_config_text: str | None = None,
464457
) -> str | None:
@@ -473,7 +466,7 @@ def submit_single(
473466
setup_script: Optional custom setup script name
474467
tags: Optional list of tags
475468
output_dir: Custom output directory (CLI flag, highest priority)
476-
run_name_suffix: If set, also save config as config_{suffix}.yaml in job output dir.
469+
variant_suffix: If set, also save config as config_{suffix}.yaml in job output dir.
477470
source_config_path: If set, saved as config.yaml while execution uses the
478471
resolved variant config.
479472
runtime_config_text: Resolved runtime YAML written under OUTPUT_DIR for
@@ -496,7 +489,7 @@ def submit_single(
496489
tags=tags,
497490
setup_script=setup_script,
498491
output_dir=output_dir,
499-
run_name_suffix=run_name_suffix,
492+
variant_suffix=variant_suffix,
500493
source_config_path=source_config_path,
501494
runtime_config_text=runtime_config_text,
502495
)
@@ -518,7 +511,6 @@ def submit_sweep(
518511
setup_script: str | None = None,
519512
tags: list[str] | None = None,
520513
output_dir: Path | None = None,
521-
run_name_suffix: str | None = None,
522514
):
523515
"""Submit parameter sweep.
524516
@@ -528,7 +520,6 @@ def submit_sweep(
528520
setup_script: Optional custom setup script name
529521
tags: Optional list of tags
530522
output_dir: Custom output directory (CLI flag, highest priority)
531-
run_name_suffix: Optional suffix appended to each job's output dir name
532523
"""
533524
from srtctl.core.sweep import generate_sweep_configs
534525

@@ -603,7 +594,6 @@ def submit_sweep(
603594
setup_script=setup_script,
604595
tags=tags,
605596
output_dir=output_dir,
606-
run_name_suffix=run_name_suffix,
607597
)
608598
finally:
609599
with contextlib.suppress(OSError):
@@ -634,7 +624,6 @@ def submit_directory(
634624
tags: list[str] | None = None,
635625
force_sweep: bool = False,
636626
output_dir: Path | None = None,
637-
run_name_suffix: str | None = None,
638627
) -> None:
639628
"""Submit all YAML configs in a directory recursively.
640629
@@ -645,7 +634,6 @@ def submit_directory(
645634
tags: Optional list of tags
646635
force_sweep: If True, treat all configs as sweeps
647636
output_dir: Custom output directory (CLI flag, highest priority)
648-
run_name_suffix: Optional suffix for output dir name
649637
"""
650638
yaml_files = find_yaml_files(directory)
651639

@@ -685,31 +673,12 @@ def submit_directory(
685673

686674
try:
687675
if is_override_config(yaml_file):
688-
submit_override(
689-
yaml_file,
690-
dry_run=dry_run,
691-
setup_script=setup_script,
692-
tags=tags,
693-
output_dir=output_dir,
694-
run_name_suffix=run_name_suffix,
695-
)
676+
submit_override(yaml_file, dry_run=dry_run, setup_script=setup_script, tags=tags, output_dir=output_dir)
696677
elif force_sweep or is_sweep_config(yaml_file):
697-
submit_sweep(
698-
yaml_file,
699-
dry_run=dry_run,
700-
setup_script=setup_script,
701-
tags=tags,
702-
output_dir=output_dir,
703-
run_name_suffix=run_name_suffix,
704-
)
678+
submit_sweep(yaml_file, dry_run=dry_run, setup_script=setup_script, tags=tags, output_dir=output_dir)
705679
else:
706680
submit_single(
707-
config_path=yaml_file,
708-
dry_run=dry_run,
709-
setup_script=setup_script,
710-
tags=tags,
711-
output_dir=output_dir,
712-
run_name_suffix=run_name_suffix,
681+
config_path=yaml_file, dry_run=dry_run, setup_script=setup_script, tags=tags, output_dir=output_dir
713682
)
714683
success_count += 1
715684
except Exception as e:
@@ -787,7 +756,6 @@ def submit_override(
787756
setup_script: str | None = None,
788757
tags: list[str] | None = None,
789758
output_dir: Path | None = None,
790-
run_name_suffix: str | None = None,
791759
) -> None:
792760
"""Expand an override config file and submit each variant.
793761
@@ -801,7 +769,6 @@ def submit_override(
801769
setup_script: Optional custom setup script name
802770
tags: Optional list of tags
803771
output_dir: Custom output directory
804-
run_name_suffix: Optional suffix for output dir name
805772
"""
806773
with open(config_path) as f:
807774
raw_config = yaml.safe_load(f)
@@ -851,7 +818,6 @@ def submit_override(
851818
setup_script=setup_script,
852819
tags=tags,
853820
output_dir=output_dir,
854-
run_name_suffix=suffix,
855821
)
856822
finally:
857823
with contextlib.suppress(OSError):
@@ -864,7 +830,7 @@ def submit_override(
864830
setup_script=setup_script,
865831
tags=tags,
866832
output_dir=output_dir,
867-
run_name_suffix=suffix,
833+
variant_suffix=suffix,
868834
source_config_path=config_path,
869835
runtime_config_text=runtime_config_text,
870836
)
@@ -948,13 +914,6 @@ def add_common_args(p):
948914
help="YAML config file, directory, or file:selector for overrides",
949915
)
950916
p.add_argument("-o", "--output", type=Path, dest="output_dir", help="Custom output directory for job logs")
951-
p.add_argument(
952-
"--run-name-suffix",
953-
type=str,
954-
dest="run_name_suffix",
955-
default=None,
956-
help="Suffix for output dir name (e.g. _myrun -> outputs/12345_myrun)",
957-
)
958917
p.add_argument("--sweep", action="store_true", help="Force sweep mode")
959918
p.add_argument("-y", "--yes", action="store_true", help="Skip confirmation prompts")
960919

@@ -1007,11 +966,6 @@ def add_common_args(p):
1007966

1008967
setup_script = getattr(args, "setup_script", None)
1009968
output_dir = getattr(args, "output_dir", None)
1010-
run_name_suffix = getattr(args, "run_name_suffix", None)
1011-
1012-
if run_name_suffix is None and not is_dry_run and not getattr(args, "yes", False):
1013-
raw = console.input("[bold cyan]Run name suffix[/] (leave empty to skip): ").strip()
1014-
run_name_suffix = raw or None
1015969

1016970
# Handle directory input
1017971
if config_path.is_dir():
@@ -1024,7 +978,6 @@ def add_common_args(p):
1024978
tags=tags,
1025979
force_sweep=args.sweep,
1026980
output_dir=output_dir,
1027-
run_name_suffix=run_name_suffix,
1028981
)
1029982
elif is_override_config(config_path):
1030983
submit_override(
@@ -1034,7 +987,6 @@ def add_common_args(p):
1034987
setup_script=setup_script,
1035988
tags=tags,
1036989
output_dir=output_dir,
1037-
run_name_suffix=run_name_suffix,
1038990
)
1039991
else:
1040992
if selector:
@@ -1047,7 +999,6 @@ def add_common_args(p):
1047999
setup_script=setup_script,
10481000
tags=tags,
10491001
output_dir=output_dir,
1050-
run_name_suffix=run_name_suffix,
10511002
)
10521003
else:
10531004
submit_single(
@@ -1056,7 +1007,6 @@ def add_common_args(p):
10561007
setup_script=setup_script,
10571008
tags=tags,
10581009
output_dir=output_dir,
1059-
run_name_suffix=run_name_suffix,
10601010
)
10611011
except Exception as e:
10621012
console.print(f"[bold red]Error:[/] {e}")

src/srtctl/templates/job_script_minimal.j2

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
{% endif %}
2222
#SBATCH --account={{ account }}
2323
#SBATCH --time={{ time_limit }}
24-
#SBATCH --output={{ output_base }}/%j{{ run_name_suffix }}/logs/sweep_%j.log
24+
#SBATCH --output={{ output_base }}/%j/logs/sweep_%j.log
2525
#SBATCH --partition={{ partition }}
2626
{% for key, value in sbatch_directives.items() %}
2727
{% if value %}
@@ -43,8 +43,7 @@ set -e
4343
# Setup directories
4444
SRTCTL_SOURCE="{{ srtctl_source }}"
4545
OUTPUT_BASE="{{ output_base }}"
46-
RUN_NAME_SUFFIX="{{ run_name_suffix }}"
47-
OUTPUT_DIR="${OUTPUT_BASE}/${SLURM_JOB_ID}${RUN_NAME_SUFFIX}"
46+
OUTPUT_DIR="${OUTPUT_BASE}/${SLURM_JOB_ID}"
4847
LOG_DIR="${OUTPUT_DIR}/logs"
4948
mkdir -p "${LOG_DIR}"
5049

0 commit comments

Comments
 (0)