I really think this thing need a PEP. I think especially describing the future semantics of bultin lookup. While I see that reusing builtin names is contrived (but we are not always disallowing that, for backward compability), I see the proposed approach as rather adhoc: you can't mess with a module builtins view unelss it already did. regards. At 15:33 16.06.2003 -0400, Jeremy Hylton wrote: >I ran into a problem with the new deprecation warning today. When you >are doing package imports, Python uses setattr to populate the namespace >of the parent package. That is, if you import A.B.C, Python does the >equiavalent of setattr(A, "B", A.B) and setattr(A.B, "C", A.B.C). > >The result is that I get a bunch of deprecation warnings if my modules >shadow builtin names. Module names that are also builtin names are >common in some work projects. (Ouput from our test runner is at the end >of the message.) > >Do we want to discourage the use of module names that overlap with >builtin names? If so, we need a better error message, because if you go >to the line mentioned in the warning you won't see an obvious assignment >:-). > >My initial reaction was that we should not have a deprecation warning >for this kind of shadowing, but I'm growing less comfortable about the >names. I'd definitely complain about a top-level "import list"; I don't >know why it is any better as a module within a package. > >Jeremy > > >/home/jeremy/src/Zope3/build/lib.linux-i686-2.3/zope/app/security/_protections.py:85: >DeprecationWarning: assignment shadows builtin > from persistence.list import PersistentList >/home/jeremy/src/Zope3/build/lib.linux-i686-2.3/zope/app/security/_protections.py:93: >DeprecationWarning: assignment shadows builtin > from persistence.dict import PersistentDict >/home/jeremy/src/Zope3/build/lib.linux-i686-2.3/zope/app/event/globalservice.py:22: >DeprecationWarning: assignment shadows builtin > from zope.interface.type import TypeRegistry >/home/jeremy/src/Zope3/build/lib.linux-i686-2.3/zope/app/ftp/__init__.py:22: >DeprecationWarning: assignment shadows builtin > from zope.app.interfaces.file import IReadFile, IWriteFile >/home/jeremy/src/Zope3/build/lib.linux-i686-2.3/zodb/storage/tests/test_demo.py:21: >DeprecationWarning: assignment shadows builtin > from zodb.storage.file import FileStorage >/home/jeremy/src/Zope3/build/lib.linux-i686-2.3/zope/app/event/subs.py:37: >DeprecationWarning: assignment shadows builtin > from zope.app.services.type import PersistentTypeRegistry >/home/jeremy/src/Zope3/build/lib.linux-i686-2.3/zope/app/browser/content/image.py:19: >DeprecationWarning: assignment shadows builtin > from zope.app.browser.content.file import FileUpload >/home/jeremy/src/Zope3/build/lib.linux-i686-2.3/zope/app/content/file.py:26: >DeprecationWarning: assignment shadows builtin > from zope.app.interfaces.content.file import IFile, IReadFile, >IFileContent >/home/jeremy/src/Zope3/build/lib.linux-i686-2.3/zope/app/content/image.py:18: >DeprecationWarning: assignment shadows builtin > from zope.app.content.file import File > > > >_______________________________________________ >Python-Dev mailing list >Python-Dev@python.org >http://mail.python.org/mailman/listinfo/python-dev
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