Python code file prototype

Grant Edwards invalid at invalid.invalid
Fri Feb 17 18:02:31 CET 2012

On 2012-02-17, John Gordon <gordon at> wrote:
> In <66ea0353-02ee-4152-947a-97b44ff3ec45 at> Bruce Eckel <lists.eckel at> writes:
>> There's an option when you do this to insert default file contents, so
>> I began searching the web for some kind of prototype Python file that
>> would be appropriate to start with. I'm certain I've seen this before
>> and that there's been discussions about the best starting point for a
>> python code file, but I find I can't get any search hits for it.
> Here's what PyScripter inserts in a new python file:
>   #---------------------------------------------------------------------
>   # Name:        module1
>   # Purpose:
>   #
>   # Author:      $USERNAME
>   #
>   # Created:     $DATE
>   # Copyright:   (c) $USERNAME $YEAR
>   # Licence:     <your licence>
>   #---------------------------------------------------------------------
>   #!/usr/bin/env python
>   def main():
>       pass
>   if __name__ == '__main__':
>       main()
> Where $USERNAME, $DATE and $YEAR are expanded to the actual values.

That's just plain broken.

The "#!" line has to be first thing in the file for it to be

Apart from that, my personal opinion is that comment blocks like that
are bad practice.  They're too often wrong (e.g. file got copied
modified, but comment block not updated), and the right place for
metadata like that is the filesystem and the source-control system
(git, mercurial, subversion, CVS, whatever -- anything but VSS).


More information about the Python-list mailing list