Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Unified Diff: sky/tools/webkitpy/style/checkers/python.py

Issue 675343003: Prune a bunch of webkitpy. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sky/tools/webkitpy/style/checkers/python.py
diff --git a/sky/tools/webkitpy/style/checkers/python.py b/sky/tools/webkitpy/style/checkers/python.py
deleted file mode 100644
index f09638ca6a2ea76b15a3927d615bd053d64754e2..0000000000000000000000000000000000000000
--- a/sky/tools/webkitpy/style/checkers/python.py
+++ /dev/null
@@ -1,122 +0,0 @@
-# Copyright (C) 2010 Chris Jerdonek (cjerdonek@webkit.org)
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-"""Supports checking WebKit style in Python files."""
-
-import os
-import re
-import sys
-
-from StringIO import StringIO
-
-from webkitpy.common.system.filesystem import FileSystem
-from webkitpy.common.system.executive import Executive
-from webkitpy.common.webkit_finder import WebKitFinder
-from webkitpy.thirdparty import pep8
-
-
-class PythonChecker(object):
- """Processes text lines for checking style."""
- def __init__(self, file_path, handle_style_error):
- self._file_path = file_path
- self._handle_style_error = handle_style_error
-
- def check(self, lines):
- self._check_pep8(lines)
- self._check_pylint(lines)
-
- def _check_pep8(self, lines):
- # Initialize pep8.options, which is necessary for
- # Checker.check_all() to execute.
- pep8.process_options(arglist=[self._file_path])
-
- pep8_checker = pep8.Checker(self._file_path)
-
- def _pep8_handle_error(line_number, offset, text, check):
- # FIXME: Incorporate the character offset into the error output.
- # This will require updating the error handler __call__
- # signature to include an optional "offset" parameter.
- pep8_code = text[:4]
- pep8_message = text[5:]
-
- category = "pep8/" + pep8_code
-
- self._handle_style_error(line_number, category, 5, pep8_message)
-
- pep8_checker.report_error = _pep8_handle_error
- pep8_errors = pep8_checker.check_all()
-
- def _check_pylint(self, lines):
- output = self._run_pylint(self._file_path)
- errors = self._parse_pylint_output(output)
- for line_number, category, message in errors:
- self._handle_style_error(line_number, category, 5, message)
-
- def _run_pylint(self, path):
- wkf = WebKitFinder(FileSystem())
- executive = Executive()
- env = os.environ.copy()
- env['PYTHONPATH'] = ('%s%s%s%s%s' % (wkf.path_from_webkit_base('Tools', 'Scripts'),
- os.pathsep,
- wkf.path_from_webkit_base('Source', 'build', 'scripts'),
- os.pathsep,
- wkf.path_from_webkit_base('Tools', 'Scripts', 'webkitpy', 'thirdparty')))
- return executive.run_command([sys.executable, wkf.path_from_depot_tools_base('pylint.py'),
- '--output-format=parseable',
- '--errors-only',
- '--rcfile=' + wkf.path_from_webkit_base('Tools', 'Scripts', 'webkitpy', 'pylintrc'),
- path],
- env=env,
- error_handler=executive.ignore_error)
-
- def _parse_pylint_output(self, output):
- # We filter out these messages because they are bugs in pylint that produce false positives.
- # FIXME: Does it make sense to combine these rules with the rules in style/checker.py somehow?
- FALSE_POSITIVES = [
- # possibly http://www.logilab.org/ticket/98613 ?
- "Instance of 'Popen' has no 'poll' member",
- "Instance of 'Popen' has no 'returncode' member",
- "Instance of 'Popen' has no 'stdin' member",
- "Instance of 'Popen' has no 'stdout' member",
- "Instance of 'Popen' has no 'stderr' member",
- "Instance of 'Popen' has no 'wait' member",
- ]
-
- lint_regex = re.compile('([^:]+):([^:]+): \[([^]]+)\] (.*)')
- errors = []
- for line in output.splitlines():
- if any(msg in line for msg in FALSE_POSITIVES):
- continue
-
- match_obj = lint_regex.match(line)
- if not match_obj:
- continue
-
- line_number = int(match_obj.group(2))
- category_and_method = match_obj.group(3).split(', ')
- category = 'pylint/' + (category_and_method[0])
- if len(category_and_method) > 1:
- message = '[%s] %s' % (category_and_method[1], match_obj.group(4))
- else:
- message = match_obj.group(4)
- errors.append((line_number, category, message))
- return errors
« no previous file with comments | « sky/tools/webkitpy/style/checkers/png_unittest.py ('k') | sky/tools/webkitpy/style/checkers/python_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698