mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-01 03:26:52 +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
|
||||
|
||||
UNSET = object()
|
||||
|
||||
|
||||
class Flake8(setuptools.Command):
|
||||
"""Run Flake8 via setuptools/distutils for registered modules."""
|
||||
|
|
@ -21,11 +23,25 @@ class Flake8(setuptools.Command):
|
|||
|
||||
def initialize_options(self):
|
||||
"""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):
|
||||
"""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):
|
||||
"""Collect the files/dirs included in the registered modules."""
|
||||
|
|
@ -72,6 +88,5 @@ class Flake8(setuptools.Command):
|
|||
|
||||
def run(self):
|
||||
"""Run the Flake8 application."""
|
||||
flake8 = app.Application()
|
||||
flake8.run(list(self.distribution_files()))
|
||||
flake8.exit()
|
||||
self.flake8.run_checks(list(self.distribution_files()))
|
||||
self.flake8.exit()
|
||||
|
|
|
|||
|
|
@ -133,6 +133,19 @@ class Option(object):
|
|||
return utils.parse_comma_separated_list(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):
|
||||
"""Convert a Flake8 Option to an optparse Option."""
|
||||
if self._opt is None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue