mirror of https://github.com/grpc/grpc.git
xds-k8s: Add code quality helpers (#26553)
* xds-k8s: add yapf helper * add isort helper * Remove workaround for Segmentation fault imports * Run isort * Update README.mdpull/26558/head
parent
ea4b68e7a1
commit
0e20a5fce8
16 changed files with 185 additions and 42 deletions
@ -0,0 +1,29 @@ |
||||
#!/usr/bin/env bash |
||||
# Copyright 2021 gRPC authors. |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
# Expected $XDS_K8S_DRIVER_DIR to be set by the file sourcing this. |
||||
readonly XDS_K8S_DRIVER_VENV_DIR="${XDS_K8S_DRIVER_VENV_DIR:-$XDS_K8S_DRIVER_DIR/venv}" |
||||
|
||||
if [[ -z "${VIRTUAL_ENV}" ]]; then |
||||
if [[ -d "${XDS_K8S_DRIVER_VENV_DIR}" ]]; then |
||||
# Intentional: No need to check python venv activate script. |
||||
# shellcheck source=/dev/null |
||||
source "${XDS_K8S_DRIVER_VENV_DIR}/bin/activate" |
||||
else |
||||
echo "Missing python virtual environment directory: ${XDS_K8S_DRIVER_VENV_DIR}" >&2 |
||||
echo "Follow README.md installation steps first." >&2 |
||||
exit 1 |
||||
fi |
||||
fi |
@ -0,0 +1,61 @@ |
||||
#!/usr/bin/env bash |
||||
# Copyright 2021 gRPC authors. |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
set -eo pipefail |
||||
|
||||
display_usage() { |
||||
cat <<EOF >/dev/stderr |
||||
A helper to run isort import sorter. |
||||
|
||||
USAGE: $0 [--diff] |
||||
--diff: Do not apply changes, only show the diff |
||||
|
||||
ENVIRONMENT: |
||||
XDS_K8S_DRIVER_VENV_DIR: the path to python virtual environment directory |
||||
Default: $XDS_K8S_DRIVER_DIR/venv |
||||
EXAMPLES: |
||||
$0 |
||||
$0 --diff |
||||
EOF |
||||
exit 1 |
||||
} |
||||
|
||||
if [[ "$1" == "-h" || "$1" == "--help" ]]; then |
||||
display_usage |
||||
fi |
||||
|
||||
SCRIPT_DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" |
||||
readonly SCRIPT_DIR |
||||
readonly XDS_K8S_DRIVER_DIR="${SCRIPT_DIR}/.." |
||||
|
||||
cd "${XDS_K8S_DRIVER_DIR}" |
||||
|
||||
# Relative paths not yet supported by shellcheck. |
||||
# shellcheck source=/dev/null |
||||
source "${XDS_K8S_DRIVER_DIR}/bin/ensure_venv.sh" |
||||
|
||||
if [[ "$1" == "--diff" ]]; then |
||||
readonly MODE="--diff" |
||||
else |
||||
readonly MODE="--overwrite-in-place" |
||||
fi |
||||
|
||||
# typing is the only module allowed to put imports on the same line: |
||||
# https://google.github.io/styleguide/pyguide.html#313-imports-formatting |
||||
exec python -m isort "${MODE}" \ |
||||
--force-sort-within-sections \ |
||||
--force-single-line-imports --single-line-exclusions=typing \ |
||||
framework bin tests |
||||
|
@ -0,0 +1,58 @@ |
||||
#!/usr/bin/env bash |
||||
# Copyright 2021 gRPC authors. |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
set -eo pipefail |
||||
|
||||
display_usage() { |
||||
cat <<EOF >/dev/stderr |
||||
A helper to run yapf formatter. |
||||
|
||||
USAGE: $0 [--diff] |
||||
--diff: Do not apply changes, only show the diff |
||||
|
||||
ENVIRONMENT: |
||||
XDS_K8S_DRIVER_VENV_DIR: the path to python virtual environment directory |
||||
Default: $XDS_K8S_DRIVER_DIR/venv |
||||
EXAMPLES: |
||||
$0 |
||||
$0 --diff |
||||
EOF |
||||
exit 1 |
||||
} |
||||
|
||||
if [[ "$1" == "-h" || "$1" == "--help" ]]; then |
||||
display_usage |
||||
fi |
||||
|
||||
SCRIPT_DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" |
||||
readonly SCRIPT_DIR |
||||
readonly XDS_K8S_DRIVER_DIR="${SCRIPT_DIR}/.." |
||||
|
||||
cd "${XDS_K8S_DRIVER_DIR}" |
||||
|
||||
# Relative paths not yet supported by shellcheck. |
||||
# shellcheck source=/dev/null |
||||
source "${XDS_K8S_DRIVER_DIR}/bin/ensure_venv.sh" |
||||
|
||||
if [[ "$1" == "--diff" ]]; then |
||||
readonly MODE="--diff" |
||||
else |
||||
readonly MODE="--in-place" |
||||
readonly VERBOSE="--verbose" # print out file names while processing |
||||
fi |
||||
|
||||
exec python -m yapf "${MODE}" ${VERBOSE:-} \ |
||||
--parallel --recursive --style=../../../setup.cfg \ |
||||
framework bin tests |
@ -0,0 +1,4 @@ |
||||
-r requirements.txt |
||||
yapf==0.30.0 # Mirrors yapf version set in https://github.com/grpc/grpc/blob/master/tools/distrib/yapf_code.sh |
||||
isort~=5.9 |
||||
# TODO(https://github.com/grpc/grpc/pull/25872): mypy |
Loading…
Reference in new issue