New submission from Marc-Andre Lemburg:
Here's the code:
def replace_paths_in_code(self, co):
...
return types.CodeType(co.co_argcount, co.co_nlocals, co.co_stacksize,
co.co_flags, co.co_code, tuple(consts), co.co_names,
co.co_varnames, new_filename, co.co_name,
co.co_firstlineno, co.co_lnotab,
co.co_freevars, co.co_cellvars)
Compare this to the code_new() C API doc string (and code):
code(argcount, kwonlyargcount, nlocals, stacksize, flags, codestring,\n\
constants, names, varnames, filename, name, firstlineno,\n\
lnotab[, freevars[, cellvars]])
The kwonlyargcount is missing in the call used in .replace_paths_in_code().
The bug surfaces when trying to use the "-r" option of the freeze.py tool:
Traceback (most recent call last):
File "freeze.py", line 504, in <module>
main()
File "freeze.py", line 357, in main
mf.import_hook(mod)
File
"/home/lemburg/egenix/projects/PyRun/tmp-3.4-ucs2/lib/python3.4/modulefinder.py",
line 123, in import_hook
q, tail = self.find_head_package(parent, name)
File
"/home/lemburg/egenix/projects/PyRun/tmp-3.4-ucs2/lib/python3.4/modulefinder.py",
line 179, in find_head_package
q = self.import_module(head, qname, parent)
File
"/home/lemburg/egenix/projects/PyRun/tmp-3.4-ucs2/lib/python3.4/modulefinder.py",
line 272, in import_module
m = self.load_module(fqname, fp, pathname, stuff)
File
"/home/lemburg/egenix/projects/PyRun/tmp-3.4-ucs2/lib/python3.4/modulefinder.py",
line 303, in load_module
co = self.replace_paths_in_code(co)
File
"/home/lemburg/egenix/projects/PyRun/tmp-3.4-ucs2/lib/python3.4/modulefinder.py",
line 569, in replace_paths_in_code
consts[i] = self.replace_paths_in_code(consts[i])
File
"/home/lemburg/egenix/projects/PyRun/tmp-3.4-ucs2/lib/python3.4/modulefinder.py",
line 575, in replace_paths_in_code
co.co_freevars, co.co_cellvars)
TypeError: an integer is required (got type bytes)
----------
components: Library (Lib)
keywords: 3.4regression
messages: 220174
nosy: lemburg
priority: normal
severity: normal
status: open
title: modulefinder uses wrong CodeType signature in .replace_paths_in_code()
versions: Python 3.4, Python 3.5
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue21707>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com