[Python-Dev] python3k : imp.find_module raises SyntaxError (original) (raw)
Ron Adam rrr at ronadam.com
Mon Nov 29 21:21:07 CET 2010
- Previous message: [Python-Dev] python3k : imp.find_module raises SyntaxError
- Next message: [Python-Dev] python3k : imp.find_module raises SyntaxError
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 11/29/2010 01:22 PM, Brett Cannon wrote:
On Mon, Nov 29, 2010 at 03:53, Sylvain Thénault <sylvain.thenault at logilab.fr> wrote:
On 25 novembre 11:22, Ron Adam wrote:
On 11/25/2010 08:30 AM, Emile Anclin wrote:
hello, working on Pylint, we have a lot of voluntary corrupted files to test Pylint behavior; for instance $ cat /home/emile/var/pylint/test/input/funcunknownencoding.py # -- coding: IBO-8859-1 -- """ check correct unknown encoding declaration """ revision = 'éééé'
and we try to find that module : findmodule('funcunknownencoding', None). But python3 raises SyntaxError in that case ; it didn't raise SyntaxError on python2 nor does so on our funcnonasciinoencoding and funcwrongencoding modules (with obvious names) Python 3.2a2 (r32a2:84522, Sep 14 2010, 15:22:36) [GCC 4.3.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >from imp import findmodule findmodule('funcunknownencoding', None) Traceback (most recent call last): File "", line 1, in SyntaxError: encoding problem: with BOM I don't think there is a clear reason by design. Also try importing the same modules directly and noting the differences in the errors you get. IMO the point is that we can consider as a bug the fact that findmodule tries to somewhat read the content of the file, no? Though it seems to only doing this for encoding detection or like since findmodule doesn't choke on a module containing another kind of syntax error. So the question is, should we deal with this in pylint/astng, or can we expect this to be fixed at some point? Considering these semantics changed between Python 2 and 3 w/o a discernable benefit (I would consider it a negative as finding a module should not be impacted by syntactic correctness; the full act of importing should be the only thing that cares about that), I would consider it a bug that should be filed.
The output of imp.find_module() returns an open file io object, and it's output feeds directly into to imp.load_module().
imp.find_module('pydoc') (<_io.TextIOWrapper name=4 encoding='utf-8'>, '/usr/local/lib/python3.2/pydoc.py', ('.py', 'U', 1))
So I think the imp.find_module() is suppose to be used when you do want to do the full act of importing and not for just finding out if or where module xyz exists.
Ron
- Previous message: [Python-Dev] python3k : imp.find_module raises SyntaxError
- Next message: [Python-Dev] python3k : imp.find_module raises SyntaxError
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]