mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-14 16:34:46 +00:00
Merge branch 'bug/163' into 'master'
Update setuptools integration for setup.cfg *Description of changes* Allow setuptools to parse config options from setup.cfg and pass them along via the attributes on our Flake8 command. *Related to:* #163 See merge request !67
This commit is contained in:
commit
2e5100d44c
2 changed files with 33 additions and 5 deletions
|
|
@ -5,6 +5,8 @@ import setuptools
|
||||||
|
|
||||||
from flake8.main import application as app
|
from flake8.main import application as app
|
||||||
|
|
||||||
|
UNSET = object()
|
||||||
|
|
||||||
|
|
||||||
class Flake8(setuptools.Command):
|
class Flake8(setuptools.Command):
|
||||||
"""Run Flake8 via setuptools/distutils for registered modules."""
|
"""Run Flake8 via setuptools/distutils for registered modules."""
|
||||||
|
|
@ -21,11 +23,25 @@ class Flake8(setuptools.Command):
|
||||||
|
|
||||||
def initialize_options(self):
|
def initialize_options(self):
|
||||||
"""Override this method to initialize our application."""
|
"""Override this method to initialize our application."""
|
||||||
pass
|
self.flake8 = app.Application()
|
||||||
|
self.flake8.initialize([])
|
||||||
|
options = self.flake8.option_manager.options
|
||||||
|
for option in options:
|
||||||
|
if option.parse_from_config:
|
||||||
|
setattr(self, option.config_name, UNSET)
|
||||||
|
|
||||||
def finalize_options(self):
|
def finalize_options(self):
|
||||||
"""Override this to parse the parameters."""
|
"""Override this to parse the parameters."""
|
||||||
pass
|
options = self.flake8.option_manager.options
|
||||||
|
for option in options:
|
||||||
|
if option.parse_from_config:
|
||||||
|
name = option.config_name
|
||||||
|
value = getattr(self, name, UNSET)
|
||||||
|
if value is UNSET:
|
||||||
|
continue
|
||||||
|
setattr(self.flake8.options,
|
||||||
|
name,
|
||||||
|
option.normalize_from_setuptools(value))
|
||||||
|
|
||||||
def package_files(self):
|
def package_files(self):
|
||||||
"""Collect the files/dirs included in the registered modules."""
|
"""Collect the files/dirs included in the registered modules."""
|
||||||
|
|
@ -72,6 +88,5 @@ class Flake8(setuptools.Command):
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
"""Run the Flake8 application."""
|
"""Run the Flake8 application."""
|
||||||
flake8 = app.Application()
|
self.flake8.run_checks(list(self.distribution_files()))
|
||||||
flake8.run(list(self.distribution_files()))
|
self.flake8.exit()
|
||||||
flake8.exit()
|
|
||||||
|
|
|
||||||
|
|
@ -133,6 +133,19 @@ class Option(object):
|
||||||
return utils.parse_comma_separated_list(value)
|
return utils.parse_comma_separated_list(value)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
def normalize_from_setuptools(self, value):
|
||||||
|
"""Normalize the value received from setuptools."""
|
||||||
|
value = self.normalize(value)
|
||||||
|
if self.type == 'int' or self.action == 'count':
|
||||||
|
return int(value)
|
||||||
|
if self.action in ('store_true', 'store_false'):
|
||||||
|
value = str(value).upper()
|
||||||
|
if value in ('1', 'T', 'TRUE', 'ON'):
|
||||||
|
return True
|
||||||
|
if value in ('0', 'F', 'FALSE', 'OFF'):
|
||||||
|
return False
|
||||||
|
return value
|
||||||
|
|
||||||
def to_optparse(self):
|
def to_optparse(self):
|
||||||
"""Convert a Flake8 Option to an optparse Option."""
|
"""Convert a Flake8 Option to an optparse Option."""
|
||||||
if self._opt is None:
|
if self._opt is None:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue