Example #1
0
    def get_places_bbox(self, raw_categories, bbox, size=10, query=''):
        left, bot, right, top = bbox

        body = {
            'id': self.es_query_template,
            'params': {
                'query': query,
                'top_left_lat': top,
                'top_left_lon': left,
                'bottom_right_lat': bot,
                'bottom_right_lon': right,
            },
        }

        if query:
            body['params']['match_amenities'] = True
        if raw_categories:
            body['params']['filter_category'] = True
            body['params']['category'] = raw_categories

        result = self.es.search_template(index=self.es_index,
                                         body=body,
                                         params={'size': size})
        raw_places = result.get('hits', {}).get('hits', [])
        return [PjPOI(p['_source']) for p in raw_places]
Example #2
0
    def get_places_bbox(self, raw_categories, bbox, size=10, query=""):
        left, bot, right, top = bbox

        body = {
            "id": self.es_query_template,
            "params": {
                "query": query,
                "top_left_lat": top,
                "top_left_lon": left,
                "bottom_right_lat": bot,
                "bottom_right_lon": right,
            },
        }

        if query:
            body["params"]["match_amenities"] = True
        if raw_categories:
            body["params"]["filter_category"] = True
            body["params"]["category"] = raw_categories

        result = self.es.search_template(index=self.es_index,
                                         body=body,
                                         params={"size": size})
        raw_places = result.get("hits", {}).get("hits", [])
        return [PjPOI(p["_source"]) for p in raw_places]
Example #3
0
def test_grades_block():
    web_block = GradesBlock.from_es(PjPOI(
        {"grades": {
            "total_grades_count": 8,
            "global_grade": 4,
        }}),
                                    lang='en')

    assert web_block == GradesBlock(total_grades_count=8,
                                    global_grade=4.,
                                    url=None)
Example #4
0
    def get_place(self, id):
        internal_id = id.replace(self.PLACE_ID_PREFIX, '', 1)

        es_places = self.es.search(
            index=self.es_index,
            body={"filter": {
                "term": {
                    "_id": internal_id
                }
            }})

        es_place = es_places.get('hits', {}).get('hits', [])
        if len(es_place) == 0:
            raise NotFound(detail={'message': f"place {id} not found"})
        if len(es_place) > 1:
            logger.warning("Got multiple places with id %s", id)
        return PjPOI(es_place[0]['_source'])
Example #5
0
    def get_place(self, id):
        internal_id = id.replace(self.PLACE_ID_PREFIX, "", 1)

        es_places = self.es.search(
            index=self.es_index,
            body={"filter": {
                "term": {
                    "_id": internal_id
                }
            }})

        es_place = es_places.get("hits", {}).get("hits", [])
        if len(es_place) == 0:
            raise HTTPException(status_code=404,
                                detail=f"place {id} not found")
        if len(es_place) > 1:
            logger.warning("Got multiple places with id %s", id)
        return PjPOI(es_place[0]["_source"])
