tools@scheduler option

momotor.options.domain.scheduler.tools.get_scheduler_tools_option(recipe, config, step_id)

Get the tool requirements by parsing the tools@scheduler option for a single step

This gets the value of the tools@scheduler option for the step, and subsequently gets the specific tool version requirements (if any) from the options in the tools domain.

A step requiring tools must define the tools@scheduler option in the recipe. The tool version options are defined in the tools domain in the normal locations: config, recipe, step.

Example of a step defining some tool requirements:

<recipe ...>
  ...
  <step ...>
    ...
    <options domain="scheduler">
      <option name="tools" value="anaconda3" />
    </options>
    <options domain="tools">
      <option name="anaconda3" value="anaconda3/_/momotor anaconda3" />
    </options>
    ...
  </step>
  ...
</recipe>

This indicates to the scheduler that this step requires the anaconda3 tool. It also indicates to both the scheduler and to the checklet that will execute this step that the anaconda3/_/momotor version is preferred, but if not available any anaconda3 will do.

For the format of the tool version requirements, see Tool registry.

Return type:

Mapping[str, FrozenSet[Union[str, PathLike, ToolName]]]