Commit graph

1690 commits

Author SHA1 Message Date
Eric N. Vander Weele
b42e758ac7 linters: Add flake8-bugbear for finding bugs and design problems
Also, make appropriate changes to satisfy issues flagged by
`flake8-bugbear`.
2019-10-25 17:11:30 -04:00
Anthony Sottile
e2c4b50a46 Merge branch 'config-search-relative-to-cwd' into 'master'
Simplify configuration file search to be relative to cwd

See merge request pycqa/flake8!363
2019-10-23 17:58:38 +00:00
Anthony Sottile
e061259709 Merge branch 'black-format' into 'master'
Reformat files via `black`

See merge request pycqa/flake8!362
2019-10-13 17:49:37 +00:00
Eric N. Vander Weele
66f832d291 application: Remove forwarding unused preliminary arguments
The `ConfigFileFinder` doesn't utilize the preliminary arguments (i.e.,
the file names) anymore for computing the starting path for the
configuration file search.
2019-10-13 13:37:19 -04:00
Eric N. Vander Weele
3f1bdc74a9 tests: Verify ConfigFileFinder behavior based on getcwd()
Update the tests now that `ConfigFileFinder` searches relative to the current working directory.
2019-10-13 13:37:19 -04:00
Eric N. Vander Weele
584402fa1c config: Remove args parameter from ConfigFileFinder.__init__
Now that `args` parameters is not being used, it is safe to remove from
the constructor signature.

Further work is required to evaluate and clean-up tearing out the
threading-through of `args` from various callers and tests.
2019-10-13 13:37:19 -04:00
Eric N. Vander Weele
b3a31496b7 config: Search for configuration relative to current working directory
This is the initial incision to only search for configuration relative
to the current working directory where `flake8` is invoked.  This brings
configuration file detection closer to other CLI-like programs.
2019-10-13 13:37:19 -04:00
Eric N. Vander Weele
5fc1d3def0 Reformat files via black
This was missed in bb12b83.
2019-10-13 13:35:56 -04:00
Anthony Sottile
daca2c80db Merge branch 'remove-output-file-config' into 'master'
options: Remove parsing `--output-file` from the configuration file

See merge request pycqa/flake8!361
2019-10-13 03:48:44 +00:00
Anthony Sottile
a8c69c3857 Merge branch 'remove-verbose-config' into 'master'
options: Remove parsing `--verbose` from the configuration file

See merge request pycqa/flake8!360
2019-10-13 03:47:45 +00:00
Eric N. Vander Weele
bb12b83cc0 options: Remove parsing --output-file from the configuration file
The `--output-file` option is used when parsing and handling preliminary
options for logging.  It is also used to set `BaseFormatter.filename`.
Towards ensuring that the option is respected consistently for both
logging and formatting plugins, only observe the value from the CLI.
2019-10-12 15:36:17 +01:00
Eric N. Vander Weele
6017022942 options: Remove parsing --verbose from the configuration file
The `--verbose` option is only used by `flake8`, itself,` when parsing
and handling preliminary options.  After parsing and merging options
from the configuration file, there is no other behavioral impact to the
core of `flake8`.  In other words, setting `verbose = ...` in a
configuration file doesn't change the logging verbosity.

While the `FileProcessor` does expose a `verbose` attribute, obtained
from the parsed options, the verbosity of the core of `flake8` should be
consistent with how a plugin may respond to the attribute's value.
2019-10-12 14:25:50 +01:00
Anthony Sottile
0359533fca Merge branch 'remove-application-prelim-option-state' into 'master'
Remove application prelimary option state

See merge request pycqa/flake8!358
2019-10-01 18:34:25 +00:00
Eric N. Vander Weele
b54164f916 application: Remove preliminary argument parsing state
The preliminary options and arguments returned from
`.parse_preliminary_options_and_args()` are now all threaded through to
the appropriate methods during initialization.
2019-10-01 08:48:18 +02:00
Eric N. Vander Weele
95a88e3fcd application: Pass prelim opts to .find_plugins()
The configuration file and boolean to ignore configuration files can be
threaded through now that `.parse_preliminary_options_and_args()`
returns options and arguments.
2019-10-01 08:48:18 +02:00
Eric N. Vander Weele
32ebb4fa55 application: Pass prelim opts and args to .make_config_finder()
Now that `.parse_preliminary_options_and_args()` returns options and
arguments, the boolean for appending configuration and the arguments can
be threaded through to the creation of the `ConfigFileFinder`.
2019-10-01 08:48:18 +02:00
Eric N. Vander Weele
55ef2c6f5e application: Pass returned prelim options to .configure_logging()
The verbosity and output file options can be obtained from options
returned by `.parse_preliminary_options_and_args()`, instead of state
from the `Application` object.
2019-10-01 08:48:18 +02:00
Eric N. Vander Weele
6043e90855 application: Return namespace and args from preliminary arg parsing
This is the initial step towards removing state from the `Application`
object during argument parsing and handling.  The goal is to remove
`Application.prelim_opts` and `Application.prelim_args`.
2019-10-01 08:48:18 +02:00
Ian Stapleton Cordasco
6bae5f7ef6 Merge branch 'remove_E101_indent_char_resetting' into 'master'
Don't reset indent_char when we encounter E101

See merge request pycqa/flake8!357
2019-09-25 23:42:44 +00:00
Anthony Sottile
fdcec2803a Don't reset indent_char when we encounter E101 2019-09-24 13:54:32 -07:00
Anthony Sottile
121ea4f056 Merge branch 'whitespace_fixers' into 'master'
Add whitespace fixers

See merge request pycqa/flake8!355
2019-09-08 06:53:48 +00:00
Anthony Sottile
e42884cf60 Add whitespace fixers 2019-09-07 23:49:47 -07:00
Anthony Sottile
5cce7c2cc3 Merge branch 'type_more' into 'master'
Add more type annotations

See merge request pycqa/flake8!353
2019-09-08 06:45:41 +00:00
Anthony Sottile
2c7b550d23 Merge branch 'disable_assert_nosec' into 'master'
Simplify bandit config and allow `assert`

See merge request pycqa/flake8!354
2019-09-08 06:45:08 +00:00
Anthony Sottile
f0cd1537ac Simplify bandit config and allow assert 2019-09-07 23:42:33 -07:00
Anthony Sottile
92fbdda253 Add type annotations for flake8.processor 2019-09-07 23:31:43 -07:00
Anthony Sottile
ae2f38fbeb Add type annotations to flake8.styleguide 2019-09-07 23:10:28 -07:00
Anthony Sottile
a13f02a386 Merge branch 'type_annotate_option_manager' into 'master'
Type annotate flake8.options.manager

See merge request pycqa/flake8!352
2019-09-07 21:51:05 +00:00
Anthony Sottile
8c4e42afaa Type annotate flake8.options.manager 2019-09-07 14:37:50 -07:00
Anthony Sottile
8cd1e0ecc7 Merge branch 'optmgr-parse-args-default-values' into 'master'
Set configuration file-provided values via ArgumentParser.set_defaults()

See merge request pycqa/flake8!350
2019-08-31 04:15:30 +00:00
Eric N. Vander Weele
aadd09dd8b Set configuration file-provided values via ArgumentParser.set_defaults()
When calling `ArgumentParser.parse_args()` with the `namespace`
argument, command-line options are just added to the  namespace without
going through any of the argument parsing and type conversion logic
(e.g., the `type` keyword argument of `ArgumentParser.add_argument()`).
In other words, it is assumed that a namespace is well-formed from a
previous invocation of `ArgumentParser.parse_args()`.

The `values` parameter is intended to be values already-provided from
configuration files.  To take advantage of the logic defined by
`ArgumentParser.add_argument()`,  utilize
`ArgumentParser.set_defaults()` instead.
2019-08-31 00:10:46 -04:00
Eric N. Vander Weele
b231c10016 Test default provided options are forwarded
Ensure options provided external to the command-line (i.e.,
configuration files) are present in the final result of options.
2019-08-31 00:10:46 -04:00
Eric N. Vander Weele
ec8fcfc8f8 Add typing to OptionManager.parse_args()
Note that the `assert` is necessary to "cast" `self.parser` since it is
specified as a `Union`.
2019-08-31 00:10:40 -04:00
Anthony Sottile
eee53d9440 Merge branch 'type-parse-known-args' into 'master'
Add typing to `OptionManager.parse_known_args()`

See merge request pycqa/flake8!348
2019-08-30 18:25:23 +00:00
Eric N. Vander Weele
8ea3c6321d Add typing to OptionManager.parse_known_args()
Note that type casting is necessary given that `self.parser` is
annotated as a `Union`.
2019-08-30 14:17:20 -04:00
Anthony Sottile
c185a2fe6a Merge branch 'remove-parse-known-args-value' into 'master'
Remove unused parameter from `OptionManager.parse_known_args()`

See merge request pycqa/flake8!347
2019-08-30 16:36:52 +00:00
Eric N. Vander Weele
220a9287f5 Remove unused parameter from OptionManager.parse_known_args()
The `values` parameter is not utilized anywhere and can be safely
removed.
2019-08-30 12:30:33 -04:00
Anthony Sottile
a649019c2e Merge branch 'type-config-file-finder' into 'master'
Add typings to ConfigFileFinder constructor

See merge request pycqa/flake8!346
2019-08-29 20:40:41 +00:00
Eric N. Vander Weele
c2216c0ddf Add typings to ConfigFileFinder constructor
`OptionManager.parse_known_args()` is guaranteed to return a list of
remaining argument strings.
2019-08-29 16:36:47 -04:00
Anthony Sottile
45ad2faf8f Merge branch 'hoist-argv' into 'master'
Hoist passing through sys.argv at the CLI layer

See merge request pycqa/flake8!345
2019-08-29 20:09:47 +00:00
Eric N. Vander Weele
cf4bc53c12 Hoist passing through sys.argv at the CLI layer
`flake8.main.cli.main()` is the primary entry point for the command-line
implementation of flake8 (invoked via `__main__` or `console_scripts`).
Therefore, it is reasonable for the entry point to be responsible for
obtaining command line arguments from `sys.argv` there.

Note that `sys.argv[1:]` is necessary in order to strip off the script
name.  Formerly, this was not needed in
`Application.parse_preliminary_options_and_args()`, which was using
`sys.argv[:]` because the result of the argument parsing was just for
determining additional configuration to be loaded.  Then, the *real* CLI
argument parsing was forwarding the original `None` value to
`argparse.ArgumentParser.parse_args()`, which internally was obtaining
arguments as `sys.argv[1:]`.

Additionally, the contract for various argument parsing methods to be
guaranteed a `List[str]`.
2019-08-29 16:06:02 -04:00
Anthony Sottile
8b34b334fa Merge branch 'revert-6a70aaae' into 'master'
Revert "Merge branch 'hoist-argv' into 'master'"

See merge request pycqa/flake8!344
2019-08-28 23:21:04 +00:00
Anthony Sottile
b41d983f04 Revert "Merge branch 'hoist-argv' into 'master'"
This reverts merge request !343
2019-08-28 23:16:20 +00:00
Anthony Sottile
6a70aaae7f Merge branch 'hoist-argv' into 'master'
Hoist passing through sys.argv at the CLI layer

See merge request pycqa/flake8!343
2019-08-28 23:08:45 +00:00
Eric N. Vander Weele
50ac2f7237 Hoist passing through sys.argv at the CLI layer
`flake8.main.cli.main()` is the primary entry point for the command-line
implementation of flake8 (invoked via `__main__` or `console_scripts`).
Therefore, it is reasonable for the entry point to be responsible for
obtaining command line arguments from `sys.argv` there.

Additionally, the contract for various argument parsing methods to be
guaranteed a `List[str]`.
2019-08-28 17:51:33 -04:00
Anthony Sottile
7708e5b4ab Merge branch 'plugin_argparse_groups' into 'master'
Put plugin options into separate argparse groups

Closes #565

See merge request pycqa/flake8!342
2019-08-19 23:13:54 +00:00
Anthony Sottile
8fd36ba15b Put plugin options into separate argparse groups 2019-08-19 15:58:34 -07:00
Anthony Sottile
f265b2275b Merge branch 'argparse' into 'master'
move from optparse to argparse

See merge request pycqa/flake8!341
2019-08-18 22:08:13 +00:00
Anthony Sottile
76515bbb8e Apply suggestion to src/flake8/formatting/base.py 2019-08-18 22:05:00 +00:00
Anthony Sottile
b66ebd7034 move from optparse to argparse 2019-08-17 20:09:45 -07:00