1# Copyright 2014 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5"""Presubmit script for mojo 6 7See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts 8for more details about the presubmit API built into depot_tools. 9""" 10 11import os.path 12 13def CheckChangeOnUpload(input_api, output_api): 14 # Additional python module paths (we're in src/mojo/); not everyone needs 15 # them, but it's easiest to add them to everyone's path. 16 # For ply and jinja2: 17 third_party_path = os.path.join( 18 input_api.PresubmitLocalPath(), "..", "third_party") 19 # For the bindings generator: 20 mojo_public_bindings_pylib_path = os.path.join( 21 input_api.PresubmitLocalPath(), "public", "tools", "bindings", "pylib") 22 # For the python bindings: 23 mojo_python_bindings_path = os.path.join( 24 input_api.PresubmitLocalPath(), "public", "python") 25 # TODO(vtl): Don't lint these files until the (many) problems are fixed 26 # (possibly by deleting/rewriting some files). 27 temporary_black_list = input_api.DEFAULT_BLACK_LIST + \ 28 (r".*\bpublic[\\\/]tools[\\\/]bindings[\\\/]pylib[\\\/]mojom[\\\/]" 29 r"generate[\\\/].+\.py$", 30 r".*\bpublic[\\\/]tools[\\\/]bindings[\\\/]generators[\\\/].+\.py$", 31 r".*\bspy[\\\/]ui[\\\/].+\.py$", 32 r".*\btools[\\\/]pylib[\\\/]transitive_hash\.py$", 33 r".*\btools[\\\/]test_runner\.py$") 34 35 results = [] 36 pylint_extra_paths = [ 37 third_party_path, 38 mojo_public_bindings_pylib_path, 39 mojo_python_bindings_path, 40 ] 41 results += input_api.canned_checks.RunPylint( 42 input_api, output_api, extra_paths_list=pylint_extra_paths, 43 black_list=temporary_black_list) 44 return results 45