[issue21707] modulefinder uses wrong CodeType signature in .replace_paths_in_code()
Roundup Robot added the comment: New changeset 59921d2f023c by Berker Peksag in branch '3.4': Issue #21707: Add missing kwonlyargcount argument to ModuleFinder.replace_paths_in_code(). http://hg.python.org/cpython/rev/59921d2f023c New changeset 4b6798e74dcf by Berker Peksag in branch 'default': Issue #21707: Merge with 3.4. http://hg.python.org/cpython/rev/4b6798e74dcf -- nosy: +python-dev ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21707 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21707] modulefinder uses wrong CodeType signature in .replace_paths_in_code()
Changes by Berker Peksag berker.pek...@gmail.com: -- assignee: - berker.peksag resolution: - fixed stage: patch review - resolved status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21707 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21707] modulefinder uses wrong CodeType signature in .replace_paths_in_code()
Changes by Berker Peksag berker.pek...@gmail.com: -- nosy: +r.david.murray ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21707 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21707] modulefinder uses wrong CodeType signature in .replace_paths_in_code()
Roundup Robot added the comment: New changeset f8deaac44ed4 by Berker Peksag in branch '3.4': Issue #21707: Fix tests on Windows. http://hg.python.org/cpython/rev/f8deaac44ed4 New changeset e66c387da81b by Berker Peksag in branch 'default': Issue #21707: Merge with 3.4. http://hg.python.org/cpython/rev/e66c387da81b -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21707 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21707] modulefinder uses wrong CodeType signature in .replace_paths_in_code()
Berker Peksag added the comment: Here's a patch with a test. -- keywords: +patch nosy: +berker.peksag stage: - patch review type: - behavior Added file: http://bugs.python.org/file35587/issue21707.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21707 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21707] modulefinder uses wrong CodeType signature in .replace_paths_in_code()
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 rep...@bugs.python.org http://bugs.python.org/issue21707 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21707] modulefinder uses wrong CodeType signature in .replace_paths_in_code()
Marc-Andre Lemburg added the comment: The fix is easy. Simply change the call to: return types.CodeType(co.co_argcount, co.co_kwonlyargcount, 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) (ie. add the missing argument) -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21707 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com