def distance()

in data/question-gen/engine.py [0:0]


    def distance(self, *args):
        ent = self.ent_queue
        if ent['type'] == 'objects':
            h_low_threshold, h_high_threshold = 0.2, 2.0
        pairwise_distances = self.house.getAllPairwiseDistances(
            ent['elements'])

        # self.ent_queue['elements'] = []
        updated_ent_queue = {'type': ent['type'], 'elements': []}
        for i in ent['elements']:
            sub_list = [
                x for x in pairwise_distances
                if x[0].meta['id'] == i.meta['id']
                or x[1].meta['id'] == i.meta['id']
            ]
            sub_list = [
                x for x in sub_list if x[0].rooms[0].name == x[1].rooms[0].name
            ]
            far = [x for x in sub_list if x[2] >= h_high_threshold]
            close = [x for x in sub_list if x[2] <= h_low_threshold]
            if len(far) == 0 or len(close) == 0:
                continue
            for j in far:
                far_ent = 1 if j[0].name == i.name else 0
                for k in close:
                    close_ent = 1 if k[0].name == i.name else 0
                    updated_ent_queue['elements'].append(
                        [k[close_ent], i, j[far_ent], 'closer'])
                    updated_ent_queue['elements'].append(
                        [j[far_ent], i, k[close_ent], 'farther'])

        self.ent_queue = updated_ent_queue
        return self.ent_queue