From 08d979832e8308431468910e1f8a6303f59ddf34 Mon Sep 17 00:00:00 2001 From: Ryanwalker277 Date: Sat, 11 Feb 2023 00:58:45 +0530 Subject: [PATCH 1/2] Added check for date-formats --- dateparser/date.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dateparser/date.py b/dateparser/date.py index fc434a6f2..06182cf2e 100644 --- a/dateparser/date.py +++ b/dateparser/date.py @@ -438,6 +438,9 @@ def get_date_data(self, date_string, date_formats=None): period='day', locale='en') """ + if any(datetime.strptime(date_string, format) for format in date_formats): + raise TypeError('Input is of unknown format') + if not isinstance(date_string, str): raise TypeError('Input type must be str') From da1e9ecc6aab02374c532446b1cd9688f3541477 Mon Sep 17 00:00:00 2001 From: Ryanwalker277 Date: Sun, 12 Feb 2023 20:28:07 +0530 Subject: [PATCH 2/2] Test case fixes --- dateparser/date.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/dateparser/date.py b/dateparser/date.py index 06182cf2e..7901fcd99 100644 --- a/dateparser/date.py +++ b/dateparser/date.py @@ -438,9 +438,13 @@ def get_date_data(self, date_string, date_formats=None): period='day', locale='en') """ - if any(datetime.strptime(date_string, format) for format in date_formats): - raise TypeError('Input is of unknown format') - + + if date_formats: + try: + validate_date_format(date_string, date_formats) + except InvalidDateString as e: + pass + if not isinstance(date_string, str): raise TypeError('Input type must be str') @@ -524,3 +528,14 @@ def _get_locale_loader(cls): if not cls.locale_loader: cls.locale_loader = LocaleDataLoader() return cls.locale_loader + +def validate_date_format(date_string, date_formats): + for date_format in date_formats: + try: + datetime.strptime(date_string, date_format) + return + except ValueError: + raise InvalidDateString("Date string does not match any of the given formats") + +class InvalidDateString(Exception): + pass \ No newline at end of file