rope
rope copied to clipboard
codeassist.code_assist will find spurious members of the os module
For a random module
#!python
>>> [proposal for proposal in codeassist.code_assist(proj, "import os\nos.", 13\
) if proposal.name in ['os2', 'ce', 'riscos', 'posix', 'nt']]
[os2 (imported, module), ce (imported, module), riscos (imported, module), posi\
x (imported, module), nt (imported, module)]
These are not actually defined in os.*. They are conditionally imported and deleted depending on which platform Python is run on. Rope finds them even though they are not exported from the os module.
I would not have expected to get completion proposals for symbols not actually defined.
(This is a minor concern, I am not sure how much effort it would be to fix.)