New submission from laike9m <[email protected]>:
The documentation of dis.findlabels says:
> dis.findlabels(code)
> Detect all offsets in the code object code which are jump targets, and return
> a list of these offsets.
But the implementation actually expects a raw compiled bytecode.
>>> def f():pass
>>> dis.findlabels(f.__code__)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/laike9m/.pyenv/versions/3.7.4/lib/python3.7/dis.py", line 424,
in findlabels
for offset, op, arg in _unpack_opargs(code):
File "/Users/laike9m/.pyenv/versions/3.7.4/lib/python3.7/dis.py", line 408,
in _unpack_opargs
for i in range(0, len(code), 2):
TypeError: object of type 'code' has no len()
>>> dis.findlabels(f.__code__.co_code)
[]
Since the other functions in the dis module all accept a code object rather
than compiled code, I would suggest change the code instead of documentation.
Plus, this function does not seem to be tested anywhere. I can make a PR if
this issue is confirmed.
----------
components: Library (Lib)
messages: 365367
nosy: laike9m, serhiy.storchaka
priority: normal
severity: normal
status: open
title: The implementation and documentation of "dis.findlables" don't match
versions: Python 3.9
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue40122>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com