Apply pyformat

Test: None
Change-Id: I9f4d9260cc2c04ffe21304a83fb6a5378629e5e1
diff --git a/build.py b/build.py
index 7b7c7d1..ecc829b 100755
--- a/build.py
+++ b/build.py
@@ -105,8 +105,8 @@
 
 
 def clang_prebuilt_base_dir():
-    return utils.android_path('prebuilts/clang/host', utils.build_os_type(),
-                              clang_prebuilt_version())
+    return utils.android_path('prebuilts/clang/host',
+                              utils.build_os_type(), clang_prebuilt_version())
 
 
 def clang_prebuilt_bin_dir():
@@ -185,25 +185,23 @@
     configs = [
         # Bug: http://b/35404115: Switch to armv7-linux-android once armv5 is
         # deprecated from the NDK
-        ('arm', 'arm',
-            'arm/arm-linux-androideabi-4.9/arm-linux-androideabi',
-            'arm-linux-android', ''),
+        ('arm', 'arm', 'arm/arm-linux-androideabi-4.9/arm-linux-androideabi',
+         'arm-linux-android', ''),
         ('aarch64', 'arm64',
-            'aarch64/aarch64-linux-android-4.9/aarch64-linux-android',
-            'aarch64-linux-android', ''),
+         'aarch64/aarch64-linux-android-4.9/aarch64-linux-android',
+         'aarch64-linux-android', ''),
         ('x86_64', 'x86_64',
-            'x86/x86_64-linux-android-4.9/x86_64-linux-android',
-            'x86_64-linux-android', ''),
-        ('i386', 'x86',
-            'x86/x86_64-linux-android-4.9/x86_64-linux-android',
-            'i686-linux-android', '-m32'),
+         'x86/x86_64-linux-android-4.9/x86_64-linux-android',
+         'x86_64-linux-android', ''),
+        ('i386', 'x86', 'x86/x86_64-linux-android-4.9/x86_64-linux-android',
+         'i686-linux-android', '-m32'),
         ('mips', 'mips',
-            'mips/mips64el-linux-android-4.9/mips64el-linux-android',
-            'mipsel-linux-android', '-m32'),
+         'mips/mips64el-linux-android-4.9/mips64el-linux-android',
+         'mipsel-linux-android', '-m32'),
         ('mips64', 'mips64',
-            'mips/mips64el-linux-android-4.9/mips64el-linux-android',
-            'mips64el-linux-android', '-m64'),
-        ]
+         'mips/mips64el-linux-android-4.9/mips64el-linux-android',
+         'mips64el-linux-android', '-m64'),
+    ]
 
     cc = os.path.join(stage2_install, 'bin', 'clang')
     cxx = os.path.join(stage2_install, 'bin', 'clang++')
@@ -231,10 +229,9 @@
             defines['COMPILER_RT_BUILD_BUILTINS'] = 'OFF'
 
         # Include the directory with libgcc.a to the linker search path.
-        toolchain_builtins = os.path.join(toolchain_root, toolchain_path, '..',
-                                          'lib', 'gcc',
-                                          os.path.basename(toolchain_path),
-                                          '4.9.x')
+        toolchain_builtins = os.path.join(
+            toolchain_root, toolchain_path, '..', 'lib', 'gcc',
+            os.path.basename(toolchain_path), '4.9.x')
         # The 32-bit libgcc.a is sometimes in a separate subdir
         if arch == 'i386':
             toolchain_builtins = os.path.join(toolchain_builtins, '32')
@@ -260,20 +257,24 @@
             toolchain_lib = ndk_toolchain_lib(arch, llvm_triple + '-4.9',
                                               llvm_triple)
 
-        ldflags = ['-L' + toolchain_builtins, '-Wl,-z,defs', '-L' + libcxx_libs,
-                   '-L' + toolchain_lib, '--sysroot=%s' % sysroot_libs]
+        ldflags = [
+            '-L' + toolchain_builtins, '-Wl,-z,defs', '-L' + libcxx_libs,
+            '-L' + toolchain_lib,
+            '--sysroot=%s' % sysroot_libs
+        ]
         defines['CMAKE_EXE_LINKER_FLAGS'] = ' '.join(ldflags)
         defines['CMAKE_SHARED_LINKER_FLAGS'] = ' '.join(ldflags)
         defines['CMAKE_MODULE_LINKER_FLAGS'] = ' '.join(ldflags)
         defines['CMAKE_SYSROOT'] = sysroot
         defines['CMAKE_SYSROOT_COMPILE'] = sysroot
 
-        cflags = ['--target=%s' % llvm_triple,
-                  '-B%s' % toolchain_bin,
-                  '-isystem %s' % sysroot_headers,
-                  '-D__ANDROID_API__=%s' % android_api(arch),
-                  extra_flags,
-                 ]
+        cflags = [
+            '--target=%s' % llvm_triple,
+            '-B%s' % toolchain_bin,
+            '-isystem %s' % sysroot_headers,
+            '-D__ANDROID_API__=%s' % android_api(arch),
+            extra_flags,
+        ]
         yield (arch, llvm_triple, defines, cflags)
 
 
