FWIW, I would vote for the "__version__", "__author__", etc assignments being after the imports. Reason being cases where the "__version__" is not from VCS, but is calculated from pkg_resources: from pkg_resources import get_distribution __version__ = get_distribution('mypackage').version Also, then more useful things like "__all__" (which can very reasonably rely on imports), can be together with "__version__" and "__author__" assignments. I would vote: shebang docstring imports dunder assignments other code... </2 cents> ~ Ian Lee On Fri, Mar 20, 2015 at 9:24 PM, Ian Lee <ianlee1521@gmail.com> wrote:
Guido,
In that case would you be open to a patch to update the PEP accordingly?
Additionally, does that official statement cover other dunder assignments (e.g. "__author__"?). If so I'll update the PEP8 tool accordingly.
Thanks,
~ Ian Lee On Mar 20, 2015 8:55 PM, "Guido van Rossum" <guido@python.org> wrote:
FWIW, I think __version__, __author__ etc. were bad ideas. Almost nobody manages these correctly. Note that the PEP 8 section starts with less than an endorsement: "If you *have* to have Subversion, CVS, or RCS crud in your source file, do it as follows."
That said, if an official answer is required, common sense would suggest that __version__ should go before the imports. (I would put it before the docstring too, except then the docstring wouldn't be a docstring any more. Go figure.)
On Fri, Mar 20, 2015 at 6:38 PM, Ben Finney <ben+python@benfinney.id.au> wrote:
Lewis Coates <lewisc@pdx.edu> writes:
In pep8 there are two conflicting statements, both
https://www.python.org/dev/peps/pep-0008/#version-bookkeeping https://www.python.org/dev/peps/pep-0008/#imports
Stipulate that they should be "at the top of the file after any module comments and docstrings." Which of these takes precedence?
I don't know an official answer. The convention I've observed is overwhelmingly in one direction: import statements come before any assignment statements.
Secondly, we also have an "__author__", and "__project__" variables, I assume these would be put with the version information as well?
Yes.
-- \ “Welchen Teil von ‘Gestalt’ verstehen Sie nicht? [What part of | `\ ‘gestalt’ don't you understand?]” —Karsten M. Self | _o__) | Ben Finney
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido%40python.org
-- --Guido van Rossum (python.org/~guido)
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ianlee1521%40gmail.com