async def METHOD_NAME(
    self, labware_id: str, new_location: LabwareLocation
) -> None:
    """Ensure that the labware movement is not obstructed by a parent module.
    Raises: LabwareMovementNotAllowedError if either current location or
    new location is a module that is in a state that prevents the labware from
    being moved (either manually or using gripper).
    """
    current_parent = self._state_store.labware.get_parent_location(
        labware_id=labware_id
    )
    if isinstance(new_location, OnLabwareLocation):
        new_location = self._state_store.labware.get_parent_location(
            labware_id=new_location.labwareId
        )
    for parent in (current_parent, new_location):
        try:
            await self._tc_movement_flagger.raise_if_labware_in_non_open_thermocycler(
                labware_parent=parent
            )
            await self._hs_movement_flagger.raise_if_labware_latched_on_heater_shaker(
                labware_parent=parent
            )
        except ThermocyclerNotOpenError:
            raise LabwareMovementNotAllowedError(
                "Cannot move labware to or from a Thermocycler with its lid closed."
            )
        except HeaterShakerLabwareLatchNotOpenError:
            raise LabwareMovementNotAllowedError(
                "Cannot move labware to or from a Heater-Shaker"
                " with its labware latch closed."
            )