"""Pylama integration."""from .environment import envfrom .utils import silence_stderrimport os.pathfrom pylama.lint.extensions import LINTERStry:from pylama.lint.pylama_pylint import LinterLINTERS['pylint'] = Linter()except Exception: # noqapassdef code_check():"""Run pylama and check current file.:return bool:"""with silence_stderr():from pylama.core import runfrom pylama.config import parse_optionsif not env.curbuf.name:return env.stop()linters = env.var('g:pymode_lint_checkers')env.debug(linters)# Fixed in v0.9.3: these two parameters may be passed as strings.# DEPRECATE: v:0.10.0: need to be set as lists.if isinstance(env.var('g:pymode_lint_ignore'), str):raise ValueError ('g:pymode_lint_ignore should have a list type')else:ignore = env.var('g:pymode_lint_ignore')if isinstance(env.var('g:pymode_lint_select'), str):raise ValueError ('g:pymode_lint_select should have a list type')else:select = env.var('g:pymode_lint_select')options = parse_options(linters=linters, force=1,ignore=ignore,select=select,)env.debug(options)for linter in linters:opts = env.var('g:pymode_lint_options_%s' % linter, silence=True)if opts:options.linters_params[linter] = options.linters_params.get(linter, {})options.linters_params[linter].update(opts)path = os.path.relpath(env.curbuf.name, env.curdir)env.debug("Start code check: ", path)if getattr(options, 'skip', None) and any(p.match(path) for p in options.skip): # noqaenv.message('Skip code checking.')env.debug("Skipped")return env.stop()if env.options.get('debug'):from pylama.core import LOGGER, loggingLOGGER.setLevel(logging.DEBUG)errors = run(path, code='\n'.join(env.curbuf) + '\n', options=options)env.debug("Find errors: ", len(errors))sort_rules = env.var('g:pymode_lint_sort')def __sort(e):try:return sort_rules.index(e.get('type'))except ValueError:return 999if sort_rules:env.debug("Find sorting: ", sort_rules)errors = sorted(errors, key=__sort)for e in errors:e._info['bufnr'] = env.curbuf.numberif e._info['col'] is None:e._info['col'] = 1env.run('g:PymodeLocList.current().extend', [e._info for e in errors])# pylama:ignore=W0212,E1103
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。