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

Side by Side Diff: third_party/WebKit/Tools/Scripts/webkitpy/style/checker.py

Issue 1839193004: Run auto-formatter (autopep8) on webkitpy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 8 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 unified diff | Download patch
OLDNEW
1 # Copyright (C) 2009 Google Inc. All rights reserved. 1 # Copyright (C) 2009 Google Inc. All rights reserved.
2 # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com) 2 # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com)
3 # Copyright (C) 2010 ProFUSION embedded systems 3 # Copyright (C) 2010 ProFUSION embedded systems
4 # 4 #
5 # Redistribution and use in source and binary forms, with or without 5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions are 6 # modification, are permitted provided that the following conditions are
7 # met: 7 # met:
8 # 8 #
9 # * Redistributions of source code must retain the above copyright 9 # * Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer. 10 # notice, this list of conditions and the following disclaimer.
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 # PEP8 79 character limit, we ignore the 79-character-limit category 100 # PEP8 79 character limit, we ignore the 79-character-limit category
101 # pep8/E501 for now. 101 # pep8/E501 for now.
102 # 102 #
103 # FIXME: Consider bringing WebKit's Python code base into conformance 103 # FIXME: Consider bringing WebKit's Python code base into conformance
104 # with the 79 character limit, or some higher limit that is 104 # with the 79 character limit, or some higher limit that is
105 # agreeable to the WebKit project. 105 # agreeable to the WebKit project.
106 '-pep8/E501', 106 '-pep8/E501',
107 107
108 # FIXME: Move the pylint rules from the pylintrc to here. This will 108 # FIXME: Move the pylint rules from the pylintrc to here. This will
109 # also require us to re-work lint-webkitpy to produce the equivalent output. 109 # also require us to re-work lint-webkitpy to produce the equivalent output.
110 ] 110 ]
111 111
112 112
113 # The path-specific filter rules. 113 # The path-specific filter rules.
114 # 114 #
115 # This list is order sensitive. Only the first path substring match 115 # This list is order sensitive. Only the first path substring match
116 # is used. See the FilterConfiguration documentation in filter.py 116 # is used. See the FilterConfiguration documentation in filter.py
117 # for more information on this list. 117 # for more information on this list.
118 # 118 #
119 # Each string appearing in this nested list should have at least 119 # Each string appearing in this nested list should have at least
120 # one associated unit test assertion. These assertions are located, 120 # one associated unit test assertion. These assertions are located,
121 # for example, in the test_path_rules_specifier() unit test method of 121 # for example, in the test_path_rules_specifier() unit test method of
122 # checker_unittest.py. 122 # checker_unittest.py.
123 _PATH_RULES_SPECIFIER = [ 123 _PATH_RULES_SPECIFIER = [
124 # Files in these directories are consumers of the WebKit 124 # Files in these directories are consumers of the WebKit
125 # API and therefore do not follow the same header including 125 # API and therefore do not follow the same header including
126 # discipline as WebCore. 126 # discipline as WebCore.
127 127
128 ([# There is no clean way to avoid "yy_*" names used by flex. 128 ([ # There is no clean way to avoid "yy_*" names used by flex.
129 "Source/core/css/CSSParser-in.cpp"], 129 "Source/core/css/CSSParser-in.cpp"],
130 ["-readability/naming"]), 130 ["-readability/naming"]),
131 131
132 # For third-party Python code, keep only the following checks-- 132 # For third-party Python code, keep only the following checks--
133 # 133 #
134 # No tabs: to avoid having to set the SVN allow-tabs property. 134 # No tabs: to avoid having to set the SVN allow-tabs property.
135 # No trailing white space: since this is easy to correct. 135 # No trailing white space: since this is easy to correct.
136 # No carriage-return line endings: since this is easy to correct. 136 # No carriage-return line endings: since this is easy to correct.
137 # 137 #
138 (["webkitpy/thirdparty/"], 138 (["webkitpy/thirdparty/"],
139 ["-", 139 ["-",
140 "+pep8/W191", # Tabs 140 "+pep8/W191", # Tabs
141 "+pep8/W291", # Trailing white space 141 "+pep8/W291", # Trailing white space
142 "+whitespace/carriage_return"]), 142 "+whitespace/carriage_return"]),
143 143
144 ([# Jinja templates: files have .cpp or .h extensions, but contain 144 ([ # Jinja templates: files have .cpp or .h extensions, but contain
145 # template code, which can't be handled, so disable tests. 145 # template code, which can't be handled, so disable tests.
146 "Source/bindings/templates", 146 "Source/bindings/templates",
147 "Source/build/scripts/templates"], 147 "Source/build/scripts/templates"],
148 ["-"]), 148 ["-"]),
149 149
150 ([# IDL compiler reference output 150 ([ # IDL compiler reference output
151 # Conforming to style significantly increases the complexity of the code 151 # Conforming to style significantly increases the complexity of the code
152 # generator and decreases *its* readability, which is of more concern 152 # generator and decreases *its* readability, which is of more concern
153 # than style of the machine-generated code itself. 153 # than style of the machine-generated code itself.
154 "Source/bindings/tests/results"], 154 "Source/bindings/tests/results"],
155 ["-"]), 155 ["-"]),
156 ] 156 ]
157 157
158 158
159 _CPP_FILE_EXTENSIONS = [ 159 _CPP_FILE_EXTENSIONS = [
160 'c', 160 'c',
161 'cpp', 161 'cpp',
162 'h', 162 'h',
163 ] 163 ]
164 164
165 _JSON_FILE_EXTENSION = 'json' 165 _JSON_FILE_EXTENSION = 'json'
166 166
167 _PYTHON_FILE_EXTENSION = 'py' 167 _PYTHON_FILE_EXTENSION = 'py'
168 168
169 _TEXT_FILE_EXTENSIONS = [ 169 _TEXT_FILE_EXTENSIONS = [
170 'cc', 170 'cc',
171 'cgi', 171 'cgi',
172 'css', 172 'css',
173 'gyp', 173 'gyp',
174 'gypi', 174 'gypi',
175 'html', 175 'html',
176 'idl', 176 'idl',
177 'in', 177 'in',
178 'js', 178 'js',
179 'mm', 179 'mm',
180 'php', 180 'php',
181 'pl', 181 'pl',
182 'pm', 182 'pm',
183 'rb', 183 'rb',
184 'sh', 184 'sh',
185 'txt', 185 'txt',
186 'xhtml', 186 'xhtml',
187 'y', 187 'y',
188 ] 188 ]
189 189
190 _XCODEPROJ_FILE_EXTENSION = 'pbxproj' 190 _XCODEPROJ_FILE_EXTENSION = 'pbxproj'
191 191
192 _XML_FILE_EXTENSIONS = [ 192 _XML_FILE_EXTENSIONS = [
193 'vcproj', 193 'vcproj',
194 'vsprops', 194 'vsprops',
195 ] 195 ]
196 196
197 _PNG_FILE_EXTENSION = 'png' 197 _PNG_FILE_EXTENSION = 'png'
198 198
199 # Files to skip that are less obvious. 199 # Files to skip that are less obvious.
200 # 200 #
201 # Some files should be skipped when checking style. For example, 201 # Some files should be skipped when checking style. For example,
202 # WebKit maintains some files in Mozilla style on purpose to ease 202 # WebKit maintains some files in Mozilla style on purpose to ease
203 # future merges. 203 # future merges.
204 _SKIPPED_FILES_WITH_WARNING = [ 204 _SKIPPED_FILES_WITH_WARNING = [
205 "Source/WebKit/gtk/tests/", 205 "Source/WebKit/gtk/tests/",
206 # All WebKit*.h files in Source/WebKit2/UIProcess/API/gtk, 206 # All WebKit*.h files in Source/WebKit2/UIProcess/API/gtk,
207 # except those ending in ...Private.h are GTK+ API headers, 207 # except those ending in ...Private.h are GTK+ API headers,
208 # which differ greatly from WebKit coding style. 208 # which differ greatly from WebKit coding style.
209 re.compile(r'Source/WebKit2/UIProcess/API/gtk/WebKit(?!.*Private\.h).*\.h$') , 209 re.compile(r'Source/WebKit2/UIProcess/API/gtk/WebKit(?!.*Private\.h).*\.h$') ,
210 re.compile(r'Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKit(?!.*Pri vate\.h).*\.h$'), 210 re.compile(r'Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKit(?!.*Pri vate\.h).*\.h$'),
211 'Source/WebKit2/UIProcess/API/gtk/webkit2.h', 211 'Source/WebKit2/UIProcess/API/gtk/webkit2.h',
212 'Source/WebKit2/WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h'] 212 'Source/WebKit2/WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h']
213 213
214 # Files to skip that are more common or obvious. 214 # Files to skip that are more common or obvious.
215 # 215 #
216 # This list should be in addition to files with FileType.NONE. Files 216 # This list should be in addition to files with FileType.NONE. Files
217 # with FileType.NONE are automatically skipped without warning. 217 # with FileType.NONE are automatically skipped without warning.
218 _SKIPPED_FILES_WITHOUT_WARNING = [ 218 _SKIPPED_FILES_WITHOUT_WARNING = [
219 "LayoutTests" + os.path.sep, 219 "LayoutTests" + os.path.sep,
220 "Source/ThirdParty/leveldb" + os.path.sep, 220 "Source/ThirdParty/leveldb" + os.path.sep,
221 # Prevents this being recognized as a text file. 221 # Prevents this being recognized as a text file.
222 "Source/WebCore/GNUmakefile.features.am.in", 222 "Source/WebCore/GNUmakefile.features.am.in",
223 ] 223 ]
224 224
225 # Extensions of files which are allowed to contain carriage returns. 225 # Extensions of files which are allowed to contain carriage returns.
226 _CARRIAGE_RETURN_ALLOWED_FILE_EXTENSIONS = [ 226 _CARRIAGE_RETURN_ALLOWED_FILE_EXTENSIONS = [
227 'png', 227 'png',
228 'vcproj', 228 'vcproj',
229 'vsprops', 229 'vsprops',
230 ] 230 ]
231 231
232 # The maximum number of errors to report per file, per category. 232 # The maximum number of errors to report per file, per category.
233 # If a category is not a key, then it has no maximum. 233 # If a category is not a key, then it has no maximum.
234 _MAX_REPORTS_PER_CATEGORY = { 234 _MAX_REPORTS_PER_CATEGORY = {
235 "whitespace/carriage_return": 1 235 "whitespace/carriage_return": 1
236 } 236 }
237 237
238 238
239 def _all_categories(): 239 def _all_categories():
240 """Return the set of all categories used by check-webkit-style.""" 240 """Return the set of all categories used by check-webkit-style."""
(...skipping 29 matching lines...) Expand all
270 270
271 271
272 def check_webkit_style_configuration(options): 272 def check_webkit_style_configuration(options):
273 """Return a StyleProcessorConfiguration instance for check-webkit-style. 273 """Return a StyleProcessorConfiguration instance for check-webkit-style.
274 274
275 Args: 275 Args:
276 options: A CommandOptionValues instance. 276 options: A CommandOptionValues instance.
277 277
278 """ 278 """
279 filter_configuration = FilterConfiguration( 279 filter_configuration = FilterConfiguration(
280 base_rules=_BASE_FILTER_RULES, 280 base_rules=_BASE_FILTER_RULES,
281 path_specific=_PATH_RULES_SPECIFIER, 281 path_specific=_PATH_RULES_SPECIFIER,
282 user_rules=options.filter_rules) 282 user_rules=options.filter_rules)
283 283
284 return StyleProcessorConfiguration(filter_configuration=filter_configuration , 284 return StyleProcessorConfiguration(filter_configuration=filter_configuration ,
285 max_reports_per_category=_MAX_REPORTS_PER_CATEGORY, 285 max_reports_per_category=_MAX_REPORTS_PER _CATEGORY,
286 min_confidence=options.min_confidence, 286 min_confidence=options.min_confidence,
287 output_format=options.output_format, 287 output_format=options.output_format,
288 stderr_write=sys.stderr.write) 288 stderr_write=sys.stderr.write)
289 289
290 290
291 def _create_log_handlers(stream): 291 def _create_log_handlers(stream):
292 """Create and return a default list of logging.Handler instances. 292 """Create and return a default list of logging.Handler instances.
293 293
294 Format WARNING messages and above to display the logging level, and 294 Format WARNING messages and above to display the logging level, and
295 messages strictly below WARNING not to display it. 295 messages strictly below WARNING not to display it.
296 296
297 Args: 297 Args:
298 stream: See the configure_logging() docstring. 298 stream: See the configure_logging() docstring.
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 return os.path.splitext(file_path)[1].lstrip(".") 401 return os.path.splitext(file_path)[1].lstrip(".")
402 402
403 def _should_skip_file_path(self, file_path, skip_array_entry): 403 def _should_skip_file_path(self, file_path, skip_array_entry):
404 match = re.search("\s*png$", file_path) 404 match = re.search("\s*png$", file_path)
405 if match: 405 if match:
406 return False 406 return False
407 if isinstance(skip_array_entry, str): 407 if isinstance(skip_array_entry, str):
408 if file_path.find(skip_array_entry) >= 0: 408 if file_path.find(skip_array_entry) >= 0:
409 return True 409 return True
410 elif skip_array_entry.match(file_path): 410 elif skip_array_entry.match(file_path):
411 return True 411 return True
412 return False 412 return False
413 413
414 def should_skip_with_warning(self, file_path): 414 def should_skip_with_warning(self, file_path):
415 """Return whether the given file should be skipped with a warning.""" 415 """Return whether the given file should be skipped with a warning."""
416 for skipped_file in _SKIPPED_FILES_WITH_WARNING: 416 for skipped_file in _SKIPPED_FILES_WITH_WARNING:
417 if self._should_skip_file_path(file_path, skipped_file): 417 if self._should_skip_file_path(file_path, skipped_file):
418 return True 418 return True
419 return False 419 return False
420 420
421 def should_skip_without_warning(self, file_path): 421 def should_skip_without_warning(self, file_path):
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
734 checker = self._dispatcher.dispatch(file_path, 734 checker = self._dispatcher.dispatch(file_path,
735 style_error_handler, 735 style_error_handler,
736 min_confidence) 736 min_confidence)
737 737
738 if checker is None: 738 if checker is None:
739 raise AssertionError("File should not be checked: '%s'" % file_path) 739 raise AssertionError("File should not be checked: '%s'" % file_path)
740 740
741 _log.debug("Using class: " + checker.__class__.__name__) 741 _log.debug("Using class: " + checker.__class__.__name__)
742 742
743 checker.check(lines) 743 checker.check(lines)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698