Option definitions¶
- class momotor.options.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
locationattribute. Depending on the other settings likemultipleandrequiredone 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 (
Mapping[Literal['step','recipe','config','product'],str|Sequence[str|None] |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 toFalseto disable generation of subdomains.
- Return type:
- Returns:
The resolved option value. A tuple of values if
multipleis True.
-
all:
bool= False¶ When
multipleis True,resolve()will match the first provider inlocationthat defines an option with the correctnameanddomain. Setallto True to resolve all matching options of all providers listed inlocation. Has no effect whenmultipleis False.
-
deprecated:
str|None= None¶ If this option is deprecated, set to the reason for deprecation. Should describe which option(s) - if any - replace this option
-
domain:
str|None= None¶ The domain of the option: Momotor defines the following values for
domain:checklet: (Default) Options defined and used by checklets.
scheduler: Options used by the Momotor Broker for executing and scheduling the step.
tools: Options used by the Momotor Broker 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
nameargument)
-
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
-
location:
str|Sequence[str] |None= 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.CheckletBaseMetaprovides 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 aValueErrorif multiple options match. Default:False
-
name:
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 aValueErrorexception: Default:False
- class momotor.options.OptionNameDomain(name, domain='checklet')¶
Name and domain of an option.
- classmethod from_qualified_name(name)¶
Create an
OptionNameDomainfrom a qualified name (i.e. including the domain). If name does not include a domain, the default domain is used.- Return type:
Self
- qualified_name()¶
Return the fully qualified option name (i.e. including the domain)
- Return type:
- short_name()¶
Return the short name of the option (i.e. without the domain if it is the default domain)
- Return type: