credit.cli._submit
==================

.. py:module:: credit.cli._submit

.. autoapi-nested-parse::

   PBS job submission and training/rollout/realtime command handlers.



Attributes
----------

.. autoapisummary::

   credit.cli._submit.logger


Functions
---------

.. autoapisummary::

   credit.cli._submit._train
   credit.cli._submit._rollout
   credit.cli._submit._realtime
   credit.cli._submit._load_pbs_config
   credit.cli._submit._resolve_pbs_opts
   credit.cli._submit._build_pbs_script
   credit.cli._submit._qsub
   credit.cli._submit._compute_chain
   credit.cli._submit._print_job_plan
   credit.cli._submit._build_realtime_pbs_script
   credit.cli._submit._do_submit_realtime
   credit.cli._submit._submit
   credit.cli._submit._build_rollout_pbs_script
   credit.cli._submit._print_ensemble_rollout_plan
   credit.cli._submit._rollout_ensemble
   credit.cli._submit._do_submit_rollout


Module Contents
---------------

.. py:data:: logger

.. py:function:: _train(args: argparse.Namespace) -> None

.. py:function:: _rollout(args: argparse.Namespace) -> None

.. py:function:: _realtime(args: argparse.Namespace) -> None

.. py:function:: _load_pbs_config(config_path: str) -> dict

   Return the ``pbs:`` section from a YAML config file.


.. py:function:: _resolve_pbs_opts(args: argparse.Namespace, pbs_cfg: dict) -> argparse.Namespace

   Return a copy of *args* with None fields filled from *pbs_cfg* then cluster defaults.


.. py:function:: _build_pbs_script(args: argparse.Namespace, config: str, repo: str, account: str = None, depend_on: str = None, save_loc: str = None) -> str

   Return a PBS batch script string for the given args and config path.


.. py:function:: _qsub(script: str, save_loc: str | None = None) -> str

   Write *script* to save_loc/pbs_scripts/, call qsub, and return the job ID string.


.. py:function:: _compute_chain(args: argparse.Namespace) -> int

   Return the number of jobs to chain.


.. py:function:: _print_job_plan(args: argparse.Namespace, n_jobs: int) -> None

   Print a human-readable summary of what is about to be submitted.


.. py:function:: _build_realtime_pbs_script(args: argparse.Namespace, config: str, repo: str, init_time: str, steps: int, save_loc: str = None) -> str

   Return a PBS script that runs a single realtime forecast.


.. py:function:: _do_submit_realtime(args: argparse.Namespace) -> None

   Submit a single PBS job for a realtime forecast.


.. py:function:: _submit(args: argparse.Namespace) -> None

   Generate and optionally submit PBS batch scripts, with optional chaining.


.. py:function:: _build_rollout_pbs_script(args: argparse.Namespace, config: str, repo: str, subset: int, n_subsets: int, save_loc: str = None) -> str

   Return a PBS script for one subset of an ensemble rollout.


.. py:function:: _print_ensemble_rollout_plan(args: argparse.Namespace, n_jobs: int, n_forecasts: int, ensemble_size: int) -> None

   Print a human-readable summary of an ensemble rollout submission.


.. py:function:: _rollout_ensemble(args: argparse.Namespace) -> None

   Deprecated: use ``credit submit --mode rollout`` instead.


.. py:function:: _do_submit_rollout(args: argparse.Namespace) -> None

   Submit N parallel PBS rollout jobs to cover all init times.