Example #6
0
def test_categories_pj():
    poi = PjPOI({'Category': ['None']})
    assert poi.get_class_name() == None
    assert poi.get_subclass_name() == None

    poi = PjPOI({'Category': ['restaurants']})
    assert poi.get_class_name() == 'restaurant'
    assert poi.get_subclass_name() == 'restaurant'

    poi = PjPOI({'Category': ['hôtels']})
    assert poi.get_class_name() == 'lodging'
    assert poi.get_subclass_name() == 'lodging'

    poi = PjPOI({'Category': ['salles de cinéma']})
    assert poi.get_class_name() == 'cinema'
    assert poi.get_subclass_name() == 'cinema'

    poi = PjPOI({'Category': ['salles de concerts, de spectacles']})
    assert poi.get_class_name() == 'theatre'
    assert poi.get_subclass_name() == 'theatre'

    poi = PjPOI({'Category': ['Pharmacie']})
    assert poi.get_class_name() == 'pharmacy'
    assert poi.get_subclass_name() == 'pharmacy'

    poi = PjPOI({'Category': ['supermarchés, hypermarchés']})
    assert poi.get_class_name() == 'grocery'
    assert poi.get_subclass_name() == 'grocery'

    poi = PjPOI({'Category': ['banques']})
    assert poi.get_class_name() == 'bank'
    assert poi.get_subclass_name() == 'bank'

    poi = PjPOI({'Category': ['cafés, bars']})
    assert poi.get_class_name() == 'bar'
    assert poi.get_subclass_name() == 'bar'

    poi = PjPOI({'Category': ['des supers écoles de fou']})
    assert poi.get_class_name() == 'school'
    assert poi.get_subclass_name() == 'school'

    poi = PjPOI(
        {'Category': ['grandes études', 'ou bien l\'enseignement supérieur']})
    assert poi.get_class_name() == 'college'
    assert poi.get_subclass_name() == 'college'

    poi = PjPOI({'Category': [' Psychologue ']})
    assert poi.get_class_name() == 'doctors'
    assert poi.get_subclass_name() == 'doctors'

    poi = PjPOI({'Category': ['vétérinaires']})
    assert poi.get_class_name() == 'veterinary'
    assert poi.get_subclass_name() == 'veterinary'

    poi = PjPOI({'Category': ['unrelated category', 'garages automobiles']})
    assert poi.get_class_name() == 'car'
    assert poi.get_subclass_name() == 'car_repair'
Example #7
0
def test_categories_pj():
    poi = PjPOI({"Category": ["None"]})
    assert poi.get_class_name() == None
    assert poi.get_subclass_name() == None

    poi = PjPOI({"Category": ["restaurants"]})
    assert poi.get_class_name() == "restaurant"
    assert poi.get_subclass_name() == "restaurant"

    poi = PjPOI({"Category": ["hôtels"]})
    assert poi.get_class_name() == "lodging"
    assert poi.get_subclass_name() == "lodging"

    poi = PjPOI({"Category": ["salles de cinéma"]})
    assert poi.get_class_name() == "cinema"
    assert poi.get_subclass_name() == "cinema"

    poi = PjPOI({"Category": ["salles de concerts, de spectacles"]})
    assert poi.get_class_name() == "theatre"
    assert poi.get_subclass_name() == "theatre"

    poi = PjPOI({"Category": ["Pharmacie"]})
    assert poi.get_class_name() == "pharmacy"
    assert poi.get_subclass_name() == "pharmacy"

    poi = PjPOI({"Category": ["supermarchés, hypermarchés"]})
    assert poi.get_class_name() == "grocery"
    assert poi.get_subclass_name() == "grocery"

    poi = PjPOI({"Category": ["banques"]})
    assert poi.get_class_name() == "bank"
    assert poi.get_subclass_name() == "bank"

    poi = PjPOI({"Category": ["cafés, bars"]})
    assert poi.get_class_name() == "bar"
    assert poi.get_subclass_name() == "bar"

    poi = PjPOI({"Category": ["des supers écoles de fou"]})
    assert poi.get_class_name() == "school"
    assert poi.get_subclass_name() == "school"

    poi = PjPOI({"Category": ["grandes études", "ou bien l'enseignement supérieur"]})
    assert poi.get_class_name() == "college"
    assert poi.get_subclass_name() == "college"

    poi = PjPOI({"Category": [" Psychologue "]})
    assert poi.get_class_name() == "doctors"
    assert poi.get_subclass_name() == "doctors"

    poi = PjPOI({"Category": ["vétérinaires"]})
    assert poi.get_class_name() == "veterinary"
    assert poi.get_subclass_name() == "veterinary"

    poi = PjPOI({"Category": ["unrelated category", "garages automobiles"]})
    assert poi.get_class_name() == "car"
    assert poi.get_subclass_name() == "car_repair"