[Python-Dev] new import hooks & zip import
Guido van Rossum
guido@python.org
Thu, 12 Dec 2002 10:56:05 -0500
> Skip Montanaro wrote:
>
> > Scanning the patch summary I see:
> >
> > sys.path_hooks is a list of callable objects that take
> > a string as their only argument. A hook will be called
> > with a sys.path or pkg.__path__ item. It should return
> > an "importer" object (see below), or raise ImportError
> > or return None if it can't deal with the path item. By
> > default, sys.path_hooks only contains the zipimporter
> > type, if the zipimport module is available.
> >
> > Why have it raise ImportError or return None if it can't deal with the path
> > item? Shouldn't there be only one way to report failure? (Or do I misread
> > your explanation?)
>
> No, you read correctly... I'm not sure, I just thought if might be
> convenient to also be able to return None. I'd be happy to stick
> with just one way, though (which would be raising ImportError, as
> that's easiest from __init__ methods).
Hm, I'd prefer None. With an exception (especially when you're
reusing an existing exception) you never know if it was raised
intentionally or whether it means a real (unexpected) error -- in the
latter case, swallowing the traceback would be a bad idea because it
makes diagnosing the real problem hard. ("Why does my zipimport not
work? I don't get any errors, but it doesn't work...")
--Guido van Rossum (home page: http://www.python.org/~guido/)