You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							139 lines
						
					
					
						
							3.7 KiB
						
					
					
				
			
		
		
	
	
							139 lines
						
					
					
						
							3.7 KiB
						
					
					
				# Copyright (c) 2012 Google Inc. All rights reserved. | 
						|
# Use of this source code is governed by a BSD-style license that can be | 
						|
# found in the LICENSE file. | 
						|
 | 
						|
 | 
						|
"""Top-level presubmit script for GYP. | 
						|
 | 
						|
See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts | 
						|
for more details about the presubmit API built into gcl. | 
						|
""" | 
						|
 | 
						|
 | 
						|
PYLINT_BLACKLIST = [ | 
						|
    # TODO: fix me. | 
						|
    # From SCons, not done in google style. | 
						|
    'test/lib/TestCmd.py', | 
						|
    'test/lib/TestCommon.py', | 
						|
    'test/lib/TestGyp.py', | 
						|
] | 
						|
 | 
						|
 | 
						|
PYLINT_DISABLED_WARNINGS = [ | 
						|
    # TODO: fix me. | 
						|
    # Many tests include modules they don't use. | 
						|
    'W0611', | 
						|
    # Possible unbalanced tuple unpacking with sequence. | 
						|
    'W0632', | 
						|
    # Attempting to unpack a non-sequence. | 
						|
    'W0633', | 
						|
    # Include order doesn't properly include local files? | 
						|
    'F0401', | 
						|
    # Some use of built-in names. | 
						|
    'W0622', | 
						|
    # Some unused variables. | 
						|
    'W0612', | 
						|
    # Operator not preceded/followed by space. | 
						|
    'C0323', | 
						|
    'C0322', | 
						|
    # Unnecessary semicolon. | 
						|
    'W0301', | 
						|
    # Unused argument. | 
						|
    'W0613', | 
						|
    # String has no effect (docstring in wrong place). | 
						|
    'W0105', | 
						|
    # map/filter on lambda could be replaced by comprehension. | 
						|
    'W0110', | 
						|
    # Use of eval. | 
						|
    'W0123', | 
						|
    # Comma not followed by space. | 
						|
    'C0324', | 
						|
    # Access to a protected member. | 
						|
    'W0212', | 
						|
    # Bad indent. | 
						|
    'W0311', | 
						|
    # Line too long. | 
						|
    'C0301', | 
						|
    # Undefined variable. | 
						|
    'E0602', | 
						|
    # Not exception type specified. | 
						|
    'W0702', | 
						|
    # No member of that name. | 
						|
    'E1101', | 
						|
    # Dangerous default {}. | 
						|
    'W0102', | 
						|
    # Cyclic import. | 
						|
    'R0401', | 
						|
    # Others, too many to sort. | 
						|
    'W0201', 'W0232', 'E1103', 'W0621', 'W0108', 'W0223', 'W0231', | 
						|
    'R0201', 'E0101', 'C0321', | 
						|
    # ************* Module copy | 
						|
    # W0104:427,12:_test.odict.__setitem__: Statement seems to have no effect | 
						|
    'W0104', | 
						|
] | 
						|
 | 
						|
 | 
						|
def _LicenseHeader(input_api): | 
						|
  # Accept any year number from 2009 to the current year. | 
						|
  current_year = int(input_api.time.strftime('%Y')) | 
						|
  allowed_years = (str(s) for s in reversed(xrange(2009, current_year + 1))) | 
						|
 | 
						|
  years_re = '(' + '|'.join(allowed_years) + ')' | 
						|
 | 
						|
  # The (c) is deprecated, but tolerate it until it's removed from all files. | 
						|
  return ( | 
						|
      r'.*? Copyright (\(c\) )?%(year)s Google Inc\. All rights reserved\.\n' | 
						|
      r'.*? Use of this source code is governed by a BSD-style license that ' | 
						|
        r'can be\n' | 
						|
      r'.*? found in the LICENSE file\.\n' | 
						|
  ) % { | 
						|
      'year': years_re, | 
						|
  } | 
						|
 | 
						|
def CheckChangeOnUpload(input_api, output_api): | 
						|
  report = [] | 
						|
  report.extend(input_api.canned_checks.PanProjectChecks( | 
						|
      input_api, output_api, license_header=_LicenseHeader(input_api))) | 
						|
  return report | 
						|
 | 
						|
 | 
						|
def CheckChangeOnCommit(input_api, output_api): | 
						|
  report = [] | 
						|
 | 
						|
  report.extend(input_api.canned_checks.PanProjectChecks( | 
						|
      input_api, output_api, license_header=_LicenseHeader(input_api))) | 
						|
  report.extend(input_api.canned_checks.CheckTreeIsOpen( | 
						|
      input_api, output_api, | 
						|
      'http://gyp-status.appspot.com/status', | 
						|
      'http://gyp-status.appspot.com/current')) | 
						|
 | 
						|
  import os | 
						|
  import sys | 
						|
  old_sys_path = sys.path | 
						|
  try: | 
						|
    sys.path = ['pylib', 'test/lib'] + sys.path | 
						|
    blacklist = PYLINT_BLACKLIST | 
						|
    if sys.platform == 'win32': | 
						|
      blacklist = [os.path.normpath(x).replace('\\', '\\\\') | 
						|
                   for x in PYLINT_BLACKLIST] | 
						|
    report.extend(input_api.canned_checks.RunPylint( | 
						|
        input_api, | 
						|
        output_api, | 
						|
        black_list=blacklist, | 
						|
        disabled_warnings=PYLINT_DISABLED_WARNINGS)) | 
						|
  finally: | 
						|
    sys.path = old_sys_path | 
						|
  return report | 
						|
 | 
						|
 | 
						|
TRYBOTS = [ | 
						|
    'linux_try', | 
						|
    'mac_try', | 
						|
    'win_try', | 
						|
] | 
						|
 | 
						|
 | 
						|
def GetPreferredTryMasters(_, change): | 
						|
  return { | 
						|
      'client.gyp': { t: set(['defaulttests']) for t in TRYBOTS }, | 
						|
  }
 | 
						|
 |