On Tuesday 16 November 2010 18:11:48 Jakub Wilk wrote: > clone 591676 -1 > reassign -1 python-pyicu 1.0-1 > severity -1 wishlist > retitle -1 please make _icu importable > retitle 591676 pylint: please either disable or document dynamic checks > severity 591676 important > thanks
> Okay, so basically what happens here is: > > 1. _icu can be imported only if icu has been imported first. It's > definitely annoying, but I'd have hard time arguing it's actually a > bug. > > 2. pylint will import a module if and only if it cannot find its > source. This bad because: > - It's surprising and undocumented. According to the package > description, the manual pages, and the FAQ, pylint is a "static code > checker", so one would expect it won't execute any code it analyses. > - As seen on the above example, it's a pretty brittle approach. It's not exactly what happens : 1/ astng parses Python source code 2/ if he finds an import, he will in some cases try to parse the module: a/ if it is python source, goto 1/ b/ else: import the module as 'living object' and try to get some information about the module. The astng.README states : "Furthermore, astng builds partial trees by inspecting living objects." Maybe we should mention something like this in Pylint doc? In our case, we have in icu.py: >>> from docs import * and in docs.py: >>> from _icu import * As Pylint tries to warn about * import, he will also try to find the unused imports. Hence astng is going into docs.py, then he finds _icu and tries to look what is inside... -- Emile Anclin <emile.anc...@logilab.fr> http://www.logilab.fr/ http://www.logilab.org/ Informatique scientifique & et gestion de connaissances -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org