From a28e70073e2351956b6a977085e6328114851b4d Mon Sep 17 00:00:00 2001 From: Frederick Wagner Date: Tue, 4 Dec 2018 18:45:38 -0500 Subject: [PATCH] MAINT: Use built-in zip_longest and izip_longest --- interface/compat.py | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/interface/compat.py b/interface/compat.py index c0bcdf3..2a8c30f 100644 --- a/interface/compat.py +++ b/interface/compat.py @@ -1,6 +1,5 @@ import functools import sys -from itertools import repeat version_info = sys.version_info @@ -8,6 +7,7 @@ PY3 = version_info.major == 3 if PY2: # pragma: nocover-py3 + from itertools import izip_longest as zip_longest from funcsigs import signature, Parameter @functools.wraps(functools.wraps) @@ -48,6 +48,7 @@ def _is_wrapper(f): else: # pragma: nocover-py2 from inspect import signature, Parameter, unwrap + from itertools import zip_longest wraps = functools.wraps @@ -58,33 +59,6 @@ def viewkeys(d): return d.keys() -def zip_longest(left, right): - """Simple zip_longest that only supports two iterators and None default. - """ - left = iter(left) - right = iter(right) - left_done = False - right_done = False - while True: - try: - left_yielded = next(left) - except StopIteration: - left_done = True - left_yielded = None - left = repeat(None) - try: - right_yielded = next(right) - except StopIteration: - right_done = True - right_yielded = None - right = repeat(None) - - if left_done and right_done: - break - - yield left_yielded, right_yielded - - # Taken from six version 1.10.0. def with_metaclass(meta, *bases): """Create a base class with a metaclass."""