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
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 (
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:
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
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
-
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.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:
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
- class momotor.options.OptionNameDomain(name, domain='checklet')¶
Name and domain of an option.
- classmethod from_qualified_name(name)¶
Create an
OptionNameDomain
from 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: