]> git.openstreetmap.org Git - nominatim.git/blobdiff - nominatim/tools/special_phrases/sp_wiki_loader.py
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / nominatim / tools / special_phrases / sp_wiki_loader.py
index 4990eef21441e0d3903d0c0debb4ba09c41f02e8..914e15391123cf2571c99924a17d446c7bb8415c 100644 (file)
@@ -3,32 +3,30 @@
 """
 import re
 import logging
+from collections.abc import Iterator
 from nominatim.tools.special_phrases.special_phrase import SpecialPhrase
-from nominatim.tools.special_phrases.sp_loader import SPLoader
 from nominatim.tools.exec_utils import get_url
 
 LOG = logging.getLogger()
-class SPWikiLoader(SPLoader):
+class SPWikiLoader(Iterator):
     """
         Handles loading of special phrases from the wiki.
     """
     def __init__(self, config, languages=None):
-        if languages is not None and not isinstance(languages, list):
-            raise TypeError('The \'languages\' parameter should be of type list.')
         super().__init__()
         self.config = config
         #Compile the regex here to increase performances.
         self.occurence_pattern = re.compile(
             r'\| *([^\|]+) *\|\| *([^\|]+) *\|\| *([^\|]+) *\|\| *([^\|]+) *\|\| *([\-YN])'
         )
-        self.languages = self._load_languages() if not languages else languages
+        self.languages = self._load_languages() if not languages else list(languages)
 
     def __next__(self):
         if not self.languages:
             raise StopIteration
 
         lang = self.languages.pop(0)
-        loaded_xml = SPWikiLoader._get_wiki_content(lang)
+        loaded_xml = self._get_wiki_content(lang)
         LOG.warning('Importing phrases for lang: %s...', lang)
         return self.parse_xml(loaded_xml)