diff options
author | Masood Malekghassemi <atash@google.com> | 2016-05-11 12:01:40 -0700 |
---|---|---|
committer | Masood Malekghassemi <atash@google.com> | 2017-01-17 10:55:32 -0800 |
commit | 06dea573daa2175b244a430bb89b49bb5c8e8c5b (patch) | |
tree | f5c0b6c2a3684e7bf9eaf0d75768074679f77151 /tools | |
parent | d9f5b230c1dd78019ef1ed84fd2696f9e5f98fdd (diff) |
Enable running Python formatting
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/distrib/pyformat_code.sh | 60 | ||||
-rw-r--r-- | tools/run_tests/sanity/sanity_tests.yaml | 1 |
2 files changed, 61 insertions, 0 deletions
diff --git a/tools/distrib/pyformat_code.sh b/tools/distrib/pyformat_code.sh new file mode 100755 index 0000000000..e3ebf1c490 --- /dev/null +++ b/tools/distrib/pyformat_code.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# Copyright 2015, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set -ex + +# change to root directory +cd $(dirname $0)/../.. + +DIRS=src/python +EXCLUSIONS='src/python/grpcio/grpc_*.py src/python/grpcio_health_checking/grpc_*.py src/python/grpcio_reflection/grpc_*.py src/python/grpcio_tests/grpc_*.py' + +VIRTUALENV=python_format_venv + +virtualenv $VIRTUALENV +PYTHON=`realpath $VIRTUALENV/bin/python` +$PYTHON -m pip install --upgrade futures yapf + +exclusion_args="" +for exclusion in $EXCLUSIONS; do + exclusion_args="$exclusion_args --exclude $exclusion" +done + +script_result=0 +for dir in $DIRS; do + tempdir=`mktemp -d` + cp -RT $dir $tempdir + $PYTHON -m yapf -i -r -p $exclusion_args $dir + if ! diff -rq $dir $tempdir; then + script_result=1 + fi + rm -rf $tempdir +done +exit $script_result diff --git a/tools/run_tests/sanity/sanity_tests.yaml b/tools/run_tests/sanity/sanity_tests.yaml index 37819166e3..f29b700572 100644 --- a/tools/run_tests/sanity/sanity_tests.yaml +++ b/tools/run_tests/sanity/sanity_tests.yaml @@ -12,5 +12,6 @@ - script: tools/distrib/check_trailing_newlines.sh - script: tools/distrib/check_nanopb_output.sh - script: tools/distrib/check_include_guards.py +- script: tools/distrib/pyformat_code.sh - script: tools/distrib/python/check_grpcio_tools.py |