ScriptQueue#

class lsst.ts.scriptqueue.ScriptQueue(index, initial_state=State.STANDBY, standardpath=None, externalpath=None, verbose=False)#

Bases: BaseCsc

CSC to load and configure scripts, so they can be run.

Parameters:
  • index (int) –

    ScriptQueue SAL component index:

    • 1 for the Main telescope.

    • 2 for AuxTel.

    • Any allowed value (see Raises) for unit tests.

  • initial_state (lsst.ts.salobj.State or int, optional) – The initial state of the CSC.

  • standardpath (str, bytes or os.PathLike (optional)) – Path to standard SAL scripts. If None then use lsst.ts.standardscripts.get_scripts_dir().

  • externalpath (str, bytes or os.PathLike (optional)) – Path to external SAL scripts. If None then use lsst.ts.externalscripts.get_scripts_dir().

  • verbose (bool) – If True then print diagnostic messages to stdout.

Raises:

ValueError – If index < 0 or > MAX_SAL_INDEX//100,000 - 1. If standardpath or externalpath is not an existing directory.

Attributes Summary

Methods Summary

add_arguments(parser)

Add arguments to the parser created by make_from_cmd_line.

add_kwargs_from_args(args, kwargs)

Add constructor keyword arguments based on parsed arguments.

close_tasks()

Shut down the queue, terminate all scripts and free resources.

do_add(data)

Add a script to the queue.

do_move(data)

Move a script within the queue.

do_pause(data)

Pause the queue.

do_requeue(data)

Put a script back on the queue with the same configuration.

do_resume(data)

Run the queue.

do_showAvailableScripts([data])

Output a list of available scripts.

do_showQueue(data)

Output the queue event.

do_showSchema(data)

Output the config schema for a script.

do_showScript(data)

Output the script event for one script.

do_stopScripts(data)

Stop one or more queued scripts and/or the current script.

handle_summary_state()

Called when the summary state has changed.

put_next_visit(script_info)

Output the nextVisit event.

put_next_visit_canceled(script_info)

Output the nextVisitCanceled event.

put_queue()

Output the queued scripts as a queue event.

put_script(script_info[, force_output])

Output information about a script as a script event.

start()

Finish creating the script queue.

Attributes Documentation

enable_cmdline_state = True#
valid_simulation_modes: Sequence[int] = [0]#
version = '?'#

Methods Documentation

classmethod add_arguments(parser)#

Add arguments to the parser created by make_from_cmd_line.

Parameters:

parser (argparse.ArgumentParser) – The argument parser.

Return type:

None

Notes

If you override this method then you should almost certainly override add_kwargs_from_args as well.

classmethod add_kwargs_from_args(args, kwargs)#

Add constructor keyword arguments based on parsed arguments.

Parameters:
  • args (argparse.Namespace) – Parsed command.

  • kwargs (dict) – Keyword argument dict for the constructor. Update this based on args. The index argument will already be present if relevant.

Return type:

None

Notes

If you override this method then you should almost certainly override add_arguments as well.

async close_tasks()#

Shut down the queue, terminate all scripts and free resources.

Return type:

None

async do_add(data)#

Add a script to the queue.

Start and configure a script SAL component, but don’t run it.

On success the result field of the final acknowledgement contains str(index) where index is the SAL index of the added Script.

Parameters:

data (BaseMsgType)

Return type:

None

async do_move(data)#

Move a script within the queue.

Parameters:

data (BaseMsgType)

Return type:

None

async do_pause(data)#

Pause the queue. A no-op if already paused.

Unlike most commands, this can be issued in any state.

Parameters:

data (cmd_pause.DataType (optional)) – Command data. Ignored.

Return type:

None

async do_requeue(data)#

Put a script back on the queue with the same configuration.

Parameters:

data (BaseMsgType)

Return type:

None

async do_resume(data)#

Run the queue. A no-op if already running.

Parameters:

data (cmd_resume.DataType (optional)) – Command data. Ignored.

Return type:

None

async do_showAvailableScripts(data=None)#

Output a list of available scripts.

Parameters:

data (cmd_showAvailableScripts.DataType) – Command data. Ignored.

Return type:

None

async do_showQueue(data)#

Output the queue event.

Parameters:

data (cmd_showQueue.DataType (optional)) – Command data. Ignored.

Return type:

None

async do_showSchema(data)#

Output the config schema for a script.

Parameters:

data (cmd_showSchema.DataType) – Command data specifying the script.

Return type:

None

async do_showScript(data)#

Output the script event for one script.

Parameters:

data (cmd_showScript.DataType (optional)) – Command data. Ignored.

Return type:

None

async do_stopScripts(data)#

Stop one or more queued scripts and/or the current script.

If you stop the current script, it is moved to the history. If you stop queued scripts they are not not moved to the history.

Parameters:

data (BaseMsgType)

Return type:

None

async handle_summary_state()#

Called when the summary state has changed.

Override to perform tasks such as starting and stopping telemetry (example).

Return type:

None

Notes

The versions in BaseCsc and ConfigurableCsc do nothing, so if you subclass one of those you do not need to call await super().handle_summary_state().

async put_next_visit(script_info)#

Output the nextVisit event.

Parameters:

script_info (ScriptInfoProtocol)

Return type:

None

async put_next_visit_canceled(script_info)#

Output the nextVisitCanceled event.

Parameters:

script_info (ScriptInfoProtocol)

Return type:

None

async put_queue()#

Output the queued scripts as a queue event.

The data is put even if the queue has not changed. That way commands which alter the queue can rely on the event being published, even if the command has no effect (e.g. moving a script before itself).

Return type:

None

async put_script(script_info, force_output=False)#

Output information about a script as a script event.

Designed to be used as a QueueModel script_callback.

Parameters:
  • script_info (ScriptInfo) – Information about the script.

  • force_output (bool (optional)) – If True the output even if not changed.

Return type:

None

async start()#

Finish creating the script queue.

Return type:

None