in rostran/core/template.py [0:0]
def initialize(cls, data: dict):
if cls.ROS_TEMPLATE_FORMAT_VERSION not in data:
raise InvalidRosTemplateFormatVersion(
reason=f"{cls.ROS_TEMPLATE_FORMAT_VERSION} is required"
)
if data.get(cls.ROS_TEMPLATE_FORMAT_VERSION) != "2015-09-01":
raise InvalidRosTemplateFormatVersion(
reason=f"{cls.ROS_TEMPLATE_FORMAT_VERSION} can only be 2015-09-01"
)
metadata = mappings = conditions = parameters = resources = outputs = rules = (
workspace
) = None
transform = data.get(cls.TRANSFORM)
description = data.get(cls.DESCRIPTION)
if cls.CONDITIONS in data:
conditions = Conditions.initialize(data[cls.CONDITIONS])
if cls.MAPPINGS in data:
mappings = Mappings.initialize(data[cls.MAPPINGS])
if cls.PARAMETERS in data:
parameters = Parameters.initialize(data[cls.PARAMETERS])
if cls.RESOURCES in data:
resources = Resources.initialize(data[cls.RESOURCES])
if cls.OUTPUTS in data:
outputs = Outputs.initialize(data[cls.OUTPUTS])
if cls.RULES in data:
rules = Rules.initialize(data[cls.RULES])
if cls.METADATA in data:
metadata = MetaData.initialize(data[cls.METADATA])
if cls.WORKSPACE in data:
workspace = Workspace.initialize(data[cls.WORKSPACE])
return cls(
description,
metadata,
mappings,
conditions,
parameters,
resources,
outputs,
rules,
transform,
workspace,
)