Commit graph

394 commits

Author SHA1 Message Date
Anthony Sottile
ce274fb742 remove --statistics and --benchmarks 2022-09-29 15:12:55 -04:00
Anthony Sottile
e94fb10940 require python>=3.7 2022-08-05 19:51:08 -04:00
Anthony Sottile
25e8ff18b3 ignore config files that partially parse as flake8 configs 2022-08-01 19:11:53 -04:00
Anthony Sottile
8b51ee4ea5 skip skipping home if home does not exist 2022-08-01 05:51:38 -07:00
Anthony Sottile
fce93b952a prevent duplicate plugin discovery on misconfigured pythons
for example, `venv`-virtualenvs on fedora have both `lib` and `lib64` on
`sys.path` despite them being the same.  this causes
`importlib.metadata.distributions` to double-discover.

```console
$ docker run --rm -t fedora:latest bash -c 'dnf install -qq -y python3 >& /dev/null && python3 -m venv venv && venv/bin/pip -qq install cfgv && venv/bin/python - <<< "from importlib.metadata import distributions; print(len([d for d in distributions() if d.name == '"'"'cfgv'"'"']))"'
2
```
2022-07-31 18:03:25 -04:00
Anthony Sottile
c7c6218e58 Release 5.0.0 2022-07-30 17:00:41 -04:00
Anthony Sottile
14a91d995c ignore config files in the home directory 2022-07-13 15:40:40 -04:00
Anthony Sottile
367c810f0e don't consider default codes as explicitly selected unless listed 2022-06-24 17:55:41 -04:00
Anthony Sottile
f3443f4a78 forbid invalid plugin prefixes in plugin loading 2022-04-06 16:29:25 -04:00
Anthony Sottile
c5225db626 simplify decision engine
- not specified codes (cmdline / config) are now known as being implicit via
  None sentinel
- removed redundant logic for (explicit, explicit) selection
2022-03-22 18:22:20 -07:00
Anthony Sottile
62ce3e4918
Merge pull request #1552 from PyCQA/ignore-order
make --ignore order consistent
2022-02-06 11:39:46 -05:00
Anthony Sottile
f7ef1a6c8b make --ignore order consistent 2022-02-06 08:36:36 -08:00
Anthony Sottile
58ade57ca2 re-show pycodestyle in help after plugin gen 2022-02-06 08:14:26 -08:00
Anthony Sottile
4e56fc0f6a pregenerate the pycodestyle plugin to avoid call overhead 2022-01-25 13:52:54 -05:00
Anthony Sottile
d2333c4471 include the file path in the plugin execution error 2022-01-23 20:41:32 -05:00
Anthony Sottile
f0f71fc179 remove unused parameter from make_formatter 2022-01-23 19:33:21 -05:00
Anthony Sottile
f9eb0fd6ea change keyword_arguments_for so it does not modify and return 2022-01-23 19:06:06 -05:00
Anthony Sottile
929cf5dfd3 remove log_token and EXTRA_VERBOSE
- flake8 spent 5% of execution in `log_token`
- `EXTRA_VERBOSE` was only used by `log_token`
- `python -m tokenize` provides better debug token output
2022-01-23 18:08:58 -05:00
Anthony Sottile
23a60dd902 use the actual line contents when processing physical lines 2022-01-22 15:27:53 -05:00
Anthony Sottile
d03b9c97cc add a --require-plugins option 2022-01-22 14:08:32 -05:00
Anthony Sottile
9d23faad6d always use UTF-8 encoding when reading configuration 2022-01-20 14:03:18 -05:00
Anthony Sottile
c194d6cc30 combine local_plugin_paths and parse_plugin_options 2022-01-18 20:57:09 -05:00
Anthony Sottile
1b58293ad3 refactor plugin loading options to prepare for --require-plugins 2022-01-10 20:06:26 -05:00
Anthony Sottile
ec57d5e67c use tokenize.TokenInfo instead of _Token alias 2022-01-05 15:37:25 -05:00
Anthony Sottile
fa4c31fb97 break type checking cycles 2022-01-05 13:40:16 -05:00
Anthony Sottile
3c885219b5 use typesafe NamedTuple 2022-01-05 13:02:38 -05:00
Anthony Sottile
78b2db4072 type the rest of the legacy api 2022-01-05 12:35:38 -05:00
Anthony Sottile
4cb1dc8c44 perform path normalization on '.' 2022-01-05 11:44:31 -05:00
Anthony Sottile
b62edd334a fix extended_default_select from plugin loading 2022-01-01 19:26:43 -05:00
Anthony Sottile
a8333e2bf2 move managing of off_by_default / enable_extensions to plugin loading 2022-01-01 18:33:07 -05:00
Anthony Sottile
50d69150c1 rework plugin loading 2021-12-31 15:09:54 -08:00
Ruairidh MacLeod
d948169292 add check for a missing specified config file 2021-12-24 23:40:31 +00:00
Ruairidh MacLeod
d478d92299 add failing test for missing config file 2021-12-24 23:40:31 +00:00
Anthony Sottile
a7be5e798b fix AttributeError when catatstrophic failure is triggered 2021-12-24 16:38:17 -05:00
Anthony Sottile
f98d52a398 have OptionManager take plugin versions directly 2021-12-08 15:49:17 -05:00
Anthony Sottile
1e4743d490 use plugin_name= instead of dicts in exceptions 2021-12-07 15:36:20 -08:00
Anthony Sottile
52fb518104 eliminate --bug-report double-parse quirk with store_true 2021-12-07 13:49:57 -08:00
Anthony Sottile
fa8ac82ee2 add integration test for off_by_default plugin 2021-12-07 12:25:24 -08:00
Anthony Sottile
77a054688b refactor run_checks to not take an Optional list of filenames 2021-11-25 15:45:01 -05:00
Anthony Sottile
65c893728e refactor and simplify configuration loading 2021-11-22 19:45:17 -05:00
Anthony Sottile
411ff24392 move from allowlist to blocklist for mypy 2021-11-14 21:48:17 -08:00
Anthony Sottile
3b7dbd6697 replace py2-kwonly shim with true kwonly args 2021-11-14 20:59:28 -08:00
Anthony Sottile
bbbe0d8048 improve integration tests 2021-11-14 20:39:45 -08:00
Anthony Sottile
66071563c2 split out file discovery and test it 2021-11-14 20:04:29 -08:00
Anthony Sottile
97c3de41bd fix test name after exit -> exit_code refactor 2021-11-14 16:38:39 -08:00
Anthony Sottile
81a4110338 have application return exit code for easier testing 2021-11-14 16:29:18 -08:00
Anthony Sottile
8d3afe40e1 use return value of parse_args directly 2021-11-14 15:39:14 -08:00
Anthony Sottile
0698366a20 add a __repr__ for JobsArgument 2021-11-14 14:42:48 -08:00
Anthony Sottile
bb3c8d2607 improve coverage a bit 2021-11-14 09:39:33 -08:00
Anthony Sottile
3af47b7df5 remove some unused test fixture files 2021-11-14 08:54:57 -08:00