You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-03 00:45:53 +08:00
Fix docstring bug..
small sync with python 2.4 branch
This commit is contained in:
@@ -182,19 +182,19 @@ check-bytecode-2.7:
|
|||||||
|
|
||||||
#: Check deparsing Python 3.0
|
#: Check deparsing Python 3.0
|
||||||
check-bytecode-3.0:
|
check-bytecode-3.0:
|
||||||
$(PYTHON) test_pythonlib.py --bytecode-3.0
|
$(PYTHON) test_pythonlib.py --bytecode-3.0 --weak-verify
|
||||||
|
|
||||||
#: Check deparsing Python 3.1
|
#: Check deparsing Python 3.1
|
||||||
check-bytecode-3.1:
|
check-bytecode-3.1:
|
||||||
$(PYTHON) test_pythonlib.py --bytecode-3.1
|
$(PYTHON) test_pythonlib.py --bytecode-3.1 --weak-verify
|
||||||
|
|
||||||
#: Check deparsing Python 3.2
|
#: Check deparsing Python 3.2
|
||||||
check-bytecode-3.2:
|
check-bytecode-3.2:
|
||||||
$(PYTHON) test_pythonlib.py --bytecode-3.2
|
$(PYTHON) test_pythonlib.py --bytecode-3.2 --weak-verify
|
||||||
|
|
||||||
#: Check deparsing Python 3.3
|
#: Check deparsing Python 3.3
|
||||||
check-bytecode-3.3:
|
check-bytecode-3.3:
|
||||||
$(PYTHON) test_pythonlib.py --bytecode-3.3
|
$(PYTHON) test_pythonlib.py --bytecode-3.3 --weak-verify
|
||||||
|
|
||||||
#: Check deparsing Python 3.4
|
#: Check deparsing Python 3.4
|
||||||
check-bytecode-3.4:
|
check-bytecode-3.4:
|
||||||
@@ -202,11 +202,11 @@ check-bytecode-3.4:
|
|||||||
|
|
||||||
#: Check deparsing Python 3.5
|
#: Check deparsing Python 3.5
|
||||||
check-bytecode-3.5:
|
check-bytecode-3.5:
|
||||||
$(PYTHON) test_pythonlib.py --bytecode-3.5
|
$(PYTHON) test_pythonlib.py --bytecode-3.5 --weak-verify
|
||||||
|
|
||||||
#: Check deparsing Python 3.6
|
#: Check deparsing Python 3.6
|
||||||
check-bytecode-3.6:
|
check-bytecode-3.6:
|
||||||
$(PYTHON) test_pythonlib.py --bytecode-3.6
|
$(PYTHON) test_pythonlib.py --bytecode-3.6 --weak-verify
|
||||||
|
|
||||||
#: short tests for bytecodes only for this version of Python
|
#: short tests for bytecodes only for this version of Python
|
||||||
check-native-short:
|
check-native-short:
|
||||||
|
Binary file not shown.
Binary file not shown.
@@ -5,3 +5,18 @@ def foo():
|
|||||||
|
|
||||||
def bar():
|
def bar():
|
||||||
r"""func placeholder - ' and with ('''\nstring\n''') and \"\"\"\nstring\n\"\"\" """
|
r"""func placeholder - ' and with ('''\nstring\n''') and \"\"\"\nstring\n\"\"\" """
|
||||||
|
|
||||||
|
def baz():
|
||||||
|
"""
|
||||||
|
... '''>>> assert 1 == 1
|
||||||
|
... '''
|
||||||
|
... \"""
|
||||||
|
>>> exec test_data in m1.__dict__
|
||||||
|
>>> exec test_data in m2.__dict__
|
||||||
|
>>> m1.__dict__.update({"f2": m2._f, "g2": m2.g, "h2": m2.H})
|
||||||
|
|
||||||
|
Tests that objects outside m1 are excluded:
|
||||||
|
\"""
|
||||||
|
>>> t.rundict(m1.__dict__, 'rundict_test_pvt') # None are skipped.
|
||||||
|
TestResults(failed=0, attempted=8)
|
||||||
|
"""
|
||||||
|
@@ -13,6 +13,7 @@ def print_docstring(self, indent, docstring):
|
|||||||
quote = '"""'
|
quote = '"""'
|
||||||
else:
|
else:
|
||||||
quote = "'''"
|
quote = "'''"
|
||||||
|
docstring = docstring.replace("'''", "\\'''")
|
||||||
except:
|
except:
|
||||||
return False
|
return False
|
||||||
self.write(indent)
|
self.write(indent)
|
||||||
|
@@ -110,8 +110,6 @@ Python.
|
|||||||
# brackets, which makes the template_engine walk down to N[C] before
|
# brackets, which makes the template_engine walk down to N[C] before
|
||||||
# evaluating the escape code.
|
# evaluating the escape code.
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from uncompyle6 import PYTHON3
|
from uncompyle6 import PYTHON3
|
||||||
@@ -1075,7 +1073,10 @@ class SourceWalker(GenericASTTraversal, object):
|
|||||||
return
|
return
|
||||||
n = node[-1]
|
n = node[-1]
|
||||||
elif node[-1] == 'del_stmt':
|
elif node[-1] == 'del_stmt':
|
||||||
n = node[-3] if node[-2] == 'JUMP_BACK' else node[-2]
|
if node[-2] == 'JUMP_BACK':
|
||||||
|
n = node[-3]
|
||||||
|
else:
|
||||||
|
n = node[-2]
|
||||||
|
|
||||||
assert n == 'list_iter'
|
assert n == 'list_iter'
|
||||||
|
|
||||||
@@ -1093,7 +1094,10 @@ class SourceWalker(GenericASTTraversal, object):
|
|||||||
list_iter = node[-1]
|
list_iter = node[-1]
|
||||||
else:
|
else:
|
||||||
expr = n[1]
|
expr = n[1]
|
||||||
list_iter = node[-3] if node[-2] == 'JUMP_BACK' else node[-2]
|
if node[-2] == 'JUMP_BACK':
|
||||||
|
list_iter = node[-3]
|
||||||
|
else:
|
||||||
|
list_iter = node[-2]
|
||||||
|
|
||||||
assert expr == 'expr'
|
assert expr == 'expr'
|
||||||
assert list_iter == 'list_iter'
|
assert list_iter == 'list_iter'
|
||||||
@@ -1144,7 +1148,10 @@ class SourceWalker(GenericASTTraversal, object):
|
|||||||
self.write( '[ ')
|
self.write( '[ ')
|
||||||
|
|
||||||
expr = n[0]
|
expr = n[0]
|
||||||
list_iter = node[-2] if self.is_pypy and node[-1] == 'JUMP_BACK' else node[-1]
|
if self.is_pypy and node[-1] == 'JUMP_BACK':
|
||||||
|
list_iter = node[-2]
|
||||||
|
else:
|
||||||
|
list_iter = node[-1]
|
||||||
|
|
||||||
assert expr == 'expr'
|
assert expr == 'expr'
|
||||||
assert list_iter == 'list_iter'
|
assert list_iter == 'list_iter'
|
||||||
@@ -1218,7 +1225,10 @@ class SourceWalker(GenericASTTraversal, object):
|
|||||||
self.write(' for ')
|
self.write(' for ')
|
||||||
self.preorder(ast[iter_index-1])
|
self.preorder(ast[iter_index-1])
|
||||||
self.write(' in ')
|
self.write(' in ')
|
||||||
iter_expr = node[2] if node[2] == 'expr' else node[-3]
|
if node[2] == 'expr':
|
||||||
|
iter_expr = node[2]
|
||||||
|
else:
|
||||||
|
iter_expr = node[-3]
|
||||||
assert iter_expr == 'expr'
|
assert iter_expr == 'expr'
|
||||||
self.preorder(iter_expr)
|
self.preorder(iter_expr)
|
||||||
self.preorder(ast[iter_index])
|
self.preorder(ast[iter_index])
|
||||||
@@ -1226,7 +1236,10 @@ class SourceWalker(GenericASTTraversal, object):
|
|||||||
|
|
||||||
def n_generator_exp(self, node):
|
def n_generator_exp(self, node):
|
||||||
self.write('(')
|
self.write('(')
|
||||||
code_index = -6 if self.version > 3.2 else -5
|
if self.version > 3.2:
|
||||||
|
code_index = -6
|
||||||
|
else:
|
||||||
|
code_index = -5
|
||||||
self.comprehension_walk(node, iter_index=3, code_index=code_index)
|
self.comprehension_walk(node, iter_index=3, code_index=code_index)
|
||||||
self.write(')')
|
self.write(')')
|
||||||
self.prune()
|
self.prune()
|
||||||
@@ -1469,7 +1482,10 @@ class SourceWalker(GenericASTTraversal, object):
|
|||||||
break
|
break
|
||||||
pass
|
pass
|
||||||
pass
|
pass
|
||||||
subclass_info = node if node == 'classdefdeco2' else node[0]
|
if node == 'classdefdeco2':
|
||||||
|
subclass_info = node
|
||||||
|
else:
|
||||||
|
subclass_info = node[0]
|
||||||
elif buildclass[1][0] == 'load_closure':
|
elif buildclass[1][0] == 'load_closure':
|
||||||
# Python 3 with closures not functions
|
# Python 3 with closures not functions
|
||||||
load_closure = buildclass[1]
|
load_closure = buildclass[1]
|
||||||
@@ -1496,7 +1512,10 @@ class SourceWalker(GenericASTTraversal, object):
|
|||||||
subclass_code = buildclass[1][0].attr
|
subclass_code = buildclass[1][0].attr
|
||||||
subclass_info = node[0]
|
subclass_info = node[0]
|
||||||
else:
|
else:
|
||||||
buildclass = node if (node == 'classdefdeco2') else node[0]
|
if node == 'classdefdeco2':
|
||||||
|
buildclass = node
|
||||||
|
else:
|
||||||
|
buildclass = node[0]
|
||||||
build_list = buildclass[1][0]
|
build_list = buildclass[1][0]
|
||||||
if hasattr(buildclass[-3][0], 'attr'):
|
if hasattr(buildclass[-3][0], 'attr'):
|
||||||
subclass_code = buildclass[-3][0].attr
|
subclass_code = buildclass[-3][0].attr
|
||||||
@@ -2338,7 +2357,7 @@ def deparse_code(version, co, out=sys.stdout, showasm=None, showast=False,
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
def deparse_test(co):
|
def deparse_test(co):
|
||||||
"This is a docstring"
|
"This is a docstring"
|
||||||
sys_version = sys.version_info.major + (sys.version_info.minor / 10.0)
|
sys_version = float(sys.version[0:3])
|
||||||
deparsed = deparse_code(sys_version, co, showasm='after', showast=True)
|
deparsed = deparse_code(sys_version, co, showasm='after', showast=True)
|
||||||
# deparsed = deparse_code(sys_version, co, showasm=None, showast=False,
|
# deparsed = deparse_code(sys_version, co, showasm=None, showast=False,
|
||||||
# showgrammar=True)
|
# showgrammar=True)
|
||||||
|
Reference in New Issue
Block a user