"""
Module containing the SPWikiLoader class.
"""
-import logging
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)