@@ -289,7 +290,8 @@
 
 
 def build_libcxx(stage2_install, clang_version):
-    for (arch, llvm_triple, libcxx_defines, cflags) in cross_compile_configs(stage2_install):
+    for (arch, llvm_triple, libcxx_defines,
+         cflags) in cross_compile_configs(stage2_install):
         logger().info('Building libcxx for %s', arch)
         libcxx_path = utils.android_path('out', 'lib', 'libcxx-' + arch)
 
@@ -302,9 +304,12 @@
         libcxx_cmake_path = utils.llvm_path('projects', 'libcxx')
         rm_cmake_cache(libcxx_path)
 
-        invoke_cmake(out_path=libcxx_path, defines=libcxx_defines,
-                     env=libcxx_env, cmake_path=libcxx_cmake_path,
-                     install=False)
+        invoke_cmake(
+            out_path=libcxx_path,
+            defines=libcxx_defines,
+            env=libcxx_env,
+            cmake_path=libcxx_cmake_path,
+            install=False)
         # We need to install libcxx manually.
         libcxx_install = os.path.join(stage2_install, 'lib64', 'clang',
                                       clang_version.short_version(), 'lib',
@@ -319,7 +324,8 @@
 def build_crts(stage2_install, clang_version):
     llvm_config = os.path.join(stage2_install, 'bin', 'llvm-config')
     # Now build compiler-rt for each arch
-    for (arch, llvm_triple, crt_defines, cflags) in cross_compile_configs(stage2_install):
+    for (arch, llvm_triple, crt_defines,
+         cflags) in cross_compile_configs(stage2_install):
         logger().info('Building compiler-rt for %s', arch)
         crt_path = utils.android_path('out', 'lib', 'clangrt-' + arch)
         crt_install = os.path.join(stage2_install, 'lib64', 'clang',
@@ -349,13 +355,17 @@
 
         crt_cmake_path = utils.llvm_path('projects', 'compiler-rt')
         rm_cmake_cache(crt_path)
-        invoke_cmake(out_path=crt_path, defines=crt_defines, env=crt_env,
-                cmake_path=crt_cmake_path)
+        invoke_cmake(
+            out_path=crt_path,
+            defines=crt_defines,
+            env=crt_env,
+            cmake_path=crt_cmake_path)
 
 
 def build_libfuzzers(stage2_install, clang_version):
 
-    for (arch, llvm_triple, libfuzzer_defines, cflags) in cross_compile_configs(stage2_install):
+    for (arch, llvm_triple, libfuzzer_defines,
+         cflags) in cross_compile_configs(stage2_install):
         logger().info('Building libfuzzer for %s', arch)
         libfuzzer_path = utils.android_path('out', 'lib', 'libfuzzer-' + arch)
         libfuzzer_defines['CMAKE_BUILD_TYPE'] = 'Release'
@@ -363,9 +373,11 @@
         libfuzzer_defines['LLVM_USE_SANITIZE_COVERAGE'] = 'YES'
         libfuzzer_defines['CMAKE_CXX_STANDARD'] = '11'
 
-        cflags.extend(['-isystem %s' % libcxx_headers(),
-                       '-isystem %s' % libcxxabi_headers(),
-                       '-isystem %s' % support_headers()])
+        cflags.extend([
+            '-isystem %s' % libcxx_headers(),
+            '-isystem %s' % libcxxabi_headers(),
+            '-isystem %s' % support_headers()
+        ])
 
         libfuzzer_defines['CMAKE_C_FLAGS'] = ' '.join(cflags)
         libfuzzer_defines['CMAKE_CXX_FLAGS'] = ' '.join(cflags)
@@ -378,28 +390,34 @@
         libfuzzer_cmake_path = utils.llvm_path('lib', 'Fuzzer')
         libfuzzer_env = dict(ORIG_ENV)
         rm_cmake_cache(libfuzzer_path)
-        invoke_cmake(out_path=libfuzzer_path, defines=libfuzzer_defines,
-                     env=libfuzzer_env, cmake_path=libfuzzer_cmake_path,
-                     install=False)
+        invoke_cmake(
+            out_path=libfuzzer_path,
+            defines=libfuzzer_defines,
+            env=libfuzzer_env,
+            cmake_path=libfuzzer_cmake_path,
+            install=False)
         # We need to install libfuzzer manually.
         static_lib = os.path.join(libfuzzer_path, 'libLLVMFuzzer.a')
         lib_dir = os.path.join(stage2_install, 'lib64', 'clang',
-                               clang_version.short_version(), 'lib',
-                               'linux', arch)
+                               clang_version.short_version(), 'lib', 'linux',
+                               arch)
         check_create_path(lib_dir)
         shutil.copy2(static_lib, os.path.join(lib_dir, 'libFuzzer.a'))
 
     # Install libfuzzer headers.
     header_src = utils.llvm_path('lib', 'Fuzzer')
-    header_dst = os.path.join(stage2_install, 'prebuilt_include', 'llvm',
-                              'lib', 'Fuzzer')
+    header_dst = os.path.join(stage2_install, 'prebuilt_include', 'llvm', 'lib',
+                              'Fuzzer')
     check_create_path(header_dst)
     for f in os.listdir(header_src):
         if f.endswith('.h') or f.endswith('.def'):
             shutil.copy2(os.path.join(header_src, f), header_dst)
 
 
-def build_llvm(targets, build_dir, install_dir, extra_defines=None,
+def build_llvm(targets,
+               build_dir,
+               install_dir,
+               extra_defines=None,
                extra_env=None):
     cmake_defines = base_cmake_defines()
     cmake_defines['CMAKE_INSTALL_PREFIX'] = install_dir
@@ -416,12 +434,19 @@
     if extra_env is not None:
         env.update(extra_env)
 
-    invoke_cmake(out_path=build_dir, defines=cmake_defines, env=env,
-                 cmake_path=utils.llvm_path())
+    invoke_cmake(
+        out_path=build_dir,
+        defines=cmake_defines,
+        env=env,
+        cmake_path=utils.llvm_path())
 
 
-def build_llvm_for_windows(targets, enable_assertions, build_dir, install_dir,
-                           native_clang_install, is_32_bit=False):
+def build_llvm_for_windows(targets,
+                           enable_assertions,
+                           build_dir,
+                           install_dir,
+                           native_clang_install,
+                           is_32_bit=False):
 
     mingw_path = utils.android_path('prebuilts', 'gcc', 'linux-x86', 'host',
                                     'x86_64-w64-mingw32-4.8')
@@ -435,10 +460,9 @@
     native_clang_cxx = os.path.join(native_clang_install, 'bin', 'clang++')
     check_create_path(build_dir)
     native_cmake_file_path = os.path.join(build_dir, 'NATIVE.cmake')
-    native_cmake_text = (
-        'set(CMAKE_C_COMPILER {cc})\n'
-        'set(CMAKE_CXX_COMPILER {cxx})\n'
-    ).format(cc=native_clang_cc, cxx=native_clang_cxx)
+    native_cmake_text = ('set(CMAKE_C_COMPILER {cc})\n'
+                         'set(CMAKE_CXX_COMPILER {cxx})\n').format(
+                             cc=native_clang_cc, cxx=native_clang_cxx)
 
     with open(native_cmake_file_path, 'w') as native_cmake_file:
         native_cmake_file.write(native_cmake_text)
@@ -483,8 +507,11 @@
     windows_extra_defines['CMAKE_SHARED_LINKER_FLAGS'] = ' '.join(ldflags)
     windows_extra_defines['CMAKE_MODULE_LINKER_FLAGS'] = ' '.join(ldflags)
 
-    build_llvm(targets=targets, build_dir=build_dir, install_dir=install_dir,
-               extra_defines=windows_extra_defines)
+    build_llvm(
+        targets=targets,
+        build_dir=build_dir,
+        install_dir=install_dir,
+        extra_defines=windows_extra_defines)
 
 
 def build_stage1(stage1_install, build_llvm_tools=False):
@@ -497,9 +524,9 @@
     stage1_extra_defines['CLANG_ENABLE_ARCMT'] = 'OFF'
     stage1_extra_defines['CLANG_ENABLE_STATIC_ANALYZER'] = 'OFF'
     stage1_extra_defines['CMAKE_C_COMPILER'] = os.path.join(
-            clang_prebuilt_bin_dir(), 'clang')
+        clang_prebuilt_bin_dir(), 'clang')
     stage1_extra_defines['CMAKE_CXX_COMPILER'] = os.path.join(
-            clang_prebuilt_bin_dir(), 'clang++')
+        clang_prebuilt_bin_dir(), 'clang++')
     stage1_extra_defines['LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD'] = 'OFF'
     stage1_extra_defines['LLVM_TOOL_OPENMP_BUILD'] = 'OFF'
 
