mirror of
https://github.com/PyCQA/flake8.git
synced 2026-03-29 10:36:53 +00:00
Fix project config file discovery
Flake8 3.0 was stopping once it found the current directory but the historical behaviour (that we didn't intend to break) searched past that (towards root) until it found one of the project/local config file names that could be read. Closes #181
This commit is contained in:
parent
f82b5d62d0
commit
df2fa18a08
5 changed files with 22 additions and 27 deletions
|
|
@ -1,5 +1,5 @@
|
|||
3.0.1 -- 2016-07-25
|
||||
-------------------
|
||||
3.0.1 -- 2016-07-25 (unreleased)
|
||||
--------------------------------
|
||||
|
||||
- Fix regression in handling of ``# noqa`` for multiline strings.
|
||||
(See also `GitLab#177`_)
|
||||
|
|
|
|||
9
docs/source/release-notes/3.0.2.rst
Normal file
9
docs/source/release-notes/3.0.2.rst
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
3.0.2 -- 2016-07-26
|
||||
-------------------
|
||||
|
||||
- Fix local config file discovery. (See also `GitLab#181`_)
|
||||
|
||||
|
||||
.. links
|
||||
.. _GitLab#181:
|
||||
https://gitlab.com/pycqa/flake8/issues/181
|
||||
|
|
@ -6,6 +6,7 @@ All of the release notes that have been recorded for Flake8 are organized here
|
|||
with the newest releases first.
|
||||
|
||||
.. toctree::
|
||||
3.0.2
|
||||
3.0.1
|
||||
3.0.0
|
||||
2.6.2
|
||||
|
|
|
|||
|
|
@ -43,8 +43,6 @@ class ConfigFileFinder(object):
|
|||
# List of filenames to find in the local/project directory
|
||||
self.project_filenames = ('setup.cfg', 'tox.ini', self.program_config)
|
||||
|
||||
self.local_directory = os.path.abspath(os.curdir)
|
||||
|
||||
if not args:
|
||||
args = ['.']
|
||||
self.parent = self.tail = os.path.abspath(os.path.commonprefix(args))
|
||||
|
|
@ -72,14 +70,14 @@ class ConfigFileFinder(object):
|
|||
"""Find and generate all local config files."""
|
||||
tail = self.tail
|
||||
parent = self.parent
|
||||
local_dir = self.local_directory
|
||||
while tail:
|
||||
found_config_files = False
|
||||
while tail and not found_config_files:
|
||||
for project_filename in self.project_filenames:
|
||||
filename = os.path.abspath(os.path.join(parent,
|
||||
project_filename))
|
||||
yield filename
|
||||
if parent == local_dir:
|
||||
break
|
||||
if os.path.exists(filename):
|
||||
yield filename
|
||||
found_config_files = True
|
||||
(parent, tail) = os.path.split(parent)
|
||||
|
||||
def local_config_files(self):
|
||||
|
|
@ -99,7 +97,6 @@ class ConfigFileFinder(object):
|
|||
return [
|
||||
filename
|
||||
for filename in self.generate_possible_local_files()
|
||||
if os.path.exists(filename)
|
||||
] + [f for f in self.extra_config_files if exists(f)]
|
||||
|
||||
def local_configs(self):
|
||||
|
|
|
|||
|
|
@ -43,27 +43,15 @@ def test_cli_config():
|
|||
# No arguments, common prefix of abspath('.')
|
||||
([],
|
||||
[os.path.abspath('setup.cfg'),
|
||||
os.path.abspath('tox.ini'),
|
||||
os.path.abspath('.flake8')]),
|
||||
os.path.abspath('tox.ini')]),
|
||||
# Common prefix of "flake8/"
|
||||
(['flake8/options', 'flake8/'],
|
||||
[os.path.abspath('flake8/setup.cfg'),
|
||||
os.path.abspath('flake8/tox.ini'),
|
||||
os.path.abspath('flake8/.flake8'),
|
||||
os.path.abspath('setup.cfg'),
|
||||
os.path.abspath('tox.ini'),
|
||||
os.path.abspath('.flake8')]),
|
||||
[os.path.abspath('setup.cfg'),
|
||||
os.path.abspath('tox.ini')]),
|
||||
# Common prefix of "flake8/options"
|
||||
(['flake8/options', 'flake8/options/sub'],
|
||||
[os.path.abspath('flake8/options/setup.cfg'),
|
||||
os.path.abspath('flake8/options/tox.ini'),
|
||||
os.path.abspath('flake8/options/.flake8'),
|
||||
os.path.abspath('flake8/setup.cfg'),
|
||||
os.path.abspath('flake8/tox.ini'),
|
||||
os.path.abspath('flake8/.flake8'),
|
||||
os.path.abspath('setup.cfg'),
|
||||
os.path.abspath('tox.ini'),
|
||||
os.path.abspath('.flake8')]),
|
||||
[os.path.abspath('setup.cfg'),
|
||||
os.path.abspath('tox.ini')]),
|
||||
])
|
||||
def test_generate_possible_local_files(args, expected):
|
||||
"""Verify generation of all possible config paths."""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue