def __init__(self, languages=None, allow_redetect_language=False, settings=None): self._settings = settings available_language_map = self._get_language_loader().get_language_map() if isinstance(languages, (list, tuple, collections.Set)): if all( [language in available_language_map for language in languages]): languages = [ available_language_map[language] for language in languages ] else: unsupported_languages = set(languages) - set( available_language_map.keys()) raise ValueError("Unknown language(s): %s" % ', '.join(map(repr, unsupported_languages))) elif languages is not None: raise TypeError("languages argument must be a list (%r given)" % type(languages)) if allow_redetect_language: self.language_detector = AutoDetectLanguage( languages if languages else list(available_language_map.values()), allow_redetection=True) elif languages: self.language_detector = ExactLanguages(languages=languages) else: self.language_detector = AutoDetectLanguage( list(available_language_map.values()), allow_redetection=False)
def test_should_accept_dates_in_different_languages(self): date_fixtures = [ (u'13 Ago, 2014', datetime(2014, 8, 13)), (u'13 Septiembre, 2014', datetime(2014, 9, 13)), (u'13 Setembro, 2014', datetime(2014, 9, 13)), ] parser = AutoDetectLanguage(None, allow_redetection=True) for date_string, correct_date in date_fixtures: parsed_date = parser.parse(date_string, None) self.assertEqual(correct_date.date(), parsed_date.date())
def _get_dateparser(language_pool: Tuple[str, ...], settings: Hashable = None) -> dateparser.DateDataParser: settings = dict(settings or ()) parser = dateparser.DateDataParser(allow_redetect_language=True, settings=settings) if language_pool is None: return parser language_codes = set(_language_aliases[lang.lower()] for lang in language_pool if lang in _language_aliases) if not language_codes: # language pool None or empty, fall back to the default language pool. return parser lang_detector = AutoDetectLanguage(list(language_codes), allow_redetection=True) parser.language_detector = lang_detector return parser
def given_detector(self): self.detector = AutoDetectLanguage( languages=self.known_languages, allow_redetection=self.allow_redetection)
def given_parser(self, languages=None, allow_redetection=False): if languages is not None: language_map = default_language_loader.get_language_map() languages = [language_map[language] for language in languages] self.parser = AutoDetectLanguage(languages, allow_redetection=allow_redetection)
def setUp(self): self.parser = AutoDetectLanguage()