1111from dateparser .date_parser import date_parser
1212from dateparser .freshness_date_parser import freshness_date_parser
1313from dateparser .languages import default_language_loader
14+ from dateparser .languages .loader import LanguageDataLoader
1415from dateparser .languages .detection import AutoDetectLanguage , ExactLanguages
16+ from dateparser .conf import settings
1517
1618
1719def sanitize_spaces (html_string ):
@@ -244,10 +246,16 @@ class DateDataParser(object):
244246 :raises:
245247 ValueError - Unknown Language, TypeError - Languages argument must be a list
246248 """
249+ _default_args = None
250+ _skip_tokens = None
247251
248252 def __init__ (self , languages = None , allow_redetect_language = False ):
253+ available_language_map = default_language_loader .get_language_map ()
254+
255+ self ._default_args = [languages , allow_redetect_language ]
256+ self ._skip_tokens = settings .SKIP_TOKENS
257+
249258 if isinstance (languages , (list , tuple , collections .Set )):
250- available_language_map = default_language_loader .get_language_map ()
251259
252260 if all ([language in available_language_map for language in languages ]):
253261 languages = [available_language_map [language ] for language in languages ]
@@ -258,12 +266,14 @@ def __init__(self, languages=None, allow_redetect_language=False):
258266 raise TypeError ("languages argument must be a list (%r given)" % type (languages ))
259267
260268 if allow_redetect_language :
261- self .language_detector = AutoDetectLanguage (languages = languages if languages else None ,
262- allow_redetection = True )
269+ self .language_detector = AutoDetectLanguage (
270+ languages if languages else available_language_map .values (),
271+ allow_redetection = True )
263272 elif languages :
264273 self .language_detector = ExactLanguages (languages = languages )
265274 else :
266- self .language_detector = AutoDetectLanguage (languages = None , allow_redetection = False )
275+ self .language_detector = AutoDetectLanguage (
276+ available_language_map .values (), allow_redetection = False )
267277
268278 def get_date_data (self , date_string , date_formats = None ):
269279 """
@@ -304,6 +314,11 @@ def get_date_data(self, date_string, date_formats=None):
304314 TODO: Timezone issues
305315
306316 """
317+ global default_language_loader
318+ if settings .SKIP_TOKENS != self ._skip_tokens :
319+ default_language_loader = LanguageDataLoader ()
320+ self = DateDataParser (* self ._default_args )
321+
307322 date_string = date_string .strip ()
308323 date_string = sanitize_date (date_string )
309324
0 commit comments