Skip to content

Commit

Permalink
Also fix parse_config_file()
Browse files Browse the repository at this point in the history
Signed-off-by: Timo Röhling <roehling@debian.org>
  • Loading branch information
roehling authored and clalancette committed Jun 6, 2023
1 parent 5f6b607 commit 31c8ad8
Showing 1 changed file with 22 additions and 8 deletions.
30 changes: 22 additions & 8 deletions ament_flake8/ament_flake8/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,28 +190,42 @@ def get_flake8_style_guide(argv):


def parse_config_file(config_file):
from flake8 import __version__ as flake8_version, __version_info__ as flake8_version_info
from flake8.options import config, manager, aggregator

try:
# Support 4.0.0
opts_manager = manager.OptionManager(prog='flake8', version='4.0.0')
major_release = flake8_version_info[0]

if major_release >= 5:
opts_manager = manager.OptionManager(
version=flake8_version,
plugin_versions="",
parents=[]
)
flake8_options.register_default_options(opts_manager)
cfg, cfg_dir = config.load_config(config_file, [])

return aggregator.aggregate_options(
opts_manager,
config.ConfigFileFinder('flake8', [], config_file),
cfg, cfg_dir,
[]
)
except TypeError:
opts_manager = manager.OptionManager(prog='flake8', version='3.0.0')
), []

if major_release >= 3:
opts_manager = manager.OptionManager(prog='flake8', version=flake8_version)
flake8_options.register_default_options(opts_manager)

return aggregator.aggregate_options(
opts_manager,
config.ConfigFileFinder('flake8', [], [config_file]),
config.ConfigFileFinder(
'flake8',
[],
config_file if major_release == 4 else [config_file]
),
[]
)

raise RuntimeError('flake8 is too old. Please upgrade to version 3.0.0 or newer')


def generate_flake8_report(config_file, paths, excludes, max_line_length=None):
opts, _ = parse_config_file(config_file)
Expand Down

0 comments on commit 31c8ad8

Please sign in to comment.