== Subjective Question Warning ==
Looking
for well supported opinions or supporting evidence. Let us assume that skeleton code can be good. If you disagree with the very concept of module skeleton code then fine, but please refrain from repeating that opinion here.
Many
python IDE's will start you with
a template like:
print 'hello world'
That's not enough... So here's my skeleton code to get this question started:
My Module Skeleton, Short Version:
#!/usr/bin/env
python
"""
Module Docstring
"""
#
## Code goes here.
#
def test():
"""Testing Docstring"""
pass
if __name__=='__main__':
test()
and,
My Module Skeleton, Long Version:
#!/usr/bin/env
python
# -*- coding: ascii -*-
"""
Module Docstring
Docstrings: http://www.
python.org/dev/peps/pep-0257/
"""
__author__ = 'Joe Author (
[email protected])'
__copyright__ = 'Copyright (c) 2009-2010 Joe Author'
__license__ = 'New-style BSD'
__vcs_id__ = '$Id$'
__version__ = '1.2.3' #Versioning: http://www.
python.org/dev/peps/pep-0386/
#
## Code goes here.
#
def test():
""" Testing Docstring"""
pass
if __name__=='__main__':
test()
Notes:
"""
===MODULE TYPE===
Since the vast majority of my modules are "library" types, I have constructed
this example skeleton as such.
For modules that act as the main entry
for
running the full application, you would make changes such as running
a main()
function instead of the test() function in __main__.
===VERSIONING===
The following practice, specified in PEP8, no longer makes sense:
__version__ = '$Revision: 1.2.3 $'
for two reasons:
(1) Distributed version control systems make it neccessary to include more
than just
a revision number. E.g. author name and revision number.
(2) It's
a revision number not
a version number.
Instead, the __vcs_id__ variable is being adopted. This expands to,
for
example:
__vcs_id__ = '$Id: example.py,v 1.1.1.1 2001/07/21 22:14:04 goodger Exp $'
===VCS DATE===
Likewise, the date variable has been removed:
__date__ = '$Date: 2009/01/02 20:19:18 $'
===CHARACTER ENCODING===
If the coding is explicitly specified, then it should be set to the default
setting of ascii. This can be modified if necessary (rarely in practice).
Defaulting to utf-8 can cause anomalies with editors that have poor unicode
support.
"""
There are
a lot of PEPs that put forward coding style recommendations. Am I missing any important best practices? What is the best
python module skeleton code?
Update
Show me any kind of "best" that you prefer. Tell us what metrics you used to qualify "best".