in rostran/core/parameters.py [0:0]
def initialize(cls, name: str, value: dict):
if not isinstance(value, dict):
raise InvalidTemplateParameter(
name=name,
reason=f"The type of value ({value}) should be dict",
)
if cls.DEFAULT in value:
default = cls.NULL if value[cls.DEFAULT] is None else value[cls.DEFAULT]
else:
default = None
param = cls(
name,
type=value.get(cls.TYPE),
default=default,
association_property=value.get(cls.ASSOCIATION_PROPERTY),
association_property_metadata=value.get(cls.ASSOCIATION_PROPERTY_METADATA),
description=value.get(cls.DESCRIPTION),
constraint_description=value.get(cls.CONSTRAINT_DESCRIPTION),
allowed_values=value.get(cls.ALLOWED_VALUES),
min_length=value.get(cls.MIN_LENGTH),
max_length=value.get(cls.MAX_LENGTH),
allowed_pattern=value.get(cls.ALLOWED_PATTERN),
min_value=value.get(cls.MIN_VALUE),
max_value=value.get(cls.MAX_VALUE),
label=value.get(cls.LABEL),
no_echo=value.get(cls.NO_ECHO),
confirm=value.get(cls.CONFIRM),
text_area=value.get(cls.TEXT_AREA),
orig_data=value,
)
param.validate()
return param