From f679d1953dab14a21f58c7dd1ee030f926254503 Mon Sep 17 00:00:00 2001 From: Mustafa Senoglu Date: Tue, 25 Aug 2026 01:12:16 +0300 Subject: [PATCH] fix(copyright): detect year ranges ending with 'NOW' Fixes #5220 Added support for copyright year ranges ending with 'NOW' (case-insensitive) such as '2013-NOW', '2013-Now', '2013-now', similar to existing 'Present' support. Also fixed grouping in _YEAR_DASH_PRESENT pattern. Changes: - Added _YEAR_DASH_NOW pattern for year ranges ending with NOW - Fixed _YEAR_DASH_PRESENT grouping with non-capturing group - Added pattern to PATTERNS list --- src/cluecode/copyrights.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/cluecode/copyrights.py b/src/cluecode/copyrights.py index 6d17467acf..88f85124f7 100644 --- a/src/cluecode/copyrights.py +++ b/src/cluecode/copyrights.py @@ -638,7 +638,8 @@ def build_detection_from_node( _YEAR_SHORT_PUNCT = _YEAR_SHORT + _PUNCT _YEAR_OR_YEAR_YEAR_WITH_PUNCT = fr'({_YEAR_PUNCT}|{_YEAR_YEAR_PUNCT})' _YEAR_THEN_YEAR_SHORT = fr'({_YEAR_OR_YEAR_YEAR_WITH_PUNCT}({_YEAR_SHORT_PUNCT})*)' -_YEAR_DASH_PRESENT = _YEAR + r'[\-~]? ?[Pp]resent\.?,?' +_YEAR_DASH_PRESENT = '(?:' + _YEAR + ')' + r'[\-~]? ?[Pp]resent\.?,?' +_YEAR_DASH_NOW = '(?:' + _YEAR + ')' + r'[\-~]? ?[Nn][Oo][Ww]\.?,?' PATTERNS = [ ############################################################################ @@ -2169,6 +2170,8 @@ def build_detection_from_node( (r'^(' + _YEAR_DASH_PRESENT + ')+$', 'YR'), + (r'^(' + _YEAR_DASH_NOW + ')+$', 'YR'), + # ISO dates as in 2024-12-09 (r'^' + _YEAR + '-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])$', 'YR'),