Start working on our option handling story

This commit is contained in:
Ian Cordasco 2015-12-30 17:26:28 -06:00
parent 37b92cd4b4
commit f539464368

32
flake8/option_parser.py Normal file
View file

@ -0,0 +1,32 @@
import optparse
class Option(object):
def __init__(self, short_option_name=None, long_option_name=None,
# Options below here are taken from the optparse.Option class
action=None, default=None, type=None, dest=None,
nargs=None, const=None, choices=None, callback=None,
callback_args=None, callback_kwargs=None, help=None,
metavar=None,
# Options below here are specific to Flake8
parse_from_config=False
):
self.short_option_name = short_option_name
self.long_option_name = long_option_name
self.option_args = filter(None, (short_option_name, long_option_name))
self.option_kwargs = {
'action': action,
'default': default,
'type': type,
'dest': dest,
'callback': callback,
'callback_args': callback_args,
'callback_kwargs': callback_kwargs,
'help': help,
'metavar': metavar,
}
for key, value in self.option_kwargs.items():
setattr(self, key, value)
self.parse_from_config = parse_from_config
self._option = optparse.Option(*self.option_args,
**self.option_kwargs)