intellij-ideapycharmdocstring

Make 'Google' the default docstring style for ALL projects PyCharm


I'm aware that I can go to Settings | Tools | Python Integrated Tools | Docstrings | Docstring format | Google, but this only sets the the docstring format for the current project (as indicated by the heading 'for current project' in the window). I'm looking for a way to change the default, so that all of my projects utilize the google docstring format by default.

JetBrain's own documentation makes no mention of how to accomplish this as far as I can tell.


Solution

  • At the time of this writing, it is not possible. Several tickets have been submitted over the past several years requesting this feature, presumably it is being worked on.

    https://youtrack.jetbrains.com/issue/PY-33833

    https://youtrack.jetbrains.com/issue/PY-20243

    In the short run, if you need to convert previous projects from the default, you can find the setting is stored in the ".idea/MYPROJECT.iml" file:

      <component name="PyDocumentationSettings">
        <option name="myDocStringFormat" value="Google" />
      </component>
    

    By default, there is no PyDocumentationSettings component, so you'll need to add it. In Linux, you could run the following (very hackish) code in terminal to change all projects in any subdirectory:

    new_docstring='  <component name="PyDocumentationSettings">\n    <option name="myDocStringFormat" value="Google" />\n  </component>\n</module>'
    find . -type f -name '*.iml' -print0 | xargs -0 sed -i "s|</module>|$new_docstring|g"
    

    If you simply wanted to go from e.g. Numpy to Google, you might just use:

    find . -type f -name '*.iml' -print0 | xargs -0 sed -i "s|Numpy|Google|g"