jenkins-bot submitted this change.

View Change


Approvals: Matěj Suchánek: Looks good to me, approved jenkins-bot: Verified
[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(-)

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), \

To view, visit change 933893. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Id2d99b040d5e7f11501fb6b1b2155695d14ce6b4
Gerrit-Change-Number: 933893
Gerrit-PatchSet: 2
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Matěj Suchánek <matejsuchanek97@gmail.com>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged