From 7c1cbf6d5c6c9c5913421545e2a5067f736e26af Mon Sep 17 00:00:00 2001 From: scbedd <45376673+scbedd@users.noreply.github.com> Date: Thu, 1 Jul 2021 11:54:31 -0700 Subject: [PATCH 1/2] we want to only trigger off of actual black changes. everything else in a git diff can be ignored. --- scripts/devops_tasks/validate_formatting.py | 44 +++++++++------------ 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/scripts/devops_tasks/validate_formatting.py b/scripts/devops_tasks/validate_formatting.py index 0a12d9ca8635..d751bd64c915 100644 --- a/scripts/devops_tasks/validate_formatting.py +++ b/scripts/devops_tasks/validate_formatting.py @@ -9,44 +9,35 @@ import os import logging import sys - -from common_tasks import run_check_call +import subprocess +import pdb logging.getLogger().setLevel(logging.INFO) root_dir = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "..", "..")) sdk_dir = os.path.join(root_dir, "sdk") -SWAGGER_FOLDER = "swagger" - - def run_black(service_dir): logging.info("Running black for {}".format(service_dir)) - command = [sys.executable, "-m", "black", "-l", "120", "sdk/{}".format(service_dir)] + out = subprocess.Popen([sys.executable, "-m", "black", "-l", "120", "sdk/{}".format(service_dir)], + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + cwd = root_dir + ) - run_check_call(command, root_dir) + stdout,stderr = out.communicate() + if stderr: + raise RuntimeError("black ran into some trouble during its invocation: " + stderr) -def check_diff(folder): - # We don't care about changes to txt files (dev_requirements change) - run_check_call(["git", "status"], sdk_dir, always_exit=False) + if stdout: + if "reformatted" in stdout.decode('utf-8'): + return False - dir_changed = folder.split("/")[:-2] - command = [ - "git", - "diff", - "--exit-code", - "{}".format("/".join(dir_changed)), - ] - result = run_check_call(command, sdk_dir, always_exit=False) - if result: - command = ["git", "status"] - run_check_call(command, root_dir) - raise ValueError( - "Found difference between formatted code and current commit. Please re-generate with the latest autorest." - ) + return True + if __name__ == "__main__": parser = argparse.ArgumentParser( description="Run black to verify formatted code." @@ -61,7 +52,8 @@ def check_diff(folder): args = parser.parse_args() if args.validate != "False": - run_black(args.service_directory) - check_diff("sdk/{}".format(args.service_directory)) + if not run_black(args.service_directory): + raise ValueError("Found difference between formatted code and current commit. Please re-generate with the latest autorest.") + else: print("Skipping formatting validation") \ No newline at end of file From 516aaed7f0be1ecaad7a698f71b7d4e22eb94916 Mon Sep 17 00:00:00 2001 From: scbedd <45376673+scbedd@users.noreply.github.com> Date: Thu, 1 Jul 2021 11:57:15 -0700 Subject: [PATCH 2/2] get rid of pdb --- scripts/devops_tasks/validate_formatting.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/devops_tasks/validate_formatting.py b/scripts/devops_tasks/validate_formatting.py index d751bd64c915..ffdf138afb59 100644 --- a/scripts/devops_tasks/validate_formatting.py +++ b/scripts/devops_tasks/validate_formatting.py @@ -10,7 +10,6 @@ import logging import sys import subprocess -import pdb logging.getLogger().setLevel(logging.INFO)