def parse_configuration_and_cli(self, argv=None): # type: (Optional[List[str]]) -> None """Parse configuration files and the CLI options. :param list argv: Command-line arguments passed in directly. """ if self.options is None and self.args is None: self.options, self.args = aggregator.aggregate_options( self.option_manager, self.config_finder, argv ) self.running_against_diff = self.options.diff if self.running_against_diff: self.parsed_diff = utils.parse_unified_diff() if not self.parsed_diff: self.exit() self.options._running_from_vcs = False self.check_plugins.provide_options( self.option_manager, self.options, self.args ) self.formatting_plugins.provide_options( self.option_manager, self.options, self.args )
def parse_configuration_and_cli( self, config_finder: config.ConfigFileFinder, argv: List[str], ) -> None: """Parse configuration files and the CLI options. :param config.ConfigFileFinder config_finder: The finder for finding and reading configuration files. :param list argv: Command-line arguments passed in directly. """ self.options, self.args = aggregator.aggregate_options( self.option_manager, config_finder, argv, ) self.running_against_diff = self.options.diff if self.running_against_diff: self.parsed_diff = utils.parse_unified_diff() if not self.parsed_diff: self.exit() assert self.check_plugins is not None self.check_plugins.provide_options(self.option_manager, self.options, self.args) assert self.formatting_plugins is not None self.formatting_plugins.provide_options(self.option_manager, self.options, self.args)
def test_aggregate_options_when_isolated(optmanager): """Verify we aggregate options and config values appropriately.""" arguments = [ "flake8", "--select", "E11,E34,E402,W,F", "--exclude", "tests/*", ] config_finder = config.ConfigFileFinder("flake8", ignore_config_files=True) optmanager.extend_default_ignore(["E8"]) options, args = aggregator.aggregate_options(optmanager, config_finder, arguments) assert options.select == ["E11", "E34", "E402", "W", "F"] assert sorted(options.ignore) == [ "E121", "E123", "E126", "E226", "E24", "E704", "E8", "W503", "W504", ] assert options.exclude == [os.path.abspath("tests/*")]
def parse_configuration_and_cli(self, argv=None): # type: (Union[NoneType, List[str]]) -> NoneType """Parse configuration files and the CLI options. :param list argv: Command-line arguments passed in directly. """ if self.options is None and self.args is None: self.options, self.args = aggregator.aggregate_options( self.option_manager, argv ) self.running_against_diff = self.options.diff if self.running_against_diff: self.parsed_diff = utils.parse_unified_diff() if not self.parsed_diff: self.exit() self.options._running_from_vcs = False self.check_plugins.provide_options(self.option_manager, self.options, self.args) self.listening_plugins.provide_options(self.option_manager, self.options, self.args) self.formatting_plugins.provide_options(self.option_manager, self.options, self.args)
def parse_configuration_and_cli_nightly( self, config_finder: config.ConfigFileFinder, argv: List[str]) -> None: """ Compat version of self.parse_configuration_and_cli to work with nightly build of flake8 master https://gitlab.com/pycqa/flake8/blob/master/src/flake8/main/application.py#L194 Parse configuration files and the CLI options. :param config.ConfigFileFinder config_finder: The finder for finding and reading configuration files. :param list argv: Command-line arguments passed in directly. """ self.options, self.args = aggregator.aggregate_options( self.option_manager, config_finder, argv, ) self.args = self.hack_args(self.args, self.options.exclude) self.running_against_diff = self.options.diff if self.running_against_diff: # pragma: no cover self.parsed_diff = utils.parse_unified_diff() if not self.parsed_diff: self.exit() self.options._running_from_vcs = False self.check_plugins.provide_options(self.option_manager, self.options, self.args) self.formatting_plugins.provide_options(self.option_manager, self.options, self.args)
def parse_configuration_and_cli(self, argv: Optional[List[str]] = None) -> None: """ Parse configuration files and the CLI options. Parameters ---------- argv: List[str] Command-line arguments passed in directly. """ if self.options is None and self.args is None: # pragma: no branch self.options, self.args = aggregator.aggregate_options( self.option_manager, self.config_finder, argv) self.args = self.hack_args(self.args, self.options.exclude) self.running_against_diff = self.options.diff if self.running_against_diff: # pragma: no cover self.parsed_diff = utils.parse_unified_diff() if not self.parsed_diff: self.exit() self.options._running_from_vcs = False self.check_plugins.provide_options(self.option_manager, self.options, self.args) self.formatting_plugins.provide_options(self.option_manager, self.options, self.args)
def test_aggregate_options_when_isolated(optmanager): """Verify we aggregate options and config values appropriately.""" arguments = [ 'flake8', '--isolated', '--select', 'E11,E34,E402,W,F', '--exclude', 'tests/*' ] config_finder = config.ConfigFileFinder('flake8', arguments, []) optmanager.extend_default_ignore(['E8']) options, args = aggregator.aggregate_options(optmanager, config_finder, arguments) assert options.isolated is True assert options.select == ['E11', 'E34', 'E402', 'W', 'F'] assert sorted(options.ignore) == [ 'E121', 'E123', 'E126', 'E226', 'E24', 'E704', 'E8', 'W503', 'W504', ] assert options.exclude == [os.path.abspath('tests/*')]
def test_aggregate_options_with_config(optmanager): """Verify we aggregate options and config values appropriately.""" arguments = ['flake8', '--config', CLI_SPECIFIED_CONFIG, '--select', 'E11,E34,E402,W,F', '--exclude', 'tests/*'] options, args = aggregator.aggregate_options(optmanager, arguments) assert options.config == CLI_SPECIFIED_CONFIG assert options.select == ['E11', 'E34', 'E402', 'W', 'F'] assert options.ignore == ['E123', 'W234', 'E111'] assert options.exclude == [os.path.abspath('tests/*')]
def test_aggregate_options_when_isolated(optmanager): """Verify we aggregate options and config values appropriately.""" arguments = ['flake8', '--isolated', '--select', 'E11,E34,E402,W,F', '--exclude', 'tests/*'] optmanager.extend_default_ignore(['E8']) options, args = aggregator.aggregate_options(optmanager, arguments) assert options.isolated is True assert options.select == ['E11', 'E34', 'E402', 'W', 'F'] assert sorted(options.ignore) == [ 'E121', 'E123', 'E126', 'E226', 'E24', 'E704', 'E8', 'W503', 'W504', ] assert options.exclude == [os.path.abspath('tests/*')]
def test_aggregate_options_with_config(optmanager): """Verify we aggregate options and config values appropriately.""" arguments = [ "flake8", "--select", "E11,E34,E402,W,F", "--exclude", "tests/*", ] config_finder = config.ConfigFileFinder("flake8", config_file=CLI_SPECIFIED_CONFIG) options, args = aggregator.aggregate_options(optmanager, config_finder, arguments) assert options.select == ["E11", "E34", "E402", "W", "F"] assert options.ignore == ["E123", "W234", "E111"] assert options.exclude == [os.path.abspath("tests/*")]
def parse_configuration_and_cli(self, argv: List[str] = None) -> None: # if passed `--config` with path to TOML-config, we should extract it # before passing into flake8 mechanisms config_path, argv = self.extract_toml_config_path(argv=argv) # make default config config, _ = self.option_manager.parse_args([]) config.__dict__.update(DEFAULTS) # patch config wtih TOML # If config is explicilty passed, it will be used # If config isn't specified, flakehell will lookup for it config.__dict__.update(self.get_toml_config(config_path)) # parse CLI options and legacy flake8 configs self.options, self.args = aggregate_options( manager=self.option_manager, config_finder=self.config_finder, arglist=argv, values=config, ) super().parse_configuration_and_cli(argv=argv)