<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def query_power_state(self):
 """ Query the machine's BMC for the current power state. :returns: Current power state. :rtype: `PowerState` """

        power_data = await self._handler.query_power_state(
            system_id=self.system_id)
        # Update the internal state of this object as well, since we have the
        # updated power state from the BMC directly. MAAS server does this as
        # well, just do it client side to make it nice for a developer.
        self._data['power_state'] = power_data['state']
        return PowerState(power_data['state'])