X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/e8e2502e2f9d2275b8d567341400672adea9fea3..27f7c7fd88e588c48c006b459d9912c23b4e13c0:/nominatim/tokenizer/base.py diff --git a/nominatim/tokenizer/base.py b/nominatim/tokenizer/base.py index 94fac1fc..f81b3bc2 100644 --- a/nominatim/tokenizer/base.py +++ b/nominatim/tokenizer/base.py @@ -1,3 +1,9 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# This file is part of Nominatim. (https://nominatim.org) +# +# Copyright (C) 2022 by the Nominatim developer community. +# For a full list of authors see the git log. """ Abstract class defintions for tokenizers. These base classes are here mainly for documentation purposes. @@ -30,7 +36,6 @@ class AbstractAnalyzer(ABC): def close(self) -> None: """ Free all resources used by the analyzer. """ - pass @abstractmethod @@ -50,7 +55,6 @@ class AbstractAnalyzer(ABC): found for the given words. Each list entry is a tuple of (original word, word token, word id). """ - pass @abstractmethod @@ -66,7 +70,6 @@ class AbstractAnalyzer(ABC): Returns: The given postcode after normalization. """ - pass @abstractmethod @@ -74,7 +77,6 @@ class AbstractAnalyzer(ABC): """ Update the tokenizer's postcode tokens from the current content of the `location_postcode` table. """ - pass @abstractmethod @@ -90,7 +92,6 @@ class AbstractAnalyzer(ABC): When false, just add the given phrases to the ones that already exist. """ - pass @abstractmethod @@ -102,7 +103,6 @@ class AbstractAnalyzer(ABC): refer to. names: Dictionary of name type to name. """ - pass @abstractmethod @@ -145,7 +145,6 @@ class AbstractTokenizer(ABC): TODO: can we move the init_db parameter somewhere else? """ - pass @abstractmethod @@ -158,7 +157,6 @@ class AbstractTokenizer(ABC): Arguments: config: Read-only object with configuration options. """ - pass @abstractmethod @@ -171,7 +169,6 @@ class AbstractTokenizer(ABC): Arguments: config: Read-only object with configuration options. """ - pass @abstractmethod @@ -186,7 +183,6 @@ class AbstractTokenizer(ABC): Arguments: config: Read-only object with configuration options. """ - pass @abstractmethod @@ -202,7 +198,6 @@ class AbstractTokenizer(ABC): description of the issue as well as hints for the user on how to resolve the issue. If everything is okay, return `None`. """ - pass @abstractmethod @@ -212,7 +207,13 @@ class AbstractTokenizer(ABC): to improve performance. However, the tokenizer must not depend on it to be called in order to work. """ - pass + + + @abstractmethod + def update_word_tokens(self) -> None: + """ Do house-keeping on the tokenizers internal data structures. + Remove unused word tokens, resort data etc. + """ @abstractmethod @@ -229,4 +230,3 @@ class AbstractTokenizer(ABC): When used outside the with construct, the caller must ensure to call the close() function before destructing the analyzer. """ - pass