bpo-43163: Handle unclosed parentheses in codeop (GH-24483) · python/cpython@dbb2281

GitHub

Original file line numberDiff line numberDiff line change@@ -102,11 +102,20 @@ def _maybe_compile(compiler, source, filename, symbol):

102102try:

103103ifcode:

104104returncode

105-ifnotcode1andrepr(err1) ==repr(err2):

105+ifnotcode1and_is_syntax_error(err1, err2):

106106raiseerr1

107107finally:

108108err1=err2=None

109109110+def_is_syntax_error(err1, err2):

111+rep1=repr(err1)

112+rep2=repr(err2)

113+if"was never closed"inrep1and"was never closed"inrep2:

114+returnFalse

115+ifrep1==rep2:

116+returnTrue

117+returnFalse

118+110119def_compile(source, filename, symbol):

111120returncompile(source, filename, symbol, PyCF_DONT_IMPLY_DEDENT)

112121