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]
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]
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)
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'])
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"])
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'
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"