8000 Update pickletools from CPython 3.12.3 · RustPython/RustPython@d0f680b · GitHub
[go: up one dir, main page]

Skip to content

Commit d0f680b

Browse files
CPython Developersyouknowone
CPython Developers
authored andcommitted
Update pickletools from CPython 3.12.3
1 parent ca2c1d0 commit d0f680b

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

Lib/pickletools.py

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1253,7 +1253,7 @@ def __init__(self, name, code, arg,
12531253
stack_before=[],
12541254
stack_after=[pyint],
12551255
proto=2,
1256-
doc="""Long integer using found-byte length.
1256+
doc="""Long integer using four-byte length.
12571257
12581258
A more efficient encoding of a Python long; the long4 encoding
12591259
says it all."""),
@@ -2848,10 +2848,10 @@ def _test():
28482848
parser = argparse.ArgumentParser(
28492849
description='disassemble one or more pickle files')
28502850
parser.add_argument(
2851-
'pickle_file', type=argparse.FileType('br'),
2851+
'pickle_file',
28522852
nargs='*', help='the pickle file')
28532853
parser.add_argument(
2854-
'-o', '--output', default=sys.stdout, type=argparse.FileType('w'),
2854+
'-o', '--output',
28552855
help='the file where the output should be written')
28562856
parser.add_argument(
28572857
'-m', '--memo', action='store_true',
@@ -2876,15 +2876,26 @@ def _test():
28762876
if args.test:
28772877
_test()
28782878
else:
2879-
annotate = 30 if args.annotate else 0
28802879
if not args.pickle_file:
28812880
parser.print_help()
2882-
elif len(args.pickle_file) == 1:
2883-
dis(args.pickle_file[0], args.output, None,
2884-
args.indentlevel, annotate)
28852881
else:
2882+
annotate = 30 if args.annotate else 0
28862883
memo = {} if args.memo else None
2887-
for f in args.pickle_file:
2888-
preamble = args.preamble.format(name=f.name)
2889-
args.output.write(preamble + '\n')
2890-
dis(f, args.output, memo, args.indentlevel, annotate)
2884+
if args.output is None:
2885+
output = sys.stdout
2886+
else:
2887+
output = open(args.output, 'w')
2888+
try:
2889+
for arg in args.pickle_file:
2890+
if len(args.pickle_file) > 1:
2891+
name = '<stdin>' if arg == '-' else arg
2892+
preamble = args.preamble.format(name=name)
2893+
output.write(preamble + '\n')
2894+
if arg == '-':
2895+
dis(sys.stdin.buffer, output, memo, args.indentlevel, annotate)
2896+
else:
2897+
with open(arg, 'rb') as f:
2898+
dis(f, output, memo, args.indentlevel, annotate)
2899+
finally:
2900+
if output is not sys.stdout:
2901+
output.close()

Lib/test/test_pickletools.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,6 @@ def loads(self, buf, **kwds):
6565
# Test relies on writing by chunks into a file object.
6666
test_framed_write_sizes_with_delayed_writer = None
6767

68-
# TODO: RUSTPYTHON
69-
@unittest.expectedFailure
7068
def test_optimize_long_binget(self):
7169
data = [str(i) for i in range(257)]
7270
data.append(data[-1])

0 commit comments

Comments
 (0)
0