• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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