Skip to content

Commit

Permalink
Merge pull request #1648 from PyCQA/invalid-syntax-partial-parse
Browse files Browse the repository at this point in the history
ignore config files that partially parse as flake8 configs
  • Loading branch information
asottile committed Aug 1, 2022
2 parents 70c0b3d + 25e8ff1 commit e76b59a
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/flake8/options/config.py
Expand Up @@ -29,9 +29,9 @@ def _find_config_file(path: str) -> Optional[str]:
home_stat = None

dir_stat = _stat_key(path)
cfg = configparser.RawConfigParser()
while True:
for candidate in ("setup.cfg", "tox.ini", ".flake8"):
cfg = configparser.RawConfigParser()
cfg_path = os.path.join(path, candidate)
try:
cfg.read(cfg_path, encoding="UTF-8")
Expand Down
4 changes: 3 additions & 1 deletion tests/unit/test_options_config.py
Expand Up @@ -21,7 +21,9 @@ def test_config_file_without_section_is_not_considered(tmp_path):


def test_config_file_with_parse_error_is_not_considered(tmp_path, caplog):
tmp_path.joinpath("setup.cfg").write_text("[error")
# the syntax error here is deliberately to trigger a partial parse
# https://github.com/python/cpython/issues/95546
tmp_path.joinpath("setup.cfg").write_text("[flake8]\nx = 1\n...")

assert config._find_config_file(str(tmp_path)) is None

Expand Down

0 comments on commit e76b59a

Please sign in to comment.