[Import-SIG] PEP 420 issue: extend_path
Antoine Pitrou
solipsis at pitrou.net
Mon May 7 17:00:21 CEST 2012
On Mon, 07 May 2012 09:01:07 -0400
"Eric V. Smith" <eric at trueblade.com> wrote:
> On 05/07/2012 06:53 AM, Antoine Pitrou wrote:
> > On Mon, 07 May 2012 10:38:15 +0200
> > "Martin v. Löwis" <martin at v.loewis.de> wrote:
> >>
> >> Interestingly, it appears that pkg_util will break under PEP 420,
> >> anyway, as it currently does (in _handle_ns)
> >>
> >> loader = importer.find_module(packageName)
> >> if loader is None:
> >> return None
> >> ...
> >> loader.load_module(packageName); module.__path__ = path
> >>
> >> Now, if loader suddenly becomes a string, than the load_module
> >> call will raise an attribute error (untested).
> >
> > I think find_module() returning a string is a kludge. It would be
> > better IMO if it returned a dedicated object clearly pointing out that
> > a namespace package was potentially found (and also allowing to record
> > other potential metadata).
>
> Well the original goal was to allow existing finders to be called
> without modification. Are you saying we always return a dedicated object
> (thus breaking existing finders)?
Why would it break existing finders? finder_module() would either return
a loader, or a dedicated object (or None).
Returning a string is completely non-obvious to the caller (who may not
know about namespace packages or their precise implementation in PEP
420).
Regards
Antoine.
More information about the Import-SIG
mailing list