Title: flake8 pre-commit config incompatible with 3.12 · Issue #1670 · gitpython-developers/GitPython · GitHub
Open Graph Title: flake8 pre-commit config incompatible with 3.12 · Issue #1670 · gitpython-developers/GitPython
X Title: flake8 pre-commit config incompatible with 3.12 · Issue #1670 · gitpython-developers/GitPython
Description: The configuration for flake8 in .pre-commit-config.yaml--specifically that version 6.0.0 is used--is incompatible with Python 3.12, producing an incorrect "E231 missing whitespace after ':'" error: (.venv) ek@Glub:~/repos-wsl/GitPython (...
Open Graph Description: The configuration for flake8 in .pre-commit-config.yaml--specifically that version 6.0.0 is used--is incompatible with Python 3.12, producing an incorrect "E231 missing whitespace after ':'" error:...
X Description: The configuration for flake8 in .pre-commit-config.yaml--specifically that version 6.0.0 is used--is incompatible with Python 3.12, producing an incorrect "E231 missing whitespace after ':...
Opengraph URL: https://github.com/gitpython-developers/GitPython/issues/1670
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"flake8 pre-commit config incompatible with 3.12","articleBody":"The configuration for `flake8` in `.pre-commit-config.yaml`--specifically that version 6.0.0 is used--is incompatible with Python 3.12, producing an incorrect \"E231 missing whitespace after ':'\" error:\r\n\r\n```text\r\n(.venv) ek@Glub:~/repos-wsl/GitPython (scripts)$ pre-commit run --all-files\r\nflake8...................................................................Failed\r\n- hook id: flake8\r\n- exit code: 1\r\n\r\ngit/cmd.py:479:34: E231 missing whitespace after ':'\r\n f\"The `{protocol}::` protocol looks suspicious, use `allow_unsafe_protocols=True` to allow it.\"\r\n ^\r\ngit/cmd.py:479:35: E231 missing whitespace after ':'\r\n f\"The `{protocol}::` protocol looks suspicious, use `allow_unsafe_protocols=True` to allow it.\"\r\n ^\r\ngit/refs/log.py:247:67: E226 missing whitespace around arithmetic operator\r\n raise IndexError(f\"Index file ended at line {i+1}, before given index was reached\")\r\n ^\r\n1 E226 missing whitespace around arithmetic operator\r\n2 E231 missing whitespace after ':'\r\n3\r\n\r\ncheck for merge conflicts................................................Passed\r\ncheck toml...............................................................Passed\r\ncheck yaml...............................................................Passed\r\n```\r\n\r\nIt also reports E226, which also happens only on Python 3.12, but appears intentional. But that's easy to fix (the simplest way being to add the spaces it wants, which also more resembles the overall style for the `+` operator in this project).\r\n\r\nThe wrong `:` error (false positive E231) happens because `flake8` 6.0.0 depends on `pycodestyle` 2.10.\\*, which implements that check (E231) and has a parsing bug specific to Python 3.12. This was fixed in https://github.com/PyCQA/pycodestyle/pull/1148.\r\n\r\nUpgrading to `flake8` 6.1.0 gets the fix, since that version of `flake8`, currently the latest, [depends on](https://flake8.pycqa.org/en/latest/release-notes/6.1.0.html) `pycodestyle` 2.11.\\*, [which has it](https://pycodestyle.pycqa.org/en/latest/developer.html#changes):\r\n\r\n```text\r\n(.venv) ek@Glub:~/repos-wsl/GitPython (scripts)$ pre-commit autoupdate\r\n[https://github.com/PyCQA/flake8] updating 6.0.0 -\u003e 6.1.0\r\n[https://github.com/pre-commit/pre-commit-hooks] already up to date!\r\n(.venv) ek@Glub:~/repos-wsl/GitPython (scripts *)$ pre-commit run --all-files\r\n[INFO] Installing environment for https://github.com/PyCQA/flake8.\r\n[INFO] Once installed this environment will be reused.\r\n[INFO] This may take a few minutes...\r\nflake8...................................................................Failed\r\n- hook id: flake8\r\n- exit code: 1\r\n\r\ngit/objects/submodule/base.py:1406:16: E721 do not compare types, for exact checks use `is` / `is not`, for instance checks use `isinstance()`\r\n if type(sm) != git.objects.submodule.base.Submodule:\r\n ^\r\ngit/refs/log.py:247:67: E226 missing whitespace around arithmetic operator\r\n raise IndexError(f\"Index file ended at line {i+1}, before given index was reached\")\r\n ^\r\ngit/util.py:1139:16: E721 do not compare types, for exact checks use `is` / `is not`, for instance checks use `isinstance()`\r\n if type(base) == IterableClassWatcher:\r\n ^\r\n1 E226 missing whitespace around arithmetic operator\r\n2 E721 do not compare types, for exact checks use `is` / `is not`, for instance checks use `isinstance()`\r\n3\r\n\r\ncheck for merge conflicts................................................Passed\r\ncheck toml...............................................................Passed\r\ncheck yaml...............................................................Passed\r\n```\r\n\r\nHowever, that reports E721 about the use of `==` to compare to a `type` object. So I think it makes sense for a fix for this to be part of a larger change that also fixes the new problems found by `flake8`, also bumps versions on the listed `flake8` plugins (other than the default ones like `pycodestyle`) and fixes new warnings from that, and possibly addresses other style issues and/or expands the scope of `flake8` checks to cover the test suite. (The benefit of the latter is that it could reveal areas where the checks ought to be configured differently.) I plan to open such a PR shortly.","author":{"url":"https://github.com/EliahKagan","@type":"Person","name":"EliahKagan"},"datePublished":"2023-09-21T08:28:00.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/1670/GitPython/issues/1670"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:7ff68e3b-ed87-d2c9-e53b-d9b6bcbfaf8d |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | DF4C:2C181A:9F6CB:D2666:69686AEE |
| html-safe-nonce | b3a5e9e85ffcb26ab237627d2a4e8c0ad44c21210b4490ffbf181472829bc9f0 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERjRDOjJDMTgxQTo5RjZDQjpEMjY2Njo2OTY4NkFFRSIsInZpc2l0b3JfaWQiOiI0NTQzNjk3NDIyMzM5NTY2MzE4IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 562e1969639105daa2f9d4d55f1de820c331121b5fb590943acabc7ef541f767 |
| hovercard-subject-tag | issue:1906409334 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/gitpython-developers/GitPython/1670/issue_layout |
| twitter:image | https://opengraph.githubassets.com/38ff1f116c1111f31c14c23750e9f31fcc7a6740fa0b7a95d5c0780611ca3b98/gitpython-developers/GitPython/issues/1670 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/38ff1f116c1111f31c14c23750e9f31fcc7a6740fa0b7a95d5c0780611ca3b98/gitpython-developers/GitPython/issues/1670 |
| og:image:alt | The configuration for flake8 in .pre-commit-config.yaml--specifically that version 6.0.0 is used--is incompatible with Python 3.12, producing an incorrect "E231 missing whitespace after ':'" error:... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | EliahKagan |
| hostname | github.com |
| expected-hostname | github.com |
| None | 50f46dc2d6192249fd8ebf20e76c800f4f2596d4a5f3ab63dd63a754df154f54 |
| turbo-cache-control | no-preview |
| go-import | github.com/gitpython-developers/GitPython git https://github.com/gitpython-developers/GitPython.git |
| octolytics-dimension-user_id | 503709 |
| octolytics-dimension-user_login | gitpython-developers |
| octolytics-dimension-repository_id | 1126087 |
| octolytics-dimension-repository_nwo | gitpython-developers/GitPython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1126087 |
| octolytics-dimension-repository_network_root_nwo | gitpython-developers/GitPython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | fef287f17234b4529a4b112a3d47fe8551e32ddd |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width