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

Side by Side Diff: presubmit_canned_checks.py

Issue 10654002: Pass arguments to pylint child process via a pipe. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Addressed nit. Created 8 years, 6 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 | « no previous file | pylint » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Generic presubmit checks that can be reused by other presubmit checks.""" 5 """Generic presubmit checks that can be reused by other presubmit checks."""
6 6
7 import os as _os 7 import os as _os
8 _HERE = _os.path.dirname(_os.path.abspath(__file__)) 8 _HERE = _os.path.dirname(_os.path.abspath(__file__))
9 9
10 10
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 646
647 # Copy the system path to the environment so pylint can find the right 647 # Copy the system path to the environment so pylint can find the right
648 # imports. 648 # imports.
649 env = input_api.environ.copy() 649 env = input_api.environ.copy()
650 import sys 650 import sys
651 env['PYTHONPATH'] = input_api.os_path.pathsep.join(sys.path) 651 env['PYTHONPATH'] = input_api.os_path.pathsep.join(sys.path)
652 652
653 def run_lint(files): 653 def run_lint(files):
654 # We can't import pylint directly due to licensing issues, so we run 654 # We can't import pylint directly due to licensing issues, so we run
655 # it in another process. Windows needs help running python files so we 655 # it in another process. Windows needs help running python files so we
656 # explicitly specify the interpreter to use. 656 # explicitly specify the interpreter to use. It also has limitations on
657 # the size of the command-line, so we pass arguments via a pipe.
657 command = [input_api.python_executable, 658 command = [input_api.python_executable,
658 input_api.os_path.join(_HERE, 'third_party', 'pylint.py')] 659 input_api.os_path.join(_HERE, 'third_party', 'pylint.py'),
660 '--args-on-stdin']
659 try: 661 try:
660 return input_api.subprocess.call(command + files + extra_args, env=env) 662 child = input_api.subprocess.Popen(command, env=env,
663 stdin=input_api.subprocess.PIPE)
664
665 # Dump the arguments to the child process via a pipe.
666 for filename in files:
667 child.stdin.write(filename + '\n')
668 for arg in extra_args:
669 child.stdin.write(arg + '\n')
670 child.stdin.close()
671
672 child.communicate()
673 return child.returncode
661 except OSError: 674 except OSError:
662 return 'Pylint failed!' 675 return 'Pylint failed!'
663 676
664 result = None 677 result = None
665 if not input_api.verbose: 678 if not input_api.verbose:
666 result = run_lint(sorted(files)) 679 result = run_lint(sorted(files))
667 else: 680 else:
668 for filename in sorted(files): 681 for filename in sorted(files):
669 print('Running pylint on %s' % filename) 682 print('Running pylint on %s' % filename)
670 result = run_lint([filename]) or result 683 result = run_lint([filename]) or result
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
932 results.extend(input_api.canned_checks.CheckSvnForCommonMimeTypes( 945 results.extend(input_api.canned_checks.CheckSvnForCommonMimeTypes(
933 input_api, output_api)) 946 input_api, output_api))
934 snapshot("checking license") 947 snapshot("checking license")
935 results.extend(input_api.canned_checks.CheckLicense( 948 results.extend(input_api.canned_checks.CheckLicense(
936 input_api, output_api, license_header, source_file_filter=sources)) 949 input_api, output_api, license_header, source_file_filter=sources))
937 snapshot("checking was uploaded") 950 snapshot("checking was uploaded")
938 results.extend(input_api.canned_checks.CheckChangeWasUploaded( 951 results.extend(input_api.canned_checks.CheckChangeWasUploaded(
939 input_api, output_api)) 952 input_api, output_api))
940 snapshot("done") 953 snapshot("done")
941 return results 954 return results
OLDNEW
« no previous file with comments | « no previous file | pylint » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698