Title: [252468] trunk/Tools
Revision
252468
Author
[email protected]
Date
2019-11-14 16:16:57 -0800 (Thu, 14 Nov 2019)

Log Message

Python 3: Add support in webkitpy.style
https://bugs.webkit.org/show_bug.cgi?id=203762

Reviewed by Stephanie Lewis.

* Scripts/check-webkit-style: Remove Python 2 version check.
* Scripts/test-webkitpy-python3: Add webkitpy.style.
* Scripts/webkitpy/style/checker.py: Use explicit imports.
* Scripts/webkitpy/style/checker_unittest.py:
(GlobalVariablesTest.test_max_reports_per_category): Use keys() over iterkeys.
* Scripts/webkitpy/style/checkers/contributors.py: Use explicit imports.
* Scripts/webkitpy/style/checkers/test_expectations.py:
(TestExpectationsChecker._should_log_linter_warning): Use compatible iteritems.
* Scripts/webkitpy/style/error_handlers_unittest.py: Use explicit imports.
* Scripts/webkitpy/style/filter.py:
(FilterConfiguration._get_path_specific_lower): Return list instead of iterator.
(FilterConfiguration._filter_from_path): Avoid confusion with filter builtin.
* Scripts/webkitpy/style/filter_unittest.py: Use explicit imports.
* Scripts/webkitpy/style/main.py:
(CheckWebKitStyle._engage_awesome_stderr_hacks): No reason to apply encoding to stderr
in Python 3.
* Scripts/webkitpy/style/main_unittest.py: Use explicit imports.
* Scripts/webkitpy/style/patchreader.py:
(PatchReader.check): Ensure that the provided patch is a string, use items over iteritems.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (252467 => 252468)


--- trunk/Tools/ChangeLog	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/ChangeLog	2019-11-15 00:16:57 UTC (rev 252468)
@@ -1,3 +1,30 @@
+2019-11-14  Jonathan Bedard  <[email protected]>
+
+        Python 3: Add support in webkitpy.style
+        https://bugs.webkit.org/show_bug.cgi?id=203762
+
+        Reviewed by Stephanie Lewis.
+
+        * Scripts/check-webkit-style: Remove Python 2 version check.
+        * Scripts/test-webkitpy-python3: Add webkitpy.style.
+        * Scripts/webkitpy/style/checker.py: Use explicit imports.
+        * Scripts/webkitpy/style/checker_unittest.py:
+        (GlobalVariablesTest.test_max_reports_per_category): Use keys() over iterkeys.
+        * Scripts/webkitpy/style/checkers/contributors.py: Use explicit imports.
+        * Scripts/webkitpy/style/checkers/test_expectations.py:
+        (TestExpectationsChecker._should_log_linter_warning): Use compatible iteritems.
+        * Scripts/webkitpy/style/error_handlers_unittest.py: Use explicit imports.
+        * Scripts/webkitpy/style/filter.py:
+        (FilterConfiguration._get_path_specific_lower): Return list instead of iterator.
+        (FilterConfiguration._filter_from_path): Avoid confusion with filter builtin.
+        * Scripts/webkitpy/style/filter_unittest.py: Use explicit imports.
+        * Scripts/webkitpy/style/main.py:
+        (CheckWebKitStyle._engage_awesome_stderr_hacks): No reason to apply encoding to stderr
+        in Python 3.
+        * Scripts/webkitpy/style/main_unittest.py: Use explicit imports.
+        * Scripts/webkitpy/style/patchreader.py:
+        (PatchReader.check): Ensure that the provided patch is a string, use items over iteritems.
+
 2019-11-14  Megan Gardner  <[email protected]>
 
         Fix build error from r252449

Modified: trunk/Tools/Scripts/check-webkit-style (252467 => 252468)


--- trunk/Tools/Scripts/check-webkit-style	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/Scripts/check-webkit-style	2019-11-15 00:16:57 UTC (rev 252468)
@@ -39,8 +39,6 @@
 
 import sys
 
-import webkitpy.common.version_check
-
 from webkitpy.style.main import CheckWebKitStyle
 
 

Modified: trunk/Tools/Scripts/test-webkitpy-python3 (252467 => 252468)


--- trunk/Tools/Scripts/test-webkitpy-python3	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/Scripts/test-webkitpy-python3	2019-11-15 00:16:57 UTC (rev 252468)
@@ -39,7 +39,7 @@
   'webkitpy.layout_tests.models',
   'webkitpy.port',
   'webkitpy.results',