@@ -531,14 +558,21 @@
     # Darwin and fail compilation due to us using the bionic version of
     # stdatomic.h.
     if utils.host_is_darwin():
-          stage1_extra_defines['LLVM_BUILD_EXTERNAL_COMPILER_RT'] = 'ON'
+        stage1_extra_defines['LLVM_BUILD_EXTERNAL_COMPILER_RT'] = 'ON'
 
-    build_llvm(targets=stage1_targets, build_dir=stage1_path,
-               install_dir=stage1_install, extra_defines=stage1_extra_defines)
+    build_llvm(
+        targets=stage1_targets,
+        build_dir=stage1_path,
+        install_dir=stage1_install,
+        extra_defines=stage1_extra_defines)
 
 
-def build_stage2(stage1_install, stage2_install, stage2_targets, use_lld=False,
-                 enable_assertions=False, build_instrumented=False):
+def build_stage2(stage1_install,
+                 stage2_install,
+                 stage2_targets,
+                 use_lld=False,
+                 enable_assertions=False,
+                 build_instrumented=False):
     # TODO(srhines): Build LTO plugin (Chromium folks say ~10% perf speedup)
 
     # Build/install the stage2 toolchain
@@ -595,9 +629,12 @@
     stage2_extra_env = dict()
     stage2_extra_env['LD_LIBRARY_PATH'] = os.path.join(stage1_install, 'lib64')
 
-    build_llvm(targets=stage2_targets, build_dir=stage2_path,
-               install_dir=stage2_install, extra_defines=stage2_extra_defines,
-               extra_env=stage2_extra_env)
+    build_llvm(
+        targets=stage2_targets,
+        build_dir=stage2_path,
+        install_dir=stage2_install,
+        extra_defines=stage2_extra_defines,
+        extra_env=stage2_extra_env)
 
 
 def build_runtimes(stage2_install):
@@ -656,22 +693,22 @@
 
     # Next, we remove unnecessary binaries.
     necessary_bin_files = [
-            'clang' + ext,
-            'clang++' + ext,
-            'clang-5.0' + ext,
-            'clang-format' + ext,
-            'clang-tidy' + ext,
-            'git-clang-format',  # No extension here
-            'llvm-ar' + ext,
-            'llvm-as' + ext,
-            'llvm-dis' + ext,
-            'llvm-link' + ext,
-            'llvm-profdata' + ext,
-            'llvm-symbolizer' + ext,
-            'sancov' + ext,
-            'sanstats' + ext,
-            'LLVMgold' + shlib_ext,
-            ]
+        'clang' + ext,
+        'clang++' + ext,
+        'clang-5.0' + ext,
+        'clang-format' + ext,
+        'clang-tidy' + ext,
+        'git-clang-format',  # No extension here
+        'llvm-ar' + ext,
+        'llvm-as' + ext,
+        'llvm-dis' + ext,
+        'llvm-link' + ext,
+        'llvm-profdata' + ext,
+        'llvm-symbolizer' + ext,
+        'sancov' + ext,
+        'sanstats' + ext,
+        'LLVMgold' + shlib_ext,
+    ]
     bin_dir = os.path.join(install_dir, 'bin')
     bin_files = os.listdir(bin_dir)
     for bin_filename in bin_files:
@@ -705,9 +742,7 @@
     tarball_name = package_name + '-' + host
     package_path = os.path.join(dist_dir, tarball_name) + '.tar.bz2'
     logger().info('Packaging %s', package_path)
-    args = [
-        'tar', '-cjC', install_host_dir, '-f', package_path, package_name
-    ]
+    args = ['tar', '-cjC', install_host_dir, '-f', package_path, package_name]
     check_call(args)
 
 
@@ -716,34 +751,53 @@
     parser = argparse.ArgumentParser()
 
     parser.add_argument(
-        '-v', '--verbose', action='count', default=0,
+        '-v',
+        '--verbose',
+        action='count',
+        default=0,
         help='Increase log level. Defaults to logging.INFO.')
     parser.add_argument(
         '--build-name', default='dev', help='Release name for the package.')
 
-    parser.add_argument('--use-lld', action='store_true', default=False,
-                        help='Use lld for linking (only affects stage2)')
+    parser.add_argument(
+        '--use-lld',
+        action='store_true',
+        default=False,
+        help='Use lld for linking (only affects stage2)')
 
-    parser.add_argument('--enable-assertions', action='store_true',
-                        default=False,
-                        help='Enable assertions (only affects stage2)')
+    parser.add_argument(
+        '--enable-assertions',
+        action='store_true',
+        default=False,
+        help='Enable assertions (only affects stage2)')
 
-    parser.add_argument('--build-instrumented', action='store_true',
-                        default=False,
-                        help='Build LLVM tools with PGO instrumentation')
+    parser.add_argument(
+        '--build-instrumented',
+        action='store_true',
+        default=False,
+        help='Build LLVM tools with PGO instrumentation')
 
     # Options to skip build or packaging (can't skip both, or the script does
     # nothing).
     build_package_group = parser.add_mutually_exclusive_group()
-    build_package_group.add_argument('--skip-build', '-sb',
-        action='store_true', default=False,
+    build_package_group.add_argument(
+        '--skip-build',
+        '-sb',
+        action='store_true',
+        default=False,
         help='Skip the build, and only do the packaging step')
-    build_package_group.add_argument('--skip-package', '-sp',
-        action='store_true', default=False,
+    build_package_group.add_argument(
+        '--skip-package',
+        '-sp',
+        action='store_true',
+        default=False,
         help='Skip the packaging, and only do the build step')
 
-    parser.add_argument('--no-strip', action='store_true',
-                        default=False, help='Don\t strip binaries/libraries')
+    parser.add_argument(
+        '--no-strip',
+        action='store_true',
+        default=False,
+        help='Don\t strip binaries/libraries')
 
     return parser.parse_args()
 
@@ -781,33 +835,47 @@
 
         # Build 64-bit clang for Windows
         windows64_path = utils.android_path('out', 'windows-x86')
-        build_llvm_for_windows(targets=windows_targets,
-                               enable_assertions=args.enable_assertions,
-                               build_dir=windows64_path,
-                               install_dir=windows64_install,
-                               native_clang_install=stage2_install)
+        build_llvm_for_windows(
+            targets=windows_targets,
+            enable_assertions=args.enable_assertions,
+            build_dir=windows64_path,
+            install_dir=windows64_install,
+            native_clang_install=stage2_install)
 
         # Build 32-bit clang for Windows
         windows32_path = utils.android_path('out', 'windows-i386')
-        build_llvm_for_windows(targets=windows_targets,
-                               enable_assertions=args.enable_assertions,
-                               build_dir=windows32_path,
-                               install_dir=windows32_install,
-                               native_clang_install=stage2_install,
-                               is_32_bit=True)
+        build_llvm_for_windows(
+            targets=windows_targets,
+            enable_assertions=args.enable_assertions,
+            build_dir=windows32_path,
+            install_dir=windows32_install,
+            native_clang_install=stage2_install,
+            is_32_bit=True)
 
     if do_package:
         # TODO(srhines): This only packages builds for the host OS. It needs
         # to be extended to package up the Windows build as well.
         dist_dir = ORIG_ENV.get('DIST_DIR', utils.android_path('out'))
-        package_toolchain(stage2_install, args.build_name,
-                          utils.build_os_type(), dist_dir, strip=do_strip)
+        package_toolchain(
+            stage2_install,
+            args.build_name,
+            utils.build_os_type(),
+            dist_dir,
+            strip=do_strip)
 
         if utils.host_is_linux():
-            package_toolchain(windows32_install, args.build_name,
-                              'windows-i386', dist_dir, strip=do_strip)
-            package_toolchain(windows64_install, args.build_name,
-                              'windows-x86', dist_dir, strip=do_strip)
+            package_toolchain(
+                windows32_install,
+                args.build_name,
+                'windows-i386',
+                dist_dir,
+                strip=do_strip)
+            package_toolchain(
+                windows64_install,
+                args.build_name,
+                'windows-x86',
+                dist_dir,
+                strip=do_strip)
 
     return 0
 
diff --git a/compiler_wrapper.py b/compiler_wrapper.py
index ed0dbdd..362a1b3 100755
--- a/compiler_wrapper.py
+++ b/compiler_wrapper.py
@@ -38,8 +38,10 @@
 
 # We may introduce some new warnings after rebasing and we need to disable
 # them before we fix those warnings.
-DISABLED_WARNINGS = ['-Wno-error=zero-as-null-pointer-constant',
-                     '-Wno-error=unknown-warning-option']
+DISABLED_WARNINGS = [
+    '-Wno-error=zero-as-null-pointer-constant',
+    '-Wno-error=unknown-warning-option'
+]
 
 
 def process_arg_file(arg_file):
@@ -66,6 +68,7 @@
 
 
 class CompilerWrapper():
+
     def __init__(self, argv):
         self.argv0_current = argv[0]
         self.args = argv[1:]
@@ -74,9 +77,7 @@
         self.argv0 = None
         self.append_flags = []
         self.prepend_flags = []
-        self.custom_flags = {
-            '--gomacc-path': None
-        }
+        self.custom_flags = {'--gomacc-path': None}
 
     def set_real_compiler(self):
         """Find the real compiler with the absolute path."""
@@ -85,9 +86,7 @@
             compiler = os.path.basename(os.readlink(__file__))
         else:
             compiler = os.path.basename(os.path.abspath(__file__))
-        self.real_compiler = os.path.join(
-                compiler_path,
-                compiler + '.real')
+        self.real_compiler = os.path.join(compiler_path, compiler + '.real')
         self.argv0 = self.real_compiler
 
     def process_gomacc_command(self):
@@ -126,9 +125,8 @@
     def exec_clang_with_fallback(self):
         # We only want to pass extra flags to clang and clang++.
         if os.path.basename(__file__) in ['clang', 'clang++']:
-            self.execargs += ["-fno-color-diagnostics"] + DISABLED_WARNINGS
-        p = subprocess.Popen(self.execargs,
-                             stderr=subprocess.PIPE)
+            self.execargs += ['-fno-color-diagnostics'] + DISABLED_WARNINGS
+        p = subprocess.Popen(self.execargs, stderr=subprocess.PIPE)
         (_, err) = p.communicate()
         sys.stderr.write(err)
         if p.returncode != 0:
@@ -136,8 +134,7 @@
             write_log(redirect_path, self.execargs, err)
             fallback_arg0 = os.path.join(os.environ[PREBUILT_COMPILER_PATH_KEY],
                                          os.path.basename(__file__))
-            os.execv(fallback_arg0,
-                     [fallback_arg0] + self.execargs[1:])
+            os.execv(fallback_arg0, [fallback_arg0] + self.execargs[1:])
 
     def invoke_compiler(self):
         enable_fallback = PREBUILT_COMPILER_PATH_KEY in os.environ
diff --git a/merge_from_upstream.py b/merge_from_upstream.py
index c8ec1f5..16d04c5 100755
--- a/merge_from_upstream.py
+++ b/merge_from_upstream.py
@@ -31,18 +31,20 @@
     ('libcxx', llvm_path('projects/libcxx')),
     ('libcxxabi', llvm_path('projects/libcxxabi')),
     ('lld', llvm_path('tools/lld')),
-    ('openmp', llvm_path('projects/openmp')),
-)
+    ('openmp', llvm_path('projects/openmp')),)
 
 
 def parse_args():
-  parser = argparse.ArgumentParser()
-  parser.add_argument('revision', help='Revision number of llvm source.',
-                      type=int)
-  parser.add_argument('--create-new-branch', action='store_true', default=False,
-                      help='Create new branch using `repo start` before '
-                           'merging from upstream.')
-  return parser.parse_args()
+    parser = argparse.ArgumentParser()
+    parser.add_argument(
+        'revision', help='Revision number of llvm source.', type=int)
+    parser.add_argument(
+        '--create-new-branch',
+        action='store_true',
+        default=False,
+        help='Create new branch using `repo start` before '
+        'merging from upstream.')
+    return parser.parse_args()
 
 
 def sync_upstream_branch(path):
@@ -58,22 +60,27 @@
         if sha is None:
             return
         project_sha_dict[project] = sha
-        print("Project %s git hash: %s" % (project, sha))
+        print('Project %s git hash: %s' % (project, sha))
 
     for (project, path) in PROJECT_PATH:
         sha = project_sha_dict[project]
         if create_new_branch:
             branch_name = 'merge-upstream-r%s' % revision
             subprocess.check_call(['repo', 'start', branch_name, '.'], cwd=path)
-        subprocess.check_call(['git', 'merge', sha, '-m',
-            'Merge %s for LLVM update to %d' % (sha, revision)], cwd=path)
+        subprocess.check_call(
+            [
+                'git', 'merge', sha, '-m',
+                'Merge %s for LLVM update to %d' % (sha, revision)
+            ],
+            cwd=path)
 
 
 def get_commit_hash(revision, path):
     # Get sha and commit message body for each log.
-    p = subprocess.Popen(['git', 'log', 'aosp/upstream-master',
-                          '--format=%h%x1f%B%x1e'], stdout=subprocess.PIPE,
-                         cwd=path)
+    p = subprocess.Popen(
+        ['git', 'log', 'aosp/upstream-master', '--format=%h%x1f%B%x1e'],
+        stdout=subprocess.PIPE,
+        cwd=path)
     (log, _) = p.communicate()
     if p.returncode != 0:
         print('git log for path: %s failed!' % path)
@@ -86,7 +93,7 @@
     low, high = 0, len(log) - 1
     while low < high:
         pos = (low + high) // 2
-        (sha, cur_revision)  = parse_log(log[pos])
+        (sha, cur_revision) = parse_log(log[pos])
         if cur_revision == revision:
             return sha
         elif cur_revision < revision:
diff --git a/test_compiler.py b/test_compiler.py
index 31f1055..60d0ca4 100755
--- a/test_compiler.py
+++ b/test_compiler.py
@@ -25,16 +25,13 @@
 import subprocess
 
 TARGETS = ('aosp_angler-eng', 'aosp_bullhead-eng', 'aosp_marlin-eng')
-DEFAULT_TIDY_CHECKS = ('*',
-                       '-readability-*',
-                       '-google-readability-*',
-                       '-google-runtime-references',
-                       '-cppcoreguidelines-*',
-                       '-modernize-*',
-                       '-clang-analyzer-alpha*')
+DEFAULT_TIDY_CHECKS = ('*', '-readability-*', '-google-readability-*',
+                       '-google-runtime-references', '-cppcoreguidelines-*',
+                       '-modernize-*', '-clang-analyzer-alpha*')
 
 
 class ClangProfileHandler(object):
+
     def __init__(self):
         self.out_dir = os.environ.get('OUT_DIR', utils.android_path('out'))
         self.profiles_dir = os.path.join(self.out_dir, 'clang-profiles')
@@ -56,50 +53,85 @@
 def parse_args():
     parser = argparse.ArgumentParser()
     parser.add_argument('android_path', help='Android source directory.')
-    parser.add_argument('clang_path', nargs='?', help='Clang toolchain '
-                        'directory. If not specified, a new toolchain will '
-                        'be built from scratch.')
-    parser.add_argument('-k', '--keep-going', action='store_true',
-                        default=False, help='Keep going when some targets '
-                        'cannot be built.')
-    parser.add_argument('-j', action='store', dest='jobs', type=int,
-                        default=multiprocessing.cpu_count(),
-                        help='Number of executed jobs.')
-    parser.add_argument('--build-only', action='store_true',
-                        default=False, help='Build default targets only.')
-    parser.add_argument('--flashall-path', nargs='?', help='Use internal '
-                        'flashall tool if the path is set.')
-    parser.add_argument('-t', '--target', nargs='?', help='Build for specified '
-                        'target. This will work only when --build-only is '
-                        'enabled.')
-    parser.add_argument('--with-tidy', action='store_true', default=False,
-                        help='Enable clang tidy for Android build.')
+    parser.add_argument(
+        'clang_path',
+        nargs='?',
+        help='Clang toolchain '
+        'directory. If not specified, a new toolchain will '
+        'be built from scratch.')
+    parser.add_argument(
+        '-k',
+        '--keep-going',
+        action='store_true',
+        default=False,
+        help='Keep going when some targets '
+        'cannot be built.')
+    parser.add_argument(
+        '-j',
+        action='store',
+        dest='jobs',
+        type=int,
+        default=multiprocessing.cpu_count(),
+        help='Number of executed jobs.')
+    parser.add_argument(
+        '--build-only',
+        action='store_true',
+        default=False,
+        help='Build default targets only.')
+    parser.add_argument(
+        '--flashall-path',
+        nargs='?',
+        help='Use internal '
+        'flashall tool if the path is set.')
+    parser.add_argument(
+        '-t',
+        '--target',
+        nargs='?',
+        help='Build for specified '
+        'target. This will work only when --build-only is '
+        'enabled.')
+    parser.add_argument(
+        '--with-tidy',
+        action='store_true',
+        default=False,
+        help='Enable clang tidy for Android build.')
     clean_built_target_group = parser.add_mutually_exclusive_group()
     clean_built_target_group.add_argument(
-        '--clean-built-target', action='store_true', default=True,
+        '--clean-built-target',
+        action='store_true',
+        default=True,
         help='Clean output for each target that is built.')
     clean_built_target_group.add_argument(
-        '--no-clean-built-target', action='store_false',
-        dest='clean_built_target', help='Do not remove target output.')
+        '--no-clean-built-target',
+        action='store_false',
+        dest='clean_built_target',
+        help='Do not remove target output.')
     redirect_stderr_group = parser.add_mutually_exclusive_group()
     redirect_stderr_group.add_argument(
-        '--redirect-stderr', action='store_true', default=True,
+        '--redirect-stderr',
+        action='store_true',
+        default=True,
         help='Redirect clang stderr to $OUT/clang-error.log.')
     redirect_stderr_group.add_argument(
-        '--no-redirect-stderr', action='store_false',
-        dest='redirect_stderr', help='Do not redirect clang stderr.')
+        '--no-redirect-stderr',
+        action='store_false',
+        dest='redirect_stderr',
+        help='Do not redirect clang stderr.')
 
-    parser.add_argument('--generate-clang-profile', action='store_true',
-                        default=False, dest='profile',
-                        help='Build instrumented compiler and gather profiles')
+    parser.add_argument(
+        '--generate-clang-profile',
+        action='store_true',
+        default=False,
+        dest='profile',
+        help='Build instrumented compiler and gather profiles')
 
     return parser.parse_args()
 
 
 def link_clang(android_base, clang_path):
-    android_clang_path = os.path.join(android_base, 'prebuilts', 'clang',
-                                      'host', utils.build_os_type(),
-                                      'clang-dev')
+    android_clang_path = os.path.join(android_base, 'prebuilts',
+                                      'clang', 'host',
+                                      utils.build_os_type(), 'clang-dev')
     utils.remove(android_clang_path)
     os.symlink(os.path.abspath(clang_path), android_clang_path)
 
@@ -108,7 +140,7 @@
     try:
         # Get current connected device list.
         out = subprocess.check_output(['adb', 'devices', '-l'])
-        devices = [x.split() for x in  out.strip().split('\n')[1:]]
+        devices = [x.split() for x in out.strip().split('\n')[1:]]
         return devices
     except subprocess.CalledProcessError:
         # If adb is not working properly. Return empty list.
@@ -120,14 +152,17 @@
         utils.remove(os.environ['ANDROID_PRODUCT_OUT'])
 
 
-def build_target(android_base, clang_version, target, max_jobs,
-                 redirect_stderr, with_tidy, profiler):
-    jobs = '-j{}'.format(
-            max(1, min(max_jobs, multiprocessing.cpu_count())))
+def build_target(android_base, clang_version, target, max_jobs, redirect_stderr,
+                 with_tidy, profiler):
+    jobs = '-j{}'.format(max(1, min(max_jobs, multiprocessing.cpu_count())))
     result = True
-    env_out = subprocess.Popen(['bash', '-c',  '. ./build/envsetup.sh;'
-                                'lunch ' + target + ' >/dev/null && env'],
-                               cwd=android_base, stdout=subprocess.PIPE )
+    env_out = subprocess.Popen(
+        [
+            'bash', '-c', '. ./build/envsetup.sh;'
+            'lunch ' + target + ' >/dev/null && env'
+        ],
+        cwd=android_base,
+        stdout=subprocess.PIPE)
     env = {}
     for line in env_out.stdout:
         (key, _, value) = line.partition('=')
@@ -141,8 +176,8 @@
             redirect_path = os.path.join(env['DIST_DIR'], 'logs',
                                          'clang-error.log')
         else:
