<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 close(self):
 """Close channels and underlying pubsub handler :return: a coroutine and therefore it must be awaited """

        push_connection = self.pubsub.push_connection
        self.status = self.statusType.closed
        if push_connection:
            push_connection.event('connection_lost').unbind(
                self._connection_lost
            )
            await self.pubsub.close()