On Sun, Jul 14, 2024 at 6:34 PM Ash Berlin-Taylor <a...@apache.org> wrote:

> I agree with everything you've identified except these two:
>
> D102 and D103 aren't worth it for us - there are lots of "public"
> functions from classes but we don't need rendered docs for them unless they
> are part of the "public python API". High effort to get good doc strings
> for low return on my view.
>
> Maybe once we have a more defined public python API (i.e. -72) then we
> could turn those two on for those files.
>
>
Fully agree with Ash here.



> -ash
>
> On 12 July 2024 21:24:24 BST, "Ferruzzi, Dennis"
> <ferru...@amazon.com.INVALID> wrote:
> >Hey folks,
> >
> >There have been a number of projects over the years to enable more and
> more style rules in our linters.  They serve as a great first project and
> help to standardize code which makes it easier for Future Us to jump into
> sections of the code we otherwise don't usually work in and for new
> contributors to ramp up.  The current batch are winding down and I figure
> it's time to get a temperature check for another batch.
> >
> >This is almost certainly going to open a can of worms since python is
> inherently a non-prescriptive language and everyone will have their own
> preferences but hopefully we can pick a couple that we can agree wouldn't
> hurt to enable.
> >
> >The easy part of my proposal is that each ignored rule should have a
> one-liner comment EITHER marking it as unwanted (and why) or as TODO.  I'll
> consider that part to fall under lazy consensus and can make that change at
> the end of this discussion.
> >
> >The trickier part will be deciding which ones are which.  Below is a list
> of the ones which are currently disabled, a link to the detailed
> explanation of the rule, a one-liner explaining the rule for those who
> don't want to click, how many violations exist in the codebase right now
> (for a sense of scale), and my personal suggestion on each one.
> >
> >
> >
> >"D100<https://docs.astral.sh/ruff/rules/undocumented-public-module/>", #
> Unwanted: Docstring at the top of every file.
> >"D102<https://docs.astral.sh/ruff/rules/undocumented-public-method/>", #
> TODO: Docstring in every public method; currently 2473 violations
> >"D103<https://docs.astral.sh/ruff/rules/undocumented-public-function/>",
> # TODO: Docstring in every public function; currently 318 violations
> >"D104<https://docs.astral.sh/ruff/rules/undocumented-public-package/>",
> # Unwanted: Docstring in every `__init__.py` file.
> >"D105<https://docs.astral.sh/ruff/rules/undocumented-magic-method/>", #
> Unwanted: Docstring in every magic method, See
> https://lists.apache.org/thread/8jbg1dd2lr2cfydtqbjxsd6pb6q2wkc3
> >"D107<https://docs.astral.sh/ruff/rules/undocumented-public-init/>", #
> Unwanted: Docstring in every constructor is unnecessary if the class has a
> docstring.
> >"D203<https://docs.astral.sh/ruff/rules/one-blank-line-before-class/>",
> # Unwanted: Conflicts with D211.  Both can not be enabled.
> >"D212<https://docs.astral.sh/ruff/rules/multi-line-summary-first-line/>",
> # Unwanted: Conflicts with D213.  Both can not be enabled.
> >"D214<https://docs.astral.sh/ruff/rules/section-not-over-indented/>", #
> TODO: Consistent multi-line docstring indentation; currently 0 violations
> >"D215<
> https://docs.astral.sh/ruff/rules/section-underline-not-over-indented/>",
> # TODO: Enforce number of underscores if you use underlines in a multi-line
> docstring; currently 0 violations
> >"E731<https://docs.astral.sh/ruff/rules/lambda-assignment/>", # MAYBE?:
> Use a method instead of a lambda when declaring a variable; currently 3
> violations
> >"TCH003<
> https://docs.astral.sh/ruff/rules/typing-only-standard-library-import/>",
> # MAYBE?: stdlib imports which are only used for type checking go into
> TYPE_CHECKING block; currently 38 violations
> >"PT004<
> https://docs.astral.sh/ruff/rules/pytest-missing-fixture-name-underscore/>",
> # TODO: Fixture does not return anything, add leading underscore; currently
> 311 violations
> >"PT005<
> https://docs.astral.sh/ruff/rules/pytest-incorrect-fixture-name-underscore/>",
> # Unwanted: Fixture returns a value, remove leading underscore; currently 1
> violation
> >"PT006<
> https://docs.astral.sh/ruff/rules/pytest-parametrize-names-wrong-type/>",
> # TODO: @pytest.mark.parametrize names should be a tuple; currently 1215
> violations
> >"PT007<
> https://docs.astral.sh/ruff/rules/pytest-parametrize-values-wrong-type/>",
> # TODO: @pytest.mark.parametrize values should be a tuple; currently 391
> violations
> >"PT011<https://docs.astral.sh/ruff/rules/pytest-raises-too-broad/>", #
> TODO: pytest.raises() is too broad, set the match parameter; currently 153
> violations
> >"PT019<
> https://docs.astral.sh/ruff/rules/pytest-fixture-param-without-value/>",
> # MAYBE?: Use @pytest.mark.usefixtures instead of passing a fixture as a
> parameter; currently 268 violations
> >
> >
> >What do we think?  Some seem pretty obvious like D214 which is disabled
> but currently has no violations so we may as well enable it.  Some I don't
> have strong feelings about but think we may as well enable them.  And
> others like PT019 I have honestly no clue.   I think overall I'd lean
> towards "enable unless we have a good reason not to" as a general guideline?
> >
> >
> >
> > - ferruzzi
>

Reply via email to