From b9917aff3319ec112cf59c1f5ca84fa1bd3a7538 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Tue, 20 Jan 2015 17:44:02 +0100 Subject: Factor in some regexes This is for date and time formats that differed in a single optional character. --- src/isodate/isodates.py | 12 +++--------- src/isodate/isotime.py | 5 +---- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/isodate/isodates.py b/src/isodate/isodates.py index 37d42f8..6660245 100644 --- a/src/isodate/isodates.py +++ b/src/isodate/isodates.py @@ -87,21 +87,15 @@ def build_date_regexps(yeardigits=4, expanded=False): % (sign, yeardigits))) # 3. ordinal dates: # YYYY-DDD or +-YYYYYY-DDD ... extended format - cache_entry.append(re.compile(r"(?P[+-]){%d}(?P[0-9]{%d})" - r"-(?P[0-9]{3})" - % (sign, yeardigits))) # YYYYDDD or +-YYYYYYDDD ... basic format cache_entry.append(re.compile(r"(?P[+-]){%d}(?P[0-9]{%d})" - r"(?P[0-9]{3})" + r"-?(?P[0-9]{3})" % (sign, yeardigits))) # 4. week dates: # YYYY-Www or +-YYYYYY-Www ... extended reduced accuracy week date - cache_entry.append(re.compile(r"(?P[+-]){%d}(?P[0-9]{%d})" - r"-W(?P[0-9]{2})" - % (sign, yeardigits))) # YYYYWww or +-YYYYYYWww ... basic reduced accuracy week date - cache_entry.append(re.compile(r"(?P[+-]){%d}(?P[0-9]{%d})W" - r"(?P[0-9]{2})" + cache_entry.append(re.compile(r"(?P[+-]){%d}(?P[0-9]{%d})" + r"-?W(?P[0-9]{2})" % (sign, yeardigits))) # 5. month dates: # YYY-MM or +-YYYYYY-MM ... reduced accuracy specific month diff --git a/src/isodate/isotime.py b/src/isodate/isotime.py index 2b268d0..151a3f9 100644 --- a/src/isodate/isotime.py +++ b/src/isodate/isotime.py @@ -80,11 +80,8 @@ def build_time_regexps(): + TZ_REGEX)) # 2. reduced accuracy: # hh:mm.mm ... extended format - TIME_REGEX_CACHE.append(re.compile(r"T?(?P[0-9]{2}):" - r"(?P[0-9]{2}([,.][0-9]+)?)" - + TZ_REGEX)) # hhmm.mm ... basic format - TIME_REGEX_CACHE.append(re.compile(r"T?(?P[0-9]{2})" + TIME_REGEX_CACHE.append(re.compile(r"T?(?P[0-9]{2}):?" r"(?P[0-9]{2}([,.][0-9]+)?)" + TZ_REGEX)) # hh.hh ... basic format -- cgit v1.2.1