コード例 #1
0
ファイル: application.py プロジェクト: PyCQA/flake8
    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
        )
コード例 #2
0
    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)
コード例 #3
0
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/*")]
コード例 #4
0
    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)
コード例 #5
0
    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)
コード例 #6
0
    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)
コード例 #7
0
ファイル: test_aggregator.py プロジェクト: yinxx/flake8
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/*')]
コード例 #8
0
ファイル: test_aggregator.py プロジェクト: vrosnet/flake8
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/*')]
コード例 #9
0
ファイル: test_aggregator.py プロジェクト: jayvdb/flake8
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/*')]
コード例 #10
0
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/*")]
コード例 #11
0
ファイル: _app.py プロジェクト: destag/flakehell
    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)