Dan Stromberg wrote: > On Fri, Jun 8, 2012 at 3:16 PM, Ethan Furman wrote: > Dan Stromberg wrote: >> Did the import semantics change in cpython 3.3a4? >> >> I used to be able to import treap.py even though I had a treap >> directory in my cwd. With 3.3a4, I have to rename the treap >> directory to see treap.py. > > Check out PEP 420 -- Implicit Namespace Packages > [http://www.python.org/dev/peps/pep-0420/] > > > Am I misinterpreting this? It seems like according to the PEP, I should > have still been able to import treap.py despite having a treap/. But I > couldn't; I had to rename treap/ to treap-dir/ first. > > During import processing, the import machinery will continue to iterate > over each directory in the parent path as it does in Python 3.2. While > looking for a module or package named "foo", for each directory in the > parent path: > > * If <directory>/foo/__init__.py is found, a regular package is > imported and returned. > * If not, but <directory>/foo.{py,pyc,so,pyd} is found, a module > is imported and returned. The exact list of extension varies > by platform and whether the -O flag is specified. The list > here is representative. > * If not, but <directory>/foo is found and is a directory, it is > recorded and the scan continues with the next directory in the > parent path. > * Otherwise the scan continues with the next directory in the > parent path. I do not understand PEP 420 well enough to say if this is intentional or a bug -- thoughts? ~Ethan~
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4