-  'webkitpy.style.checkers',
+  'webkitpy.style',
   'webkitpy.xcode',
 ]
 SLOW_TESTS = [

Modified: trunk/Tools/Scripts/webkitpy/style/checker.py (252467 => 252468)


--- trunk/Tools/Scripts/webkitpy/style/checker.py	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/Scripts/webkitpy/style/checker.py	2019-11-15 00:16:57 UTC (rev 252468)
@@ -35,35 +35,35 @@
 import os.path
 import re
 
-from checkers.common import categories as CommonCategories
-from checkers.common import CarriageReturnChecker
-from checkers.contributors import ContributorsChecker
-from checkers.changelog import ChangeLogChecker
-from checkers.cpp import CppChecker
-from checkers.cmake import CMakeChecker
-from checkers.featuredefines import FeatureDefinesChecker
-from checkers.js import JSChecker
-from checkers.jsonchecker import JSONChecker
-from checkers.jsonchecker import JSONContributorsChecker
-from checkers.jsonchecker import JSONFeaturesChecker
-from checkers.jsonchecker import JSONCSSPropertiesChecker
-from checkers.jstest import JSTestChecker
-from checkers.messagesin import MessagesInChecker
-from checkers.png import PNGChecker
-from checkers.python import PythonChecker, Python3Checker
-from checkers.sdkvariant import SDKVariantChecker
-from checkers.test_expectations import TestExpectationsChecker
-from checkers.text import TextChecker
-from checkers.watchlist import WatchListChecker
-from checkers.xcodeproj import XcodeProjectFileChecker
-from checkers.xml import XMLChecker
-from error_handlers import DefaultStyleErrorHandler
-from filter import FilterConfiguration
-from optparser import ArgumentParser
-from optparser import DefaultCommandOptionValues
 from webkitpy.common.host import Host
 from webkitpy.common.system.logutils import configure_logging as _configure_logging
 from webkitpy.port.config import apple_additions
+from webkitpy.style.checkers.common import categories as CommonCategories
+from webkitpy.style.checkers.common import CarriageReturnChecker
+from webkitpy.style.checkers.contributors import ContributorsChecker
+from webkitpy.style.checkers.changelog import ChangeLogChecker
+from webkitpy.style.checkers.cpp import CppChecker
+from webkitpy.style.checkers.cmake import CMakeChecker
+from webkitpy.style.checkers.featuredefines import FeatureDefinesChecker
+from webkitpy.style.checkers.js import JSChecker
+from webkitpy.style.checkers.jsonchecker import JSONChecker
+from webkitpy.style.checkers.jsonchecker import JSONContributorsChecker
+from webkitpy.style.checkers.jsonchecker import JSONFeaturesChecker
+from webkitpy.style.checkers.jsonchecker import JSONCSSPropertiesChecker
+from webkitpy.style.checkers.jstest import JSTestChecker
+from webkitpy.style.checkers.messagesin import MessagesInChecker
+from webkitpy.style.checkers.png import PNGChecker
+from webkitpy.style.checkers.python import PythonChecker, Python3Checker
+from webkitpy.style.checkers.sdkvariant import SDKVariantChecker
+from webkitpy.style.checkers.test_expectations import TestExpectationsChecker
+from webkitpy.style.checkers.text import TextChecker
+from webkitpy.style.checkers.watchlist import WatchListChecker
+from webkitpy.style.checkers.xcodeproj import XcodeProjectFileChecker
+from webkitpy.style.checkers.xml import XMLChecker
+from webkitpy.style.error_handlers import DefaultStyleErrorHandler
+from webkitpy.style.filter import FilterConfiguration
+from webkitpy.style.optparser import ArgumentParser
+from webkitpy.style.optparser import DefaultCommandOptionValues
 
 
 _log = logging.getLogger(__name__)

Modified: trunk/Tools/Scripts/webkitpy/style/checker_unittest.py (252467 => 252468)


--- trunk/Tools/Scripts/webkitpy/style/checker_unittest.py	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/Scripts/webkitpy/style/checker_unittest.py	2019-11-15 00:16:57 UTC (rev 252468)
@@ -37,33 +37,32 @@
 import os
 import unittest
 
-import checker as style
-from webkitpy.common.system.logtesting import LogTesting, TestLogStream
-from checker import _BASE_FILTER_RULES
-from checker import _MAX_REPORTS_PER_CATEGORY
-from checker import _PATH_RULES_SPECIFIER as PATH_RULES_SPECIFIER
-from checker import _all_categories
-from checker import check_webkit_style_configuration
-from checker import check_webkit_style_parser
-from checker import configure_logging
-from checker import CheckerDispatcher
-from checker import ProcessorBase
-from checker import StyleProcessor
-from checker import StyleProcessorConfiguration
-from checkers.changelog import ChangeLogChecker
-from checkers.cpp import CppChecker
-from checkers.js import JSChecker
-from checkers.jsonchecker import JSONChecker
-from checkers.python import PythonChecker
-from checkers.text import TextChecker
-from checkers.xml import XMLChecker
-from error_handlers import DefaultStyleErrorHandler
-from filter import validate_filter_rules
-from filter import FilterConfiguration
-from optparser import ArgumentParser
-from optparser import CommandOptionValues
-from webkitpy.common.system.logtesting import LoggingTestCase
+from webkitpy.common.system.logtesting import LogTesting, TestLogStream, LoggingTestCase
+from webkitpy.style import checker as style
+from webkitpy.style.checker import _BASE_FILTER_RULES
+from webkitpy.style.checker import _MAX_REPORTS_PER_CATEGORY
+from webkitpy.style.checker import _PATH_RULES_SPECIFIER as PATH_RULES_SPECIFIER
+from webkitpy.style.checker import _all_categories
+from webkitpy.style.checker import check_webkit_style_configuration
+from webkitpy.style.checker import check_webkit_style_parser
+from webkitpy.style.checker import configure_logging
+from webkitpy.style.checker import CheckerDispatcher
+from webkitpy.style.checker import ProcessorBase
+from webkitpy.style.checker import StyleProcessor
+from webkitpy.style.checker import StyleProcessorConfiguration
+from webkitpy.style.checkers.changelog import ChangeLogChecker
+from webkitpy.style.checkers.cpp import CppChecker
+from webkitpy.style.checkers.js import JSChecker
+from webkitpy.style.checkers.jsonchecker import JSONChecker
+from webkitpy.style.checkers.python import PythonChecker
+from webkitpy.style.checkers.text import TextChecker
+from webkitpy.style.checkers.xml import XMLChecker
+from webkitpy.style.error_handlers import DefaultStyleErrorHandler
+from webkitpy.style.optparser import CommandOptionValues
 from webkitpy.style.filereader import TextFileReader
+from webkitpy.style.filter import validate_filter_rules
+from webkitpy.style.filter import FilterConfiguration
+from webkitpy.style.optparser import ArgumentParser
 
 
 class ConfigureLoggingTestBase(unittest.TestCase):
@@ -262,7 +261,7 @@
     def test_max_reports_per_category(self):
         """Check that _MAX_REPORTS_PER_CATEGORY is valid."""
         all_categories = self._all_categories()
-        for category in _MAX_REPORTS_PER_CATEGORY.iterkeys():
+        for category in _MAX_REPORTS_PER_CATEGORY.keys():
             self.assertIn(category, all_categories,
                           'Key "%s" is not a category' % category)
 

Modified: trunk/Tools/Scripts/webkitpy/style/checkers/contributors.py (252467 => 252468)


--- trunk/Tools/Scripts/webkitpy/style/checkers/contributors.py	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/Scripts/webkitpy/style/checkers/contributors.py	2019-11-15 00:16:57 UTC (rev 252468)
@@ -25,7 +25,6 @@
 import difflib
 import json
 import re
-from sets import Set
 from webkitpy.style.checkers.jsonchecker import JSONChecker
 from webkitpy.common.config.committers import CommitterList
 from webkitpy.common.system.filesystem import FileSystem

Modified: trunk/Tools/Scripts/webkitpy/style/checkers/test_expectations.py (252467 => 252468)


--- trunk/Tools/Scripts/webkitpy/style/checkers/test_expectations.py	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/Scripts/webkitpy/style/checkers/test_expectations.py	2019-11-15 00:16:57 UTC (rev 252468)
@@ -35,6 +35,7 @@
 import sys
 
 from webkitpy.common.host import Host
+from webkitpy.common.iteration_compatibility import iteritems
 from webkitpy.layout_tests.models import test_expectations
 from webkitpy.style.checkers.common import TabChecker
 from webkitpy.style.error_handlers import DefaultStyleErrorHandler
@@ -106,7 +107,7 @@
         if abs_filename in files and files[abs_filename] and warning.line_number in files[abs_filename]:
             return True
 
-        for file, lines in warning.related_files.iteritems():
+        for file, lines in iteritems(warning.related_files):
             abs_filename = host.filesystem.join(cwd, file)
             if abs_filename in files:
                 # Case 2, a file associated with the warning is in our patch

Modified: trunk/Tools/Scripts/webkitpy/style/error_handlers_unittest.py (252467 => 252468)


--- trunk/Tools/Scripts/webkitpy/style/error_handlers_unittest.py	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/Scripts/webkitpy/style/error_handlers_unittest.py	2019-11-15 00:16:57 UTC (rev 252468)
@@ -25,10 +25,10 @@
 
 import unittest
 
-from checker import StyleProcessorConfiguration
-from error_handlers import DefaultStyleErrorHandler
-from filter import FilterConfiguration
 from webkitpy.common.system.logtesting import LoggingTestCase
+from webkitpy.style.checker import StyleProcessorConfiguration
+from webkitpy.style.error_handlers import DefaultStyleErrorHandler
+from webkitpy.style.filter import FilterConfiguration
 
 
 class DefaultStyleErrorHandlerTest(LoggingTestCase):

Modified: trunk/Tools/Scripts/webkitpy/style/filter.py (252467 => 252468)


--- trunk/Tools/Scripts/webkitpy/style/filter.py	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/Scripts/webkitpy/style/filter.py	2019-11-15 00:16:57 UTC (rev 252468)
@@ -197,7 +197,7 @@
         if self._path_specific_lower is None:
             self._path_specific_lower = []
             for (sub_paths, path_rules) in self._path_specific:
-                sub_paths = map(str.lower, sub_paths)
+                sub_paths = list(map(str.lower, sub_paths))
                 self._path_specific_lower.append((sub_paths, path_rules))
         return self._path_specific_lower
 
@@ -238,8 +238,7 @@
         """Return the CategoryFilter associated to a path."""
         if path not in self._path_to_filter:
             path_rules = self._path_rules_from_path(path)
-            filter = self._filter_from_path_rules(path_rules)
-            self._path_to_filter[path] = filter
+            self._path_to_filter[path] = self._filter_from_path_rules(path_rules)
 
         return self._path_to_filter[path]
 

Modified: trunk/Tools/Scripts/webkitpy/style/filter_unittest.py (252467 => 252468)


--- trunk/Tools/Scripts/webkitpy/style/filter_unittest.py	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/Scripts/webkitpy/style/filter_unittest.py	2019-11-15 00:16:57 UTC (rev 252468)
@@ -24,9 +24,9 @@
 
 import unittest
 
-from filter import _CategoryFilter as CategoryFilter
-from filter import validate_filter_rules
-from filter import FilterConfiguration
+from webkitpy.style.filter import _CategoryFilter as CategoryFilter
+from webkitpy.style.filter import validate_filter_rules
+from webkitpy.style.filter import FilterConfiguration
 
 # On Testing __eq__() and __ne__():
 #

Modified: trunk/Tools/Scripts/webkitpy/style/main.py (252467 => 252468)


--- trunk/Tools/Scripts/webkitpy/style/main.py	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/Scripts/webkitpy/style/main.py	2019-11-15 00:16:57 UTC (rev 252468)
@@ -102,6 +102,10 @@
 
 class CheckWebKitStyle(object):
     def _engage_awesome_stderr_hacks(self):
+        # Python 3 strings are unicode, we don't need to encode stderr
+        if sys.version_info > (3, 0):
+            return sys.stderr
+
         # Change stderr to write with replacement characters so we don't die
         # if we try to print something containing non-ASCII characters.
         stderr = codecs.StreamReaderWriter(sys.stderr,

Modified: trunk/Tools/Scripts/webkitpy/style/main_unittest.py (252467 => 252468)


--- trunk/Tools/Scripts/webkitpy/style/main_unittest.py	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/Scripts/webkitpy/style/main_unittest.py	2019-11-15 00:16:57 UTC (rev 252468)
@@ -26,7 +26,6 @@
 
 import webkitpy.style.checker as checker
 
-from main import change_directory
 from webkitpy.common.host import Host
 from webkitpy.common.system.filesystem_mock import MockFileSystem
 from webkitpy.common.system.outputcapture import OutputCapture, OutputCaptureScope
@@ -33,6 +32,7 @@
 from webkitpy.common.system.logtesting import LogTesting
 from webkitpy.style.checker import StyleProcessor
 from webkitpy.style.filereader import TextFileReader
+from webkitpy.style.main import change_directory
 
 
 class ChangeDirectoryTest(unittest.TestCase):

Modified: trunk/Tools/Scripts/webkitpy/style/patchreader.py (252467 => 252468)


--- trunk/Tools/Scripts/webkitpy/style/patchreader.py	2019-11-14 22:45:15 UTC (rev 252467)
+++ trunk/Tools/Scripts/webkitpy/style/patchreader.py	2019-11-15 00:16:57 UTC (rev 252468)
@@ -35,6 +35,7 @@
 from webkitpy.common.system.executive import Executive
 from webkitpy.common.system.filesystem import FileSystem
 from webkitpy.common.checkout.scm.detection import SCMDetector
+from webkitpy.common.unicode_compatibility import decode_for
 
 
 _log = logging.getLogger(__name__)
@@ -55,12 +56,13 @@
     def check(self, patch_string, fs=None):
         """Check style in the given patch."""
         fs = fs or FileSystem()
+        patch_string = decode_for(patch_string, str)
         patch_files = DiffParser(patch_string.splitlines()).files
 
         # If the user uses git, checking subversion config file only once is enough.
         call_only_once = True
 
-        for path, diff_file in patch_files.iteritems():
+        for path, diff_file in patch_files.items():
             line_numbers = diff_file.added_or_modified_line_numbers()
             _log.debug('Found %s new or modified lines in: %s' % (len(line_numbers), path))
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to