pydocstyle
pydocstyle copied to clipboard
quotation mark at start or end of docstring
The new D403 (#165) triggers an error when an extra quotation mark is in the docstring, such as """"..."""
If the docstring has an extra quotation mark at the end ( """...""""
) it will trigger D400, only if it is a one-line docstring.
The following does not generate a pep257 error:
def blah():
"""Foo.
Extra line.
""""
I think it would be useful to have a separate error code for either of those, as they are a specific case that is more of an error than a style issue, and there is less chance that the new code would be included in an ignore list.
I've found (and fixed) these quad-quotes in many projects that have large development teams and quality code review, even in cpython. And I am guilty of adding one. They slip through because they are hard to spot, by the coder and by reviewers; over-quotation-blindness or something.
fwiw, there is also a pep8 PR which will catch these, but again it is an indirect error rather than a specific check.
So something strange:
When I have a test file with the following content,
"""A file which is a module."""
def func():
""""
Yowza.
This is a sample docstring
"""
pass
def func1():
""""Oh yeah."""
def func2():
"""Youch.""""
pass
I get the following errors:
test.py:4 in public function `func`:
D400: First line should end with a period (not '"')
test.py:4 in public function `func`:
D205: 1 blank line required between summary line and description (found 0)
This is inconsistent with what @jayvdb mentioned above. Am I missing something?
@varunagrawal , your results are not inconsistent, but rather you have shown one way that is possible to trigger other rules to return errors.
Specifically, only line 4 in your example is returning errors, whereas the docstring for func1
and func2
are not returning errors.
@jayvdb @varunagrawal I don't really get how you can have an extra closing quote. It causes a syntax error:
$ python superfluous_quotes.py
File "superfluous_quotes.py", line 22
"""Extra quote on the right.""""
^
SyntaxError: EOL while scanning string literal
Can we close this?
Still an issue for me, eg with this line:
"""Highlights (blinks) a Selenium Webdriver element"""