[Python-Dev] Release manager pronouncement needed: PEP 302 Fix
Bob Ippolito
bob at redivi.com
Thu Jul 27 19:04:35 CEST 2006
On Jul 27, 2006, at 3:52 AM, Georg Brandl wrote:
> Armin Rigo wrote:
>> Hi Phillip,
>>
>> On Wed, Jul 26, 2006 at 02:40:27PM -0400, Phillip J. Eby wrote:
>>> If we don't revert it, there are two ways to fix it. One is to
>>> just change
>>> PEP 302 so that the behavior is unbroken by definition. :) The
>>> other is
>>> to actually go ahead and fix it by adding PathImporter and
>>> NullImporter
>>> types to import.c, along with a factory function on
>>> sys.path_hooks to
>>> create them. (This would've been the PEP-compliant way to
>>> implement the
>>> need-for-speed patch.)
>>>
>>> So, "fix" by documentation, fix by fixing, or fix by reverting?
>>> Which
>>> should it be?
>>
>> "fix" by changing the definition looks like a bad idea to me. The
>> import logic is already extremely complicated and delicate, any
>> change
>> to it is bound to break *some* code somewhere.
>
> Though beta1 and beta2 shipped with this change nobody reported any
> bug that
> could be linked to it. sys.path_importer_cache is quite an internal
> thing and
> most code, even import hooks, shouldn't have to deal with it.
Anyone trying to emulate what imp.find_module does in a PEP 302
compliant way will need to introspect sys.path_importer_cache. I have
some unreleased code based on the PEP 302 spec that does this and the
way it was originally written would have broke in 2.5 if I had tested
it there.
Just because it's obscure doesn't mean we should go change how things
work in a way that's not consistent with the documentation. The
documentation should change to match the code or vice versa, though I
really don't have any strong feelings one way or the other.
-bob
More information about the Python-Dev
mailing list