<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def engage(self, height: float = None, offset: float = None):
 """ Raise the Magnetic Module's magnets. The destination of the magnets can be specified in several different ways, based on internally stored default heights for labware: - If neither `height` nor `offset` is specified, the magnets will raise to a reasonable default height based on the specified labware. - If `height` is specified, it should be a distance in mm from the home position of the magnets. - If `offset` is specified, it should be an offset in mm from the default position. A positive number moves the magnets higher and a negative number moves the magnets lower. Only certain labwares have defined engage heights for the Magnetic Module. If a labware that does not have a defined engage height is loaded on the Magnetic Module (or if no labware is loaded), then `height` must be specified. :param height: The height to raise the magnets to, in mm from home. :param offset: An offset relative to the default height for the labware in mm """

        if height:
            dist = height
        elif self.labware and self.labware.magdeck_engage_height is not None:
            dist = self.labware.magdeck_engage_height
            if offset:
                dist += offset
        else:
            raise ValueError(
                "Currently loaded labware {} does not have a known engage "
                "height; please specify explicitly with the height param"
                .format(self.labware))
        self._module.engage(dist)