Search code examples
pythonimportpycharmjetbrains-ideauthor

PyCharm - Have author appear before imports?


When you create new python files and add new imports, PyCharm will automatically add the imports and __author__ tag whenever it can by itself. However, by default the __author__ tag will always appear below any imports. It seems to me that the __author__ tag should be up at the top of the file where I would also put things like docstrings. This way everything describing the file is at the top, then the actual code (including the imports) is below that.

So two questions:

  1. Is there a good reason for putting the __author__ tag below the imports?
  2. How can I set PyCharm to put the __author__ tag above the imports by default?

Solution

    1. is according to the "Imports" section of PEP-8:

      Imports are always put at the top of the file, just after any module comments and docstrings, and before module globals and constants

      __author__ is a global "variable" and should therefore appear below the imports.

    2. You may go to Pycharm's settings (Ctrl-Alt-S), choose "File and Code Templates" and adjust the "Python Script" template to your liking.

    Pls Note: As mentioned by Martijn's comment below, item 1 of the above statement is no longer true as PEP8 has been updated (in June 2016) https://www.python.org/dev/peps/pep-0008/#id24 with a good example

    """
    This is the example module.
    This module does stuff.
    """
    
    from __future__ import barry_as_FLUFL
    
    __all__ = ['a', 'b', 'c']
    __version__ = '0.1'
    __author__ = 'Cardinal Biggles'
    
    import os
    import sys