pydocstyle icon indicating copy to clipboard operation
pydocstyle copied to clipboard

quotation mark at start or end of docstring

Open jayvdb opened this issue 8 years ago • 5 comments

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.

jayvdb avatar Dec 13 '15 23:12 jayvdb

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 avatar Oct 17 '16 14:10 varunagrawal

@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 avatar Nov 03 '16 02:11 jayvdb

@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

Nurdok avatar Dec 03 '16 14:12 Nurdok

Can we close this?

varunagrawal avatar Oct 10 '17 20:10 varunagrawal

Still an issue for me, eg with this line: """Highlights (blinks) a Selenium Webdriver element"""

marksmayo avatar Aug 02 '22 22:08 marksmayo