[Python-Dev] file (original) (raw)
Nick Coghlan ncoghlan at gmail.com
Mon Mar 1 14:04:11 CET 2010
- Previous message: [Python-Dev] __file__
- Next message: [Python-Dev] __file__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Brett Cannon wrote:
So there are a total of five to six depending on the OS (actually, VMS goes up to eight!) before a search path is considered not to contain a module.
The windows list is actually going to be slightly different (dir, pyd, py, pyw, py[co]). It looks for .pyd files rather than either flavour of .so file (we stopped allowing .dll files some time back due to the sqlite3 DLL naming conflict). So I believe it is always 5 stat calls on the major platform - dropping the bytecode filename check saves 20% of them on a miss.
I'm not convinced that saving is worth the hassle of incurring a whole pile of subtle backward compatibility problems. It seems better to say "Python doesn't create in-place bytecode files anymore, but if you arrange to put them there yourself we'll still read them".
I certainly wouldn't support removing the feature without some solid benchmarks to say that it really is going to significantly speed up typical import times for non-trivial modules (given that part of the definition of "non-trivial" is "significant amounts of code to be run when imported", that bar is likely to be a tough one to clear).
And thanks to doing this I realized importlib is not stat'ing the directory first which should fail faster than checking for the init files every time.
That would explain why we had different ideas as to what the interpreter was doing :)
Cheers, Nick.
-- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
- Previous message: [Python-Dev] __file__
- Next message: [Python-Dev] __file__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]