jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/933893 )
Change subject: [IMPR] simplify list comprehension in dh() ......................................................................
[IMPR] simplify list comprehension in dh()
- simplify list comprehension in dh() - use f-string in decode() inside escapePattern2() - fix escapePattern2 result type
Change-Id: Id2d99b040d5e7f11501fb6b1b2155695d14ce6b4 --- M pywikibot/date.py 1 file changed, 22 insertions(+), 10 deletions(-)
Approvals: Matěj Suchánek: Looks good to me, approved jenkins-bot: Verified
diff --git a/pywikibot/date.py b/pywikibot/date.py index 07edc20..00a654e 100644 --- a/pywikibot/date.py +++ b/pywikibot/date.py @@ -385,18 +385,16 @@
# Allows to search for '(%%)|(%d)|(%R)|...", and allows one digit 1-9 to set # the size of zero-padding for numbers -_reParameters = re.compile('|'.join(f'(%[1-9]?{s})' - for s in _digitDecoders)) +_reParameters = re.compile('|'.join(f'(%[1-9]?{s})' for s in _digitDecoders))
# A map of sitecode+pattern to (re matching object and corresponding decoders) _escPtrnCache2 = {}
-def escapePattern2(pattern: str - ) -> Tuple[Pattern[str], str, - List[Union[decoder_type, decoder_type]]]: - """ - Convert a string pattern into a regex expression and cache. +def escapePattern2( + pattern: str +) -> Tuple[Pattern[str], str, List[decoder_type]]: + """Convert a string pattern into a regex expression and cache.
Allows matching of any _digitDecoders inside the string. Returns a compiled regex object and a list of digit decoders. @@ -427,8 +425,8 @@ # Special case for strings that are replaced instead of decoded # Keep the original text for strPattern assert len(subpattern) < 3, ( - 'Invalid pattern {}: Cannot use zero padding size ' - 'in {}!'.format(pattern, subpattern)) + f'Invalid pattern {pattern}: Cannot use zero padding size ' + f'in {subpattern}!') return newpattern + re.escape(dec), strpattern + subpattern
if pattern not in _escPtrnCache2: @@ -515,7 +513,8 @@ m = compPattern.match(value) if m: # decode each found value using provided decoder - values = [decoder[2](m[i + 1]) for i, decoder in enumerate(decoders)] + values = [decoder[2](m[i]) + for i, decoder in enumerate(decoders, start=1)] decValue = decf(values)
assert not isinstance(decValue, str), \
pywikibot-commits@lists.wikimedia.org