Option¶
- class momotor.options.option.OptionDefinition(name, type=None, doc=None, required=False, multiple=False, all=False, location=None, domain=None, default=<object object>, enable=True, deprecated=None)¶
Definition of an option.
Options are provided by steps, recipes, configs and products. When resolving the option to a value, these are inspected based on the
location
attribute. Depending on the other settings likemultiple
andrequired
one or more option values are returned when resolving the option.- resolve(providers, subdomains=None)¶
Resolve the value of this option by inspecting the options of the providers.
Sub-domains to look for can be specified for each provider. Options including a specified sub-domain take priority over options without the sub-domain.
If the subdomains option is not provided, a default is generated from the providers.task_id value if this is specified. To disable the default subdomains, set subdomains to False
- Parameters:
providers (
Providers
) – The providerssubdomains (
Union
[Dict
[Literal
[‘step’, ‘recipe’, ‘config’, ‘product’],Union
[str
,Sequence
[Optional
[str
]],None
]],bool
,None
]) – For each provider, a sequence of subdomains to take into account when looking for options. Merged withdomain
. Missing values and empty sequences are interpreted as containingNone
. If not set orTrue
, generates subdomains based onproviders.task_id
. Set toFalse
to disable generation of subdomains.
- Return type:
- Returns:
The resolved option value. A tuple of values if
multiple
is True.
- all: bool = False¶
When
multiple
is True,resolve()
will match the first provider inlocation
that defines an option with the correctname
anddomain
. Setall
to True to resolve all matching options of all providers listed inlocation
. Has no effect whenmultiple
is False.
- deprecated: Optional[str] = None¶
If this option is deprecated, set to the reason for deprecation. Should describe which option(s) - if any - replace this option
- domain: Optional[str] = None¶
The domain of the option: Momotor defines the following values for
domain
:checklet: (Default) These options are used by checklets.
scheduler: Options used for executing and scheduling the step.
tools: Options used to declare tools used by the checklet.
x-…: “Experimental”, or private use domains
Domain names starting with x- can be used for private use cases. All other domain names are reserved for use by Momotor in the future.
Cannot have a subdomain. Required (but can be provided through the
name
argument)
- enable: bool = True¶
If False this OptionDefinition will be disabled (i.e. ignored as if it was not listed)
- property fullname: OptionNameDomain¶
Full name, including domain
- Return type:
- location: Optional[Union[str, Sequence[str]]] = None¶
The names and order of the providers
resolve()
looks for the options. Can be provided as a comma separated string, or as a sequence of strings. Required.CheckletBaseMeta
provides the default. When accessing, will always be a sequence
- multiple: bool = False¶
This option can be provided multiple times. If True,
resolve()
will return a FilterableTuple of matched options. If False,resolve()
will return a single value, or throw aValueError
if multiple options match. Default:False
- name: Union[OptionNameDomain, str]¶
Name of the option. Required
- required: bool = False¶
This option is required. If the option is not defined by any of the providers,
resolve()
will throw aValueError
exception: Default:False