Graham Wideman <initcont...@grahamwideman.com> added the comment:

Hi Nick: Thanks for your additional points. Comments inline:

> __all__ only affects import *, and may also affect documentation tools (e.g. 
> pydoc will respect __all__ when deciding what to display). It has no effect 
> on attribute retrieval from modules.

That's indeed my understanding. So the doc (6. Simple statements) which says 
that __all__ determines the list of "public names" is a bit of a red herring.  
Attributes are accessible (ie: public) regardless of whether on the __all__ 
list.  Instead the __all__ list establishes the list of names imported by *, 
and makes those names reference-able without a module prefix. (Plus gives hints 
about intent to doc tools.)

> pkgutil.extend_path() is used to modify pkg.__path__ attributes, *not* 
> sys.path. 

Understood, and perhaps my point was obtuse.  I was pointing out that the doc 
for extend_path discusses .pkg entries which point to package dirs, and that 
this, it says, is like .pth files. I claim that an entry in a .pth files should 
NOT point to a package dir, but rather to one level up: to a dir that 
*contains* package dirs. (Pointing a .pth entry directly at a package dir will 
break package behavior by exposing the constituent modules to sys.path.)  Hence 
the doc for extend_path is misleadingly suggesting a wrong idea about .pth 
files.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue11553>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to