autoDocstring
autoDocstring copied to clipboard
Returns and Raises switched on Google docstring template
According to the style guide, Returns should be outlined prior to Raises in google style docstring, yet when I generate one that has both, the Raises appear before the returns https://google.github.io/styleguide/pyguide.html The same can be seen in this example .mustache in the repo https://github.com/NilsJPWerner/autoDocstring/blob/HEAD/src/docstring/templates/google.mustache
- autoDocstring Version: 0.6.1
- Operating System:
- Vscode Version: 1.71.2
Thanks for a great extension!
I think these changes to the .mustache fix the issue.
{{! Google Docstring Template }}
{{summaryPlaceholder}}
{{extendedSummaryPlaceholder}}
{{#parametersExist}}
Args:
{{#args}}
{{var}} ({{typePlaceholder}}): {{descriptionPlaceholder}}
{{/args}}
{{#kwargs}}
{{var}} ({{typePlaceholder}}, optional): {{descriptionPlaceholder}}. Defaults to {{&default}}.
{{/kwargs}}
{{/parametersExist}}
{{#returnsExist}}
Returns:
{{#returns}}
{{typePlaceholder}}: {{descriptionPlaceholder}}
{{/returns}}
{{/returnsExist}}
{{#exceptionsExist}}
Raises:
{{#exceptions}}
{{type}}: {{descriptionPlaceholder}}
{{/exceptions}}
{{/exceptionsExist}}
{{#yieldsExist}}
Yields:
{{#yields}}
{{typePlaceholder}}: {{descriptionPlaceholder}}
{{/yields}}
{{/yieldsExist}}
Yes, I see the same thing. Using your template worked for me. One other thing is the style guide says a period after the summaryPlaceholder on line one. These are my first 2 lines:
{{! Google Docstring Template }}
{{summaryPlaceholder}}.
It looks like there are some other things missing from the Google style. Section 3.8 describes what to do for google python docstrings, and in 3.8.4 it says when documenting a class to use the 'Attributes:' marker for public attributes of the class. From a quick check of the template_data.ts, I did not see that attributes are being looked for.
Also, if it were to be added I see it doesn't detect the arguments/attributes currently for dataclasses or Pydantic.
Here is the google template without typing:
{{! Google Docstring Template without Types for Args, Returns or Yields }}
{{summaryPlaceholder}}.
{{extendedSummaryPlaceholder}}
{{#parametersExist}}
Args:
{{#args}}
{{var}}: {{descriptionPlaceholder}}
{{/args}}
{{#kwargs}}
{{var}}: {{descriptionPlaceholder}}. Defaults to {{&default}}.
{{/kwargs}}
{{/parametersExist}}
{{#returnsExist}}
Returns:
{{#returns}}
{{descriptionPlaceholder}}
{{/returns}}
{{/returnsExist}}
{{#yieldsExist}}
Yields:
{{#yields}}
{{descriptionPlaceholder}}
{{/yields}}
{{/yieldsExist}}
{{#exceptionsExist}}
Raises:
{{#exceptions}}
{{type}}: {{descriptionPlaceholder}}
{{/exceptions}}
{{/exceptionsExist}}