def build_set_portal(self, args, player=None):
        if not args:
            return 'Usage: set portal to room <room-id> in area <area-name>\n'
        exp = r'([ ]+)?(to)?([ ]+)?(room)?([ ]+)?(?P<room_id>\d+)([ ]+in)?([ ]+area)?([ ]+(?P<area_name>\w+))'
        match = re.match(exp, args, re.I)
        if not match:
            return 'Usage: set portal to room <room-id> in area <area-name>\n'
        room_id, area_name = match.group('room_id', 'area_name')
        area = World.get_world().get_area(area_name)
        if not area:
            return 'That area doesn\'t exist.\n'
        room = area.get_room(room_id)
        if not room:
            return 'That room doesn\'t exist.\n'
        #Set location so we don't have to resolve it (for as long as the game runs)
        self.location = room
        #Also set these two, so we can resolve the room next time the game starts
        self.to_room = room_id
        self.to_area = area_name
        self.save()
        return 'This portal now connects to room %s in area %s.\n' % (self.location.id,
                                                                      self.location.area.name)
Checks if the queue is empty.
dataset/ETHPy150Open shinymud/ShinyMUD/src/shinymud/models/item_types.py/Portal.build_set_portal--crossover with--dataset/ETHPy150Open quid/s3concurrent/s3concurrent/s3concurrent.py/ProcessKeyQueue.is_empty