Open kasium opened 1 year ago
Is that the only code in the file? Pydocstyle works fine with f strings on all of my projects.
Further, the error is coming from the standard-library ast parsing library. That means it's not valid python and it wouldn't run anyway so this falls under the principle of
"Garbage in, garbage out"
@sigmavirus24 I drilled it down to that code. And python foo.py
returns no error, so it's valid python. You are right, it's from the stdlib but it seems that pydocstyle passes something wrong to literal_eval
@sigmavirus24 the issue is in pydocstyle/checker.py
check_docstring_empty
. It passes the whole code to ast.literal_eval
which is not valid, because literal_eval cannot handled f-strings. I'm happy to open a PR if you want
@kasium you misunderstand me. f-strings cannot be documentation strings. Docstrings must be string literals. In other words, pydocstyle
has every right - when it encounters something that appears to be a docstring - to attempt to use ast.literal_eval
.
A file that has a string and only a string in it, would appear to have a docstring. That docstring being an f-string means that it's a garbage file since f-strings cannot be docstrings.
I think it makes sense that we attempt to catch this and report an error but I don't think the tool is doing anything other than exposing an exception to the user.
@sigmavirus24 I just found #381. Not sure about the process but I'm willing to pick it up since there is no progress since 2020. I guess a new PR makes sense, right?
@kasium yes, I think that does make sense. There is some significant review there though about a better way to implement that, so don't feel too attached to what's there if it turns out to slow you down
Okay, let me read it and create a new PR to start with a fresh base. Thanks for your timely answers !
Pydocstyle crashes with the below code:
Code:
f"bar {123}"
Traceback:Python 3.7.2 Pydocstyle: 6.3.0