Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Tracking Current outstanding pre-commit repo review actions

Open
#277 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Refactor
Clarity
Needs clarification
Activity status
Stale
Tech stack
python

Research direction

Start by reading pyproject.toml and the pre-commit action described in #276, then group the unchecked Repo Review, Ruff, NumPy-style docstring, and MyPy items by the changes they require. Done means each applicable check is implemented and its ignore removed, or the project has recorded which checks will remain ignored and why.

Written by the indexing model from the issue text.

Description

📰 Custom Issue

#276 will add a pre-commit action checking our repo against repo review.

To add this I have set all of the tests that currently fail to ignore in the pyproject.toml. We need to consider which/how many of these we can/want to implement into stratify, and which we are happy to leave on ignore.

Repo Review

  • PY004: Has docs folder
  • PP302: Sets a minimum pytest to at least 6
  • PP304: Sets the log level in pytest
  • PP305: Specifies xfail_strict
  • PP306: Specifies strict config
  • PP307: Specifies strict markers
  • PP309: Filter warnings specified
  • PY007: Supports an easy task runner (nox or tox)
  • PP003: Does not list wheel as a build-dep
  • PC111: Uses blacken-docs
  • PC140: Uses a type checker
  • PC160: Uses a spell checker
  • PC170: Uses PyGrep hooks (only needed if rST present)
  • PC180: Uses a markdown formatter
  • PC190: Uses Ruff
  • MY100: Uses MyPy (pyproject config)
  • RF001: Has Ruff config
  • RTD100: Uses ReadTheDocs (pyproject config)

Ruff

  • "ANN001", # Missing type annotation for function argument {name}
  • "ANN002", # Missing type annotation for *{name}
  • "ANN003", # Missing type annotation for **{name}
  • "ANN201", # Missing return type annotation for public function {name}
  • "ANN202", # Missing return type annotation for private function {name}
  • "ANN204", # Missing return type annotation for special method {name}
  • "ARG002", # Unused method argument: {name}
  • "ARG003", # Unused class method argument: {name}
  • "B028", # No explicit stacklevel keyword argument found
  • "C405", # Unnecessary {obj_type} literal (rewrite as a set literal)
  • "C419", # Unnecessary list comprehension
  • "COM812", # Trailing comma missing.
  • "COM819", # Trailing comma prohibited.
  • "D100", # Missing docstring in public module
  • "D101", # Missing docstring in public class
  • "D102", # Missing docstring in public method
  • "D103", # Missing docstring in public function
  • "D104", # Missing docstring in public package
  • "D106", # Missing docstring in public nested class
  • "D205", # 1 blank line required between summary line and description
  • "ERA001", # Found commented-out code
  • "FBT002", # Boolean default positional argument in function definition
  • "ISC001", # Implicitly concatenate string literals on one line.
  • "N801", # Class name {name} should use CapWords convention
  • "PLR2004", # Magic value used in comparison, consider replacing {value} with a constant variable
  • "PT009", # Use a regular assert instead of unittest-style {assertion}
  • "PT027", # Use pytest.raises instead of unittest-style {assertion}
  • "RET504", # Unnecessary assignment to {name} before return statement
  • "RUF005", # Consider {expression} instead of concatenation
  • "RUF012", # Mutable class attributes should be annotated with typing.ClassVar
  • "SLF001", # Private member accessed: {access}
  • "T201", # print found
Per file
Tests
  • "D100", # Missing docstring in public module
  • "D205", # 1 blank line required between summary line and description
  • "D401", # 1 First line of docstring should be in imperative mood

NumPydoc

  • "GL01", # Permit summary line on same line as docstring opening quotes.
  • "GL02", # Permit a blank line before docstring closing quotes.
  • "GL03", # Ignoring.
  • "GL08", # The object does not have a docstring
  • "PR01", # Parameters {missing_params} not documented
  • "PR02", # Unknown parameters {unknown_params}
  • "PR10", # Parameter "{param_name}" requires a space before the colon separating the parameter name and type
  • "RT04", # Return value description should start with a capital letter
  • "SS06", # Summary should fit in a single line
  • "SA01", # Not all docstrings require a "See Also" section.
  • "ES01", # Not all docstrings require an "Extended Summary" section.
  • "EX01", # Not all docstrings require an "Examples" section.
  • "YD01", # Not all docstrings require a "Yields" section.

MyPy

(These are the groups of errors that we disable).
  • "call-arg"
  • "no-untyped-def"
  • "no-untyped-def"
  • "attr-defined"
  • "misc"
  • "index"
  • "var-annotated"
  • "assignment"
Dominant language
Jupyter Notebook
Stars
30
Forks
19
Avg merge
9d 1h
Merged PRs (30d)
2

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from SciTools/python-stratify

All issues in SciTools/python-stratify

Similar issues

More Build System issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.