Open
Conversation
- Run pre-commit autoupdate (black 23→26, mypy 1.4→1.19, isort 5.12→8, flake8 6→7, autoflake 2.2→2.3) - Pin black target-version to py310-py313 to match requires-python - Add E704 to flake8 ignore list (black 26 formats stub defs on one line) - Auto-reformatted files to match black 26 style Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds [tool.pytest.ini_options] with testpaths and addopts so any test runner picks up the config automatically. Simplifies the Justfile test recipe to a plain `pytest` call. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Consolidates four linting/formatting tools into a single ruff hook: - ruff (linter + import sorter, replaces flake8/isort/autoflake) - ruff-format (formatter, replaces black) Removes [tool.black], [tool.isort], and [tool.flake8] config sections and adds [tool.ruff] with equivalent settings. Dropped ignore rules that don't exist in ruff (E203, E704, W291, W503). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Removes auto-formatter style changes from Python files to keep the PR focused on config-only changes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Auto-formatting applied by ruff-format to conform to new lint standards introduced in this branch. No logic changes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Contributor
Author
|
Note on source file changes The following files were auto-reformatted by
These are purely cosmetic style changes (e.g. string quote normalization, line wrapping). There are no logic changes in any of these files. |
kmitcham
approved these changes
Mar 31, 2026
Contributor
kmitcham
left a comment
There was a problem hiding this comment.
I was a little worried modernizing would give my ancient workstation trouble, but this branch passes tests on 3.10.14 on my ubuntu 18 machine, so I'm in favor.
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.
Description
This Pr is mostly me experimenting with a new development method and utilizing Claude as much as I can. I was aware that some of our dev tools were out of date so I was doing an ai review of our linting. This led me to the recommendation of Ruff. We have an open ticket for #50 to use Ruff and I thought this might be an opportunity to upgrade. This PR is completely AI generated and all commits and comments were made with Claude as an experiment.
Summary
Three developer tooling improvements to modernize the project's dev workflow:
1. Update pre-commit hook versions
All hooks were significantly out of date. Ran
pre-commit autoupdateto bring them current:black23→26,mypy1.4→1.19,isort5.12→8,flake86→7,autoflake2.2→2.3. Also pinned black'starget-versionto py310–py313 to matchrequires-python.2. Move pytest config into pyproject.toml
Test runner arguments were only defined in the
Justfile. Added[tool.pytest.ini_options]topyproject.tomlso the config is picked up automatically by any test runner (IDEs, CI, etc.), not justjust test.3. Replace black + isort + flake8 + autoflake with ruff
Consolidates four separate linting/formatting tools into a single
ruffhook. Ruff is faster, requires less config, and is now the de facto standard in the Python ecosystem. The[tool.black],[tool.isort], and[tool.flake8]config sections inpyproject.tomlare replaced by a single[tool.ruff]block.Test plan
just lintpasses (ruff + mypy clean)just testpasses (112 tests: 102 passed, 10 xfailed)🤖 Generated with Claude Code