""" Wrapper around place information the indexer gets from the database and hands to the tokenizer. """ import psycopg2.extras class PlaceInfo: """ Data class containing all information the tokenizer gets about a place it should process the names for. """ def __init__(self, info): self._info = info def analyze(self, analyzer): """ Process this place with the given tokenizer and return the result in psycopg2-compatible Json. """ return psycopg2.extras.Json(analyzer.process_place(self)) @property def name(self): """ A dictionary with the names of the place or None if the place has no names. """ return self._info.get('name') @property def address(self): """ A dictionary with the address elements of the place or None if no address information is available. """ return self._info.get('address') @property def country_feature(self): """ Return the country code if the place is a valid country boundary. """ return self._info.get('country_feature')