def do_pylintcmd(load_plugins, rcfile, module, expected, pylint_options):
# import pdb; pdb.set_trace()
if not module:
module = []
candidate_addons_dirs = (
opj('odoo', 'addons'),
'odoo_addons',
'.',
)
for candidate_addons_dir in candidate_addons_dirs:
if os.path.isdir(candidate_addons_dir):
module.extend(
opj(candidate_addons_dir, addon) for addon in
get_installable_addons(candidate_addons_dir)
)
if not module:
raise click.UsageError("Please provide module or package "
"to lint (--module).")
cmd = [
'--load-plugins', load_plugins,
'--rcfile', rcfile,
] + list(pylint_options) + list(module)
log_cmd(['pylint'] + cmd, level=logging.INFO)
lint_res = pylint.lint.Run(cmd[:], exit=False)
sys.stdout.flush()
sys.stderr.flush()
expected = _consolidate_expected(rcfile, expected)
fails, no_fails = _get_failures(lint_res.linter.stats, expected)
if fails or no_fails:
msg = cmd_string(['pylint'] + cmd)
msg += '\n'
msg += _failures_to_str(fails, no_fails)
click.echo('\n')
click.echo(msg)
if fails:
raise click.ClickException("pylint errors detected.")
评论列表
文章目录