示例#1
0
    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)
示例#2
0
    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())
示例#3
0
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
示例#4
0
 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)
示例#6
0
 def setUp(self):
     self.parser = AutoDetectLanguage()