Fix hooks printing errors to stderr instead of stdout#1844
Merged
Conversation
…ess messages The hooks were printing error output to stderr and a success message to stdout. In a pre-commit/prek context, stdout is the standard output stream for hook output. Using stderr for errors meant violations could go unseen while the success message on stdout always appeared. Changes: - check-docstring-substrings.py: errors to stdout, removed success msg - check-comment-keywords.py: errors to stdout, removed success msg - check-banned-words.py: errors to stdout, removed success msg - Removed unused sys imports from all three hooks Agent-Logs-Url: https://github.com/usethis-python/usethis-python/sessions/16f73dc6-f9ed-489f-aabd-b89069012a57 Co-authored-by: nathanjmcdougall <18602289+nathanjmcdougall@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix bug in forbidden docstring substring hook
Fix hooks printing errors to stderr instead of stdout
Apr 7, 2026
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
nathanjmcdougall
approved these changes
Apr 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pre-commit/prek hooks were printing violation output to
stderrand a success message tostdout. Since prek capturesstdoutas the primary display stream, errors could go unseen while"No forbidden patterns found in docstrings."was always the visible output.Changes
hooks/check-docstring-substrings.py,check-comment-keywords.py,check-banned-words.py: Print violations tostdout, remove redundant success messages (the framework already shows Passed/Failed), drop unusedsysimportsBefore/after
Lesson
Filed #1845 — pre-commit hooks must use
stdoutfor all output (general CLI convention of errors→stderr conflicts with the pre-commit captured-output model).