econchick / interrogate

Explain yourself! Interrogate a codebase for docstring coverage.
https://interrogate.readthedocs.io
MIT License
562 stars 46 forks source link

Quality of docstr #156

Open estahn opened 11 months ago

estahn commented 11 months ago

Describe the feature you'd like

Currently interrogate only checks if docstrings are present without putting any value on the quality, e.g.

I understand this would be a larger piece of work due to the different docstring styles that require parsing.

Is your feature request related to a problem?

Increase the quality of docstrings.

ericmjl commented 8 months ago

@estahn after submitting an issue request here, I casually browsed through the rest of the issues reported, and I saw this one. I think you may want to check pydoclint, which checks for the information you're asking for: https://github.com/jsh9/pydoclint. I also wrote a blog post about pydoclint having tried it: https://ericmjl.github.io/blog/2023/10/9/check-docstrings-blazing-fast-with-pydoclint/.

Hope this information is helpful or valuable for you!

estahn commented 8 months ago

@ericmjl Thanks for the pointer but I must be missing something.

def foobar(a: str) -> str:
    """
    Foobar
    """
    pass

Returns

$ pydoclint test.py --style=google
Loading config from user-specified .toml file: pyproject.toml
No config found in pyproject.toml.
Skipping files that match this pattern: \.git|\.tox
test.py
🎉 No violations 🎉
econchick commented 3 months ago

Belated response - my apologies!

I like this idea, and I think it'd be a good enhancement. I also think @ericmjl has an interesting idea too, that we may be able to incorporate pydoclint (esp since it also parses the AST) or at least get some inspiration.

I can't guarantee being able to add this anytime soon, so I'm inviting others to contribute to this idea. Anyone interested - please speak up and I'll assign the ticket to you. (And if/when I do start working on this before anyone else, I'll be sure to update this ticket to avoid any duplicate work).