From bfc0469570842fa8afb927a17db8c28b76bfee8f Mon Sep 17 00:00:00 2001 From: histogal <128044578+histogal@users.noreply.github.com> Date: Thu, 3 Apr 2025 17:10:38 +0300 Subject: [PATCH] Add 'no_correction' case for PREFER_DAY_OF_MONTH and PREFER_MONTH_OF_YEAR --- dateparser/conf.py | 4 ++-- dateparser/utils/__init__.py | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dateparser/conf.py b/dateparser/conf.py index 1548b7c28..2dbfc19a5 100644 --- a/dateparser/conf.py +++ b/dateparser/conf.py @@ -192,8 +192,8 @@ def check_settings(settings): # It defaults to 'default', but it's not allowed to use it directly "type": bool }, - "PREFER_MONTH_OF_YEAR": {"values": ("current", "first", "last"), "type": str}, - "PREFER_DAY_OF_MONTH": {"values": ("current", "first", "last"), "type": str}, + "PREFER_MONTH_OF_YEAR": {"values": ("current", "first", "last", "no_correction"), "type": str}, + "PREFER_DAY_OF_MONTH": {"values": ("current", "first", "last", "no_correction"), "type": str}, "PREFER_DATES_FROM": { "values": ("current_period", "past", "future"), "type": str, diff --git a/dateparser/utils/__init__.py b/dateparser/utils/__init__.py index 023c5fbb3..9af91769b 100644 --- a/dateparser/utils/__init__.py +++ b/dateparser/utils/__init__.py @@ -180,6 +180,8 @@ def set_correct_day_from_settings(date_obj, settings, current_day=None): } try: + if settings.PREFER_DAY_OF_MONTH == 'no_correction': + return date_obj return date_obj.replace(day=options[settings.PREFER_DAY_OF_MONTH]) except ValueError: return date_obj.replace(day=options["last"]) @@ -190,6 +192,8 @@ def set_correct_month_from_settings(date_obj, settings, current_month=None): options = {"first": 1, "last": 12, "current": current_month or datetime.now().month} try: + if settings.PREFER_MONTH_OF_YEAR == 'no_correction': + return date_obj return date_obj.replace(month=options[settings.PREFER_MONTH_OF_YEAR]) except ValueError: return date_obj.replace(month=options["last"])