Skip to content

Commit

Permalink
Merge pull request #26 from doctaphred/fix-deprecated-stopiteration
Browse files Browse the repository at this point in the history
MAINT: Use built-in zip_longest and izip_longest
  • Loading branch information
Scott Sanderson authored Dec 5, 2018
2 parents b329e97 + a28e700 commit b1dabab
Showing 1 changed file with 2 additions and 28 deletions.
30 changes: 2 additions & 28 deletions interface/compat.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import functools
import sys
from itertools import repeat

version_info = sys.version_info

PY2 = version_info.major == 2
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)
Expand Down Expand Up @@ -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

Expand All @@ -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."""
Expand Down

0 comments on commit b1dabab

Please sign in to comment.