valska.external_tools.pyuvsim.setup

Prepare pyuvsim run directories, configs, and submit scripts.

Functions

prepare_pyuvsim_run(*, template_yaml, ...[, ...])

Prepare a pyuvsim run directory containing a single simulation-stage artefact set.

valska.external_tools.pyuvsim.setup._apply_fwhm_perturbation(cfg: ruamel.yaml.comments.CommentedMap, *, fwhm_perturb_frac: float | None) dict[str, Any] | None

If provided, apply a multiplicative perturbation to fwhm_deg in the config:

fwhm_deg <- fwhm_deg * (1 + fwhm_perturb_frac)

If the config does not define fwhm_deg, return a provenance-only record noting that no change was applied.

valska.external_tools.pyuvsim.setup._apply_valska_root_paths(cfg: ruamel.yaml.comments.CommentedMap, valska_root: Path) dict[str, Any]

Rewrite known pyuvsim file-path fields to absolute paths under valska_root.

valska.external_tools.pyuvsim.setup._default_variant_from_template(template_yaml: Path) str

Derive a stable variant key from a template filename.

Rules:
  • take filename stem

  • remove first occurrence of “_template” if present

  • strip leading/trailing underscores

valska.external_tools.pyuvsim.setup._dump_yaml(data: Mapping[str, Any], path: Path) None

Write YAML using ruamel round-trip formatting.

valska.external_tools.pyuvsim.setup._install_manifest(install: pyuvsimInstall | None) dict[str, Any] | None

Return a serializable install description for the manifest.

valska.external_tools.pyuvsim.setup._load_yaml(path: Path) ruamel.yaml.comments.CommentedMap

Load a YAML file preserving comments and formatting.

valska.external_tools.pyuvsim.setup._runner_manifest(runner: CondaRunner | ContainerRunner) dict[str, Any]

Return a serializable runner description for the manifest.

valska.external_tools.pyuvsim.setup._utc_stamp() str

Return a UTC timestamp suitable for directory naming.

valska.external_tools.pyuvsim.setup._with_valska_root(path_value: Any, valska_root: Path) Any

Convert a pyuvsim template path to an absolute path under valska_root.

If path_value is already absolute and contains ‘/config/pyuvsim/’, preserve the suffix from ‘config/pyuvsim/…’.

valska.external_tools.pyuvsim.setup.prepare_pyuvsim_run(*, template_yaml: Path, install: pyuvsimInstall | None, runner: CondaRunner | ContainerRunner, results_root: Path, beam_model: str, sky_model: str, run_label: str, beamdata_path: Path | None = None, valska_root: Path | None = None, overrides: Mapping[str, Any] | None = None, slurm: Mapping[str, object] | None = None, slurm_cpu: Mapping[str, object] | None = None, run_dir: Path | None = None, run_id: str = 'default', variant: str | None = None, unique: bool = False, fwhm_perturb_frac: float | None = None) dict[str, Path]

Prepare a pyuvsim run directory containing a single simulation-stage artefact set.

Canonical non-sweep layout (when run_dir is None):

<results_root>/pyuvsim/<beam_model>/<sky_model>/<variant>/<run_label>/<run_id>[/<UTCSTAMP>]

Variant defaults to a name derived from the template filename stem (first occurrence of ‘_template’ removed).

Returns

dict

Paths to created artefacts (obsparam yaml, submit script, manifest), plus run_dir.