1# Copyright (c) 2012 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.
4import os
5import sys
6
7PYLINT_BLACKLIST = []
8PYLINT_DISABLED_WARNINGS = ['R0923', 'R0201', 'E1101']
9
10def _CommonChecks(input_api, output_api):
11  results = []
12
13  # TODO(nduca): This should call update_docs.IsUpdateDocsNeeded().
14  # Disabled due to crbug.com/255326.
15  if False:
16    update_docs_path = os.path.join(
17      input_api.PresubmitLocalPath(), 'update_docs')
18    assert os.path.exists(update_docs_path)
19    results.append(output_api.PresubmitError(
20      'Docs are stale. Please run:\n' +
21      '$ %s' % os.path.abspath(update_docs_path)))
22
23  results.extend(input_api.canned_checks.RunPylint(
24        input_api, output_api,
25        black_list=PYLINT_BLACKLIST,
26        disabled_warnings=PYLINT_DISABLED_WARNINGS))
27  return results
28
29def GetPathsToPrepend(input_api):
30  return [input_api.PresubmitLocalPath()]
31
32def RunWithPrependedPath(prepended_path, fn, *args):
33  old_path = sys.path
34
35  try:
36    sys.path = prepended_path + old_path
37    return fn(*args)
38  finally:
39    sys.path = old_path
40
41def CheckChangeOnUpload(input_api, output_api):
42  def go():
43    results = []
44    results.extend(_CommonChecks(input_api, output_api))
45    return results
46  return RunWithPrependedPath(GetPathsToPrepend(input_api), go)
47
48def CheckChangeOnCommit(input_api, output_api):
49  def go():
50    results = []
51    results.extend(_CommonChecks(input_api, output_api))
52    return results
53  return RunWithPrependedPath(GetPathsToPrepend(input_api), go)
54