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

Side by Side Diff: presubmit_support.py

Issue 13866044: Add cpplint to presubmit input_api (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: bump version Created 7 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 | Annotate | Revision Log
« no previous file with comments | « presubmit_canned_checks.py ('k') | tests/presubmit_unittest.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Enables directory-specific presubmit checks to run at upload and/or commit. 6 """Enables directory-specific presubmit checks to run at upload and/or commit.
7 """ 7 """
8 8
9 __version__ = '1.6.1' 9 __version__ = '1.6.2'
10 10
11 # TODO(joi) Add caching where appropriate/needed. The API is designed to allow 11 # TODO(joi) Add caching where appropriate/needed. The API is designed to allow
12 # caching (between all different invocations of presubmit scripts for a given 12 # caching (between all different invocations of presubmit scripts for a given
13 # change). We should add it as our presubmit scripts start feeling slow. 13 # change). We should add it as our presubmit scripts start feeling slow.
14 14
15 import cpplint
15 import cPickle # Exposed through the API. 16 import cPickle # Exposed through the API.
16 import cStringIO # Exposed through the API. 17 import cStringIO # Exposed through the API.
17 import contextlib 18 import contextlib
18 import fnmatch 19 import fnmatch
19 import glob 20 import glob
20 import inspect 21 import inspect
21 import json # Exposed through the API. 22 import json # Exposed through the API.
22 import logging 23 import logging
23 import marshal # Exposed through the API. 24 import marshal # Exposed through the API.
24 import optparse 25 import optparse
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 self.rietveld = rietveld_obj 241 self.rietveld = rietveld_obj
241 # TBD 242 # TBD
242 self.host_url = 'http://codereview.chromium.org' 243 self.host_url = 'http://codereview.chromium.org'
243 if self.rietveld: 244 if self.rietveld:
244 self.host_url = self.rietveld.url 245 self.host_url = self.rietveld.url
245 246
246 # We expose various modules and functions as attributes of the input_api 247 # We expose various modules and functions as attributes of the input_api
247 # so that presubmit scripts don't have to import them. 248 # so that presubmit scripts don't have to import them.
248 self.basename = os.path.basename 249 self.basename = os.path.basename
249 self.cPickle = cPickle 250 self.cPickle = cPickle
251 self.cpplint = cpplint
250 self.cStringIO = cStringIO 252 self.cStringIO = cStringIO
251 self.glob = glob.glob 253 self.glob = glob.glob
252 self.json = json 254 self.json = json
253 self.logging = logging.getLogger('PRESUBMIT') 255 self.logging = logging.getLogger('PRESUBMIT')
254 self.os_listdir = os.listdir 256 self.os_listdir = os.listdir
255 self.os_walk = os.walk 257 self.os_walk = os.walk
256 self.os_path = os.path 258 self.os_path = os.path
257 self.pickle = pickle 259 self.pickle = pickle
258 self.marshal = marshal 260 self.marshal = marshal
259 self.re = re 261 self.re = re
(...skipping 16 matching lines...) Expand all
276 278
277 # We carry the canned checks so presubmit scripts can easily use them. 279 # We carry the canned checks so presubmit scripts can easily use them.
278 self.canned_checks = presubmit_canned_checks 280 self.canned_checks = presubmit_canned_checks
279 281
280 # TODO(dpranke): figure out a list of all approved owners for a repo 282 # TODO(dpranke): figure out a list of all approved owners for a repo
281 # in order to be able to handle wildcard OWNERS files? 283 # in order to be able to handle wildcard OWNERS files?
282 self.owners_db = owners.Database(change.RepositoryRoot(), 284 self.owners_db = owners.Database(change.RepositoryRoot(),
283 fopen=file, os_path=self.os_path, glob=self.glob) 285 fopen=file, os_path=self.os_path, glob=self.glob)
284 self.verbose = verbose 286 self.verbose = verbose
285 287
288 # Replace <hash_map> and <hash_set> as headers that need to be included
289 # with "base/hash_tables.h" instead.
290 # Access to a protected member _XX of a client class
291 # pylint: disable=W0212
292 self.cpplint._re_pattern_templates = [
293 (a, b, 'base/hash_tables.h')
294 if header in ('<hash_map>', '<hash_set>') else (a, b, header)
295 for (a, b, header) in cpplint._re_pattern_templates
296 ]
297
286 def PresubmitLocalPath(self): 298 def PresubmitLocalPath(self):
287 """Returns the local path of the presubmit script currently being run. 299 """Returns the local path of the presubmit script currently being run.
288 300
289 This is useful if you don't want to hard-code absolute paths in the 301 This is useful if you don't want to hard-code absolute paths in the
290 presubmit script. For example, It can be used to find another file 302 presubmit script. For example, It can be used to find another file
291 relative to the PRESUBMIT.py script, so the whole tree can be branched and 303 relative to the PRESUBMIT.py script, so the whole tree can be branched and
292 the presubmit script still works, without editing its content. 304 the presubmit script still works, without editing its content.
293 """ 305 """
294 return self._current_presubmit_path 306 return self._current_presubmit_path
295 307
(...skipping 1003 matching lines...) Expand 10 before | Expand all | Expand 10 after
1299 except PresubmitFailure, e: 1311 except PresubmitFailure, e:
1300 print >> sys.stderr, e 1312 print >> sys.stderr, e
1301 print >> sys.stderr, 'Maybe your depot_tools is out of date?' 1313 print >> sys.stderr, 'Maybe your depot_tools is out of date?'
1302 print >> sys.stderr, 'If all fails, contact maruel@' 1314 print >> sys.stderr, 'If all fails, contact maruel@'
1303 return 2 1315 return 2
1304 1316
1305 1317
1306 if __name__ == '__main__': 1318 if __name__ == '__main__':
1307 fix_encoding.fix_encoding() 1319 fix_encoding.fix_encoding()
1308 sys.exit(Main(None)) 1320 sys.exit(Main(None))
OLDNEW
« no previous file with comments | « presubmit_canned_checks.py ('k') | tests/presubmit_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698