# HG changeset patch # User Miro HronĨok # Date 1530720528 -7200 # Branch py37 # Node ID 933b5f6afe35e6d554f46085a4e62dc5bf413c87 # Parent 7941677dc77d4f2bf0bbd6140ade85a9454b8b80 PEP 479: Raising StopIteration from a generator is now an error So we return instead. Fix needed for Python 3.7. Fixes https://bitbucket.org/birkenfeld/pygments-main/issues/1457 diff --git a/pygments/lexers/lisp.py b/pygments/lexers/lisp.py --- a/pygments/lexers/lisp.py +++ b/pygments/lexers/lisp.py @@ -2327,13 +2327,13 @@ token = Name.Function if token == Literal else token yield index, token, value - raise StopIteration + return def _process_signature(self, tokens): for index, token, value in tokens: if token == Literal and value == '}': yield index, Punctuation, value - raise StopIteration + return elif token in (Literal, Name.Function): token = Name.Variable if value.istitle() else Keyword.Type yield index, token, value diff --git a/pygments/lexers/sql.py b/pygments/lexers/sql.py --- a/pygments/lexers/sql.py +++ b/pygments/lexers/sql.py @@ -347,7 +347,10 @@ # Emit the output lines out_token = Generic.Output while 1: - line = next(lines) + try: + line = next(lines) + except StopIteration: + return mprompt = re_prompt.match(line) if mprompt is not None: # push the line back to have it processed by the prompt