[3.12] Use match/case in grouper() recipe (gh-113059) (gh-113197)

This commit is contained in:
Miss Islington (bot) 2023-12-15 23:39:11 +01:00 committed by GitHub
parent 85ee49c434
commit b9c5ffe6e7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -914,14 +914,15 @@ which incur interpreter overhead.
# grouper('ABCDEFG', 3, incomplete='strict') --> ABC DEF ValueError # grouper('ABCDEFG', 3, incomplete='strict') --> ABC DEF ValueError
# grouper('ABCDEFG', 3, incomplete='ignore') --> ABC DEF # grouper('ABCDEFG', 3, incomplete='ignore') --> ABC DEF
args = [iter(iterable)] * n args = [iter(iterable)] * n
if incomplete == 'fill': match incomplete:
return zip_longest(*args, fillvalue=fillvalue) case 'fill':
elif incomplete == 'strict': return zip_longest(*args, fillvalue=fillvalue)
return zip(*args, strict=True) case 'strict':
elif incomplete == 'ignore': return zip(*args, strict=True)
return zip(*args) case 'ignore':
else: return zip(*args)
raise ValueError('Expected fill, strict, or ignore') case _:
raise ValueError('Expected fill, strict, or ignore')
def sliding_window(iterable, n): def sliding_window(iterable, n):
# sliding_window('ABCDEFG', 4) --> ABCD BCDE CDEF DEFG # sliding_window('ABCDEFG', 4) --> ABCD BCDE CDEF DEFG