-            redirect_path = os.path.abspath(os.path.join(android_base, 'out',
-                                                         'clang-error.log'))
+            redirect_path = os.path.abspath(
+                os.path.join(android_base, 'out', 'clang-error.log'))
             utils.remove(redirect_path)
         env[redirect_key] = redirect_path
         fallback_path = build.clang_prebuilt_bin_dir()
@@ -154,20 +189,20 @@
     # http://b/62869798, we need to invoke cpp-define-generator manually to
     # avoid potential build failure. This should be removed when
     # art/runtime/generated/asm_support_gen.h is updated.
-    subprocess.check_call(['/bin/bash', '-c', 'make cpp-define-generator-data '
-                           + jobs + ' dist'],
-                          cwd=android_base, env=env)
+    subprocess.check_call(
+        ['/bin/bash', '-c', 'make cpp-define-generator-data ' + jobs + ' dist'],
+        cwd=android_base,
+        env=env)
     asm_support_path = os.path.join(android_base, 'art', 'tools',
                                     'cpp-define-generator')
-    subprocess.check_call(['./generate-asm-support'], cwd=asm_support_path,
-                          env=env)
+    subprocess.check_call(
+        ['./generate-asm-support'], cwd=asm_support_path, env=env)
 
     if with_tidy:
         env['WITH_TIDY'] = '1'
         if 'DEFAULT_GLOBAL_TIDY_CHECKS' not in env:
             env['DEFAULT_GLOBAL_TIDY_CHECKS'] = ','.join(DEFAULT_TIDY_CHECKS)
 
-
     modules = ['dist']
     if profiler is not None:
         # Build only a subset of targets and collect profiles
@@ -178,8 +213,10 @@
 
     modules = ' '.join(modules)
     print('Start building target %s and modules %s.' % (target, modules))
-    subprocess.check_call(['/bin/bash', '-c', 'make ' + jobs + ' ' + modules],
-                          cwd=android_base, env=env)
+    subprocess.check_call(
+        ['/bin/bash', '-c', 'make ' + jobs + ' ' + modules],
+        cwd=android_base,
+        env=env)
 
 
 def test_device(android_base, clang_version, device, max_jobs, clean_output,
@@ -197,10 +234,11 @@
         if flashall_path is None:
             bin_path = os.path.join(android_base, 'out', 'host',
                                     utils.build_os_type(), 'bin')
-            subprocess.check_call(['./adb', '-s', device[0], 'reboot',
-                                   'bootloader'], cwd=bin_path)
-            subprocess.check_call(['./fastboot', '-s', device[0], 'flashall'],
-                                  cwd=bin_path)
+            subprocess.check_call(
+                ['./adb', '-s', device[0], 'reboot', 'bootloader'],
+                cwd=bin_path)
+            subprocess.check_call(
+                ['./fastboot', '-s', device[0], 'flashall'], cwd=bin_path)
         else:
             os.environ['ANDROID_SERIAL'] = device[0]
             subprocess.check_call(['./flashall'], cwd=flashall_path)
@@ -220,7 +258,6 @@
     clangxx_path = os.path.join(bin_path, 'clang++')
     clang_tidy_path = os.path.join(bin_path, 'clang-tidy')
 
-
     # Rename clang and clang++ to clang.real and clang++.real.
     # clang and clang-tidy may already be moved by this script if we use a
     # prebuilt clang. So we only move them if clang.real and clang-tidy.real
@@ -247,8 +284,12 @@
     # LLVM tool llvm-profdata from stage1 is needed to merge the collected
     # profiles
     build.build_stage1(stage1_install, build_llvm_tools=True)
-    build.build_stage2(stage1_install, stage2_install, build.STAGE2_TARGETS,
-                       use_lld=False, build_instrumented=instrumented)
+    build.build_stage2(
+        stage1_install,
+        stage2_install,
+        build.STAGE2_TARGETS,
+        use_lld=False,
+        build_instrumented=instrumented)
     build.build_runtimes(stage2_install)
     version = build.extract_clang_version(stage2_install)
     return stage2_install, version
@@ -269,9 +310,8 @@
 
         targets = [args.target] if args.target else TARGETS
         for target in targets:
-            build_target(args.android_path, clang_version, target,
-                         args.jobs, args.redirect_stderr, args.with_tidy,
-                         profiler)
+            build_target(args.android_path, clang_version, target, args.jobs,
+                         args.redirect_stderr, args.with_tidy, profiler)
 
         if profiler is not None:
             profiler.mergeProfiles()
diff --git a/utils.py b/utils.py
index 8f14148..94e64b4 100644
--- a/utils.py
+++ b/utils.py
@@ -33,11 +33,13 @@
 
 
 def rm_tree(dir):
+
     def chmod_and_retry(func, path, _):
         if not os.access(path, os.W_OK):
             os.chmod(path, stat.S_IWUSR)
             return func(path)
         raise
+
     shutil.rmtree(dir, onerror=chmod_and_retry)