7
7
import logging
8
8
from argparse import ArgumentParser
9
9
10
- from . import version
10
+ from . import __version__
11
11
from .libs .inirama import Namespace
12
12
from .lint .extensions import LINTERS
13
13
@@ -72,7 +72,7 @@ def parse_linters(linters):
72
72
"--verbose" , "-v" , action = 'store_true' , help = "Verbose mode." )
73
73
74
74
PARSER .add_argument ('--version' , action = 'version' ,
75
- version = '%(prog)s ' + version )
75
+ version = '%(prog)s ' + __version__ )
76
76
77
77
PARSER .add_argument (
78
78
"--format" , "-f" , default = _Default ('pep8' ), choices = ['pep8' , 'pylint' ],
@@ -116,7 +116,7 @@ def parse_linters(linters):
116
116
ACTIONS = dict ((a .dest , a ) for a in PARSER ._actions )
117
117
118
118
119
- def parse_options (args = None , ** overrides ): # noqa
119
+ def parse_options (args = None , config = True , ** overrides ): # noqa
120
120
""" Parse options from command line and configuration files.
121
121
122
122
:return argparse.Namespace:
@@ -127,44 +127,43 @@ def parse_options(args=None, **overrides): # noqa
127
127
128
128
# Parse args from command string
129
129
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 ()
140
132
141
133
# Override options
142
134
for k , v in overrides .items ():
143
135
passed_value = getattr (options , k , _Default ())
144
136
if isinstance (passed_value , _Default ):
145
137
setattr (options , k , _Default (v ))
146
138
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
+
147
161
# Postprocess options
148
162
opts = dict (options .__dict__ .items ())
149
163
for name , value in opts .items ():
150
164
if isinstance (value , _Default ):
151
165
setattr (options , name , process_value (name , value .value ))
152
166
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
-
168
167
return options
169
168
170
169
0 commit comments