77import logging
88from argparse import ArgumentParser
99
10- from . import version
10+ from . import __version__
1111from .libs .inirama import Namespace
1212from .lint .extensions import LINTERS
1313
@@ -72,7 +72,7 @@ def parse_linters(linters):
7272 "--verbose" , "-v" , action = 'store_true' , help = "Verbose mode." )
7373
7474PARSER .add_argument ('--version' , action = 'version' ,
75- version = '%(prog)s ' + version )
75+ version = '%(prog)s ' + __version__ )
7676
7777PARSER .add_argument (
7878 "--format" , "-f" , default = _Default ('pep8' ), choices = ['pep8' , 'pylint' ],
@@ -116,7 +116,7 @@ def parse_linters(linters):
116116ACTIONS = dict ((a .dest , a ) for a in PARSER ._actions )
117117
118118
119- def parse_options (args = None , ** overrides ): # noqa
119+ def parse_options (args = None , config = True , ** overrides ): # noqa
120120 """ Parse options from command line and configuration files.
121121
122122 :return argparse.Namespace:
@@ -127,44 +127,43 @@ def parse_options(args=None, **overrides): # noqa
127127
128128 # Parse args from command string
129129 options = PARSER .parse_args (args )
130-
131- # Parse options from ini file
132- cfg = get_config (str (options .options ))
133-
134- # Compile options from ini
135- for k , v in cfg .default .items ():
136- LOGGER .info ('Find option %s (%s)' , k , v )
137- passed_value = getattr (options , k , _Default ())
138- if isinstance (passed_value , _Default ):
139- setattr (options , k , _Default (v ))
130+ options .file_params = dict ()
131+ options .linter_params = dict ()
140132
141133 # Override options
142134 for k , v in overrides .items ():
143135 passed_value = getattr (options , k , _Default ())
144136 if isinstance (passed_value , _Default ):
145137 setattr (options , k , _Default (v ))
146138
139+ # Compile options from ini
140+ if config :
141+ cfg = get_config (str (options .options ))
142+ for k , v in cfg .default .items ():
143+ LOGGER .info ('Find option %s (%s)' , k , v )
144+ passed_value = getattr (options , k , _Default ())
145+ if isinstance (passed_value , _Default ):
146+ setattr (options , k , _Default (v ))
147+
148+ # Parse file related options
149+ for k , s in cfg .sections .items ():
150+ if k == cfg .default_section :
151+ continue
152+ if k in LINTERS :
153+ options .linter_params [k ] = dict (s )
154+ continue
155+ mask = re (fnmatch .translate (k ))
156+ options .file_params [mask ] = dict (s )
157+ options .file_params [mask ]['lint' ] = int (
158+ options .file_params [mask ].get ('lint' , 1 )
159+ )
160+
147161 # Postprocess options
148162 opts = dict (options .__dict__ .items ())
149163 for name , value in opts .items ():
150164 if isinstance (value , _Default ):
151165 setattr (options , name , process_value (name , value .value ))
152166
153- # Parse file related options
154- options .file_params = dict ()
155- options .linter_params = dict ()
156- for k , s in cfg .sections .items ():
157- if k == cfg .default_section :
158- continue
159- if k in LINTERS :
160- options .linter_params [k ] = dict (s )
161- continue
162- mask = re (fnmatch .translate (k ))
163- options .file_params [mask ] = dict (s )
164- options .file_params [mask ]['lint' ] = int (
165- options .file_params [mask ].get ('lint' , 1 )
166- )
167-
168167 return options
169168
170169
0 commit comments