Format python files using yapf

Change-Id: I8b7b97efb6bfdcceef9efc533cdaa0675ab7db40
diff --git a/tools/as_utils.py b/tools/as_utils.py
index 3c69d10..69f7562 100644
--- a/tools/as_utils.py
+++ b/tools/as_utils.py
@@ -10,229 +10,246 @@
 import utils
 
 if utils.is_python3():
-  from html.parser import HTMLParser
+    from html.parser import HTMLParser
 else:
-  from HTMLParser import HTMLParser
+    from HTMLParser import HTMLParser
 
 
 def add_r8_dependency(checkout_dir, temp_dir, minified):
-  build_file = os.path.join(checkout_dir, 'build.gradle')
-  assert os.path.isfile(build_file), (
-      'Expected a file to be present at {}'.format(build_file))
+    build_file = os.path.join(checkout_dir, 'build.gradle')
+    assert os.path.isfile(build_file), (
+        'Expected a file to be present at {}'.format(build_file))
 
-  with open(build_file) as f:
-    lines = f.readlines()
+    with open(build_file) as f:
+        lines = f.readlines()
 
-  added_r8_dependency = False
-  is_inside_dependencies = False
+    added_r8_dependency = False
+    is_inside_dependencies = False
 
-  with open(build_file, 'w') as f:
-    gradle_version = None
-    for line in lines:
-      stripped = line.strip()
-      if stripped == 'dependencies {':
-        assert not is_inside_dependencies, (
-            'Unexpected line with \'dependencies {\'')
-        is_inside_dependencies = True
-      if is_inside_dependencies:
-        if '/r8.jar' in stripped or '/r8lib.jar' in stripped:
-          # Skip line to avoid dependency on r8.jar
-          continue
-        elif 'com.android.tools.build:gradle:' in stripped:
-          gradle_version = stripped[stripped.rindex(':')+1:-1]
-          indent = ''.ljust(line.index('classpath'))
-          jar = os.path.join(temp_dir, 'r8lib.jar' if minified else 'r8.jar')
-          f.write('{}classpath files(\'{}\')\n'.format(indent, jar))
-          added_r8_dependency = True
-        elif stripped == '}':
-          is_inside_dependencies = False
-      f.write(line)
+    with open(build_file, 'w') as f:
+        gradle_version = None
+        for line in lines:
+            stripped = line.strip()
+            if stripped == 'dependencies {':
+                assert not is_inside_dependencies, (
+                    'Unexpected line with \'dependencies {\'')
+                is_inside_dependencies = True
+            if is_inside_dependencies:
+                if '/r8.jar' in stripped or '/r8lib.jar' in stripped:
+                    # Skip line to avoid dependency on r8.jar
+                    continue
+                elif 'com.android.tools.build:gradle:' in stripped:
+                    gradle_version = stripped[stripped.rindex(':') + 1:-1]
+                    indent = ''.ljust(line.index('classpath'))
+                    jar = os.path.join(temp_dir,
+                                       'r8lib.jar' if minified else 'r8.jar')
+                    f.write('{}classpath files(\'{}\')\n'.format(indent, jar))
+                    added_r8_dependency = True
+                elif stripped == '}':
+                    is_inside_dependencies = False
+            f.write(line)
 
-  assert added_r8_dependency, 'Unable to add R8 as a dependency'
-  assert gradle_version
-  assert LooseVersion(gradle_version) >= LooseVersion('3.2'), (
-      'Unsupported gradle version: {} (must use at least gradle '
-          + 'version 3.2)').format(gradle_version)
+    assert added_r8_dependency, 'Unable to add R8 as a dependency'
+    assert gradle_version
+    assert LooseVersion(gradle_version) >= LooseVersion('3.2'), (
+        'Unsupported gradle version: {} (must use at least gradle ' +
+        'version 3.2)').format(gradle_version)
+
 
 def add_settings_gradle(checkout_dir, name):
-  settings_file = os.path.join(checkout_dir, 'settings.gradle')
-  if os.path.isfile(settings_file):
-    return
+    settings_file = os.path.join(checkout_dir, 'settings.gradle')
+    if os.path.isfile(settings_file):
+        return
 
-  with open(settings_file, "w+") as f:
-    f.write("rootProject.name = '{}'\n".format(name))
+    with open(settings_file, "w+") as f:
+        f.write("rootProject.name = '{}'\n".format(name))
+
 
 def remove_r8_dependency(checkout_dir):
-  build_file = os.path.join(checkout_dir, 'build.gradle')
-  assert os.path.isfile(build_file), (
-      'Expected a file to be present at {}'.format(build_file))
-  with open(build_file) as f:
-    lines = f.readlines()
-  with open(build_file, 'w') as f:
-    for line in lines:
-      if ('/r8.jar' not in line) and ('/r8lib.jar' not in line):
-        f.write(line)
+    build_file = os.path.join(checkout_dir, 'build.gradle')
+    assert os.path.isfile(build_file), (
+        'Expected a file to be present at {}'.format(build_file))
+    with open(build_file) as f:
+        lines = f.readlines()
+    with open(build_file, 'w') as f:
+        for line in lines:
+            if ('/r8.jar' not in line) and ('/r8lib.jar' not in line):
+                f.write(line)
+
 
 def GetMinAndCompileSdk(app, checkout_dir, apk_reference):
-  compile_sdk = app.compile_sdk
-  min_sdk = app.min_sdk
+    compile_sdk = app.compile_sdk
+    min_sdk = app.min_sdk
 
-  if not compile_sdk or not min_sdk:
-    build_gradle_file = os.path.join(checkout_dir, app.module, 'build.gradle')
-    assert os.path.isfile(build_gradle_file), (
-        'Expected to find build.gradle file at {}'.format(build_gradle_file))
+    if not compile_sdk or not min_sdk:
+        build_gradle_file = os.path.join(checkout_dir, app.module,
+                                         'build.gradle')
+        assert os.path.isfile(build_gradle_file), (
+            'Expected to find build.gradle file at {}'.format(build_gradle_file)
+        )
 
-    # Attempt to find the sdk values from build.gradle.
-    with open(build_gradle_file) as f:
-      for line in f.readlines():
-        stripped = line.strip()
-        if stripped.startswith('compileSdkVersion '):
-          if not app.compile_sdk:
-            assert not compile_sdk
-            compile_sdk = int(stripped[len('compileSdkVersion '):])
-        elif stripped.startswith('minSdkVersion '):
-          if not app.min_sdk:
-            assert not min_sdk
-            min_sdk = int(stripped[len('minSdkVersion '):])
+        # Attempt to find the sdk values from build.gradle.
+        with open(build_gradle_file) as f:
+            for line in f.readlines():
+                stripped = line.strip()
+                if stripped.startswith('compileSdkVersion '):
+                    if not app.compile_sdk:
+                        assert not compile_sdk
+                        compile_sdk = int(stripped[len('compileSdkVersion '):])
+                elif stripped.startswith('minSdkVersion '):
+                    if not app.min_sdk:
+                        assert not min_sdk
+                        min_sdk = int(stripped[len('minSdkVersion '):])
 
-  assert min_sdk, (
-      'Expected to find `minSdkVersion` in {}'.format(build_gradle_file))
-  assert compile_sdk, (
-      'Expected to find `compileSdkVersion` in {}'.format(build_gradle_file))
+    assert min_sdk, (
+        'Expected to find `minSdkVersion` in {}'.format(build_gradle_file))
+    assert compile_sdk, (
+        'Expected to find `compileSdkVersion` in {}'.format(build_gradle_file))
 
-  return (min_sdk, compile_sdk)
+    return (min_sdk, compile_sdk)
+
 
 def IsGradleTaskName(x):
-  # Check that it is non-empty.
-  if not x:
-    return False
-  # Check that there is no whitespace.
-  for c in x:
-    if c.isspace():
-      return False
-  # Check that the first character following an optional ':' is a lower-case
-  # alphabetic character.
-  c = x[0]
-  if c == ':' and len(x) >= 2:
-    c = x[1]
-  return c.isalpha() and c.islower()
+    # Check that it is non-empty.
+    if not x:
+        return False
+    # Check that there is no whitespace.
+    for c in x:
+        if c.isspace():
+            return False
+    # Check that the first character following an optional ':' is a lower-case
+    # alphabetic character.
+    c = x[0]
+    if c == ':' and len(x) >= 2:
+        c = x[1]
+    return c.isalpha() and c.islower()
+
 
 def IsGradleCompilerTask(x, shrinker):
-  if 'r8' in shrinker:
-    assert 'transformClassesWithDexBuilderFor' not in x
-    assert 'transformDexArchiveWithDexMergerFor' not in x
-    return 'transformClassesAndResourcesWithR8For' in x
+    if 'r8' in shrinker:
+        assert 'transformClassesWithDexBuilderFor' not in x
+        assert 'transformDexArchiveWithDexMergerFor' not in x
+        return 'transformClassesAndResourcesWithR8For' in x
 
-  assert shrinker == 'pg'
-  return ('transformClassesAndResourcesWithProguard' in x
-      or 'transformClassesWithDexBuilderFor' in x
-      or 'transformDexArchiveWithDexMergerFor' in x)
+    assert shrinker == 'pg'
+    return ('transformClassesAndResourcesWithProguard' in x or
+            'transformClassesWithDexBuilderFor' in x or
+            'transformDexArchiveWithDexMergerFor' in x)
+
 
 def ListFiles(directory, predicate=None):
-  files = []
-  for root, directories, filenames in os.walk(directory):
-    for filename in filenames:
-      file = os.path.join(root, filename)
-      if predicate is None or predicate(file):
-        files.append(file)
-  return files
+    files = []
+    for root, directories, filenames in os.walk(directory):
+        for filename in filenames:
+            file = os.path.join(root, filename)
+            if predicate is None or predicate(file):
+                files.append(file)
+    return files
+
 
 def SetPrintConfigurationDirective(app, checkout_dir, destination):
-  proguard_config_file = FindProguardConfigurationFile(app, checkout_dir)
-  with open(proguard_config_file) as f:
-    lines = f.readlines()
-  with open(proguard_config_file, 'w') as f:
-    for line in lines:
-      if '-printconfiguration' not in line:
-        f.write(line)
-    # Check that there is a line-break at the end of the file or insert one.
-    if len(lines) and lines[-1].strip():
-      f.write('\n')
-    f.write('-printconfiguration {}\n'.format(destination))
+    proguard_config_file = FindProguardConfigurationFile(app, checkout_dir)
+    with open(proguard_config_file) as f:
+        lines = f.readlines()
+    with open(proguard_config_file, 'w') as f:
+        for line in lines:
+            if '-printconfiguration' not in line:
+                f.write(line)
+        # Check that there is a line-break at the end of the file or insert one.
+        if len(lines) and lines[-1].strip():
+            f.write('\n')
+        f.write('-printconfiguration {}\n'.format(destination))
+
 
 def FindProguardConfigurationFile(app, checkout_dir):
-  candidates = [
-      'proguard.cfg',
-      'proguard-rules.pro',
-      'proguard-rules.txt',
-      'proguard-project.txt']
-  for candidate in candidates:
-    proguard_config_file = os.path.join(checkout_dir, app.module, candidate)
-    if os.path.isfile(proguard_config_file):
-      return proguard_config_file
-  # Currently assuming that the Proguard configuration file can be found at
-  # one of the predefined locations.
-  assert False, 'Unable to find Proguard configuration file'
+    candidates = [
+        'proguard.cfg', 'proguard-rules.pro', 'proguard-rules.txt',
+        'proguard-project.txt'
+    ]
+    for candidate in candidates:
+        proguard_config_file = os.path.join(checkout_dir, app.module, candidate)
+        if os.path.isfile(proguard_config_file):
+            return proguard_config_file
+    # Currently assuming that the Proguard configuration file can be found at
+    # one of the predefined locations.
+    assert False, 'Unable to find Proguard configuration file'
+
 
 def Move(src, dst, quiet=False):
-  if not quiet:
-    print('Moving `{}` to `{}`'.format(src, dst))
-  dst_parent = os.path.dirname(dst)
-  if not os.path.isdir(dst_parent):
-    os.makedirs(dst_parent)
-  elif os.path.isdir(dst):
-    shutil.rmtree(dst)
-  elif os.path.isfile(dst):
-    os.remove(dst)
-  shutil.move(src, dst)
+    if not quiet:
+        print('Moving `{}` to `{}`'.format(src, dst))
+    dst_parent = os.path.dirname(dst)
+    if not os.path.isdir(dst_parent):
+        os.makedirs(dst_parent)
+    elif os.path.isdir(dst):
+        shutil.rmtree(dst)
+    elif os.path.isfile(dst):
+        os.remove(dst)
+    shutil.move(src, dst)
+
 
 def MoveDir(src, dst, quiet=False):
-  assert os.path.isdir(src)
-  Move(src, dst, quiet=quiet)
+    assert os.path.isdir(src)
+    Move(src, dst, quiet=quiet)
+
 
 def MoveFile(src, dst, quiet=False):
-  assert os.path.isfile(src), "Expected a file to be present at " + src
-  Move(src, dst, quiet=quiet)
+    assert os.path.isfile(src), "Expected a file to be present at " + src
+    Move(src, dst, quiet=quiet)
+
 
 def MoveProfileReportTo(dest_dir, build_stdout, quiet=False):
-  html_file = None
-  profile_message = 'See the profiling report at: '
-  # We are not interested in the profiling report for buildSrc.
-  for line in build_stdout:
-    if (profile_message in line) and ('buildSrc' not in line):
-      assert not html_file, "Only one report should be created"
-      html_file = line[len(profile_message):]
-      if html_file.startswith('file://'):
-        html_file = html_file[len('file://'):]
+    html_file = None
+    profile_message = 'See the profiling report at: '
+    # We are not interested in the profiling report for buildSrc.
+    for line in build_stdout:
+        if (profile_message in line) and ('buildSrc' not in line):
+            assert not html_file, "Only one report should be created"
+            html_file = line[len(profile_message):]
+            if html_file.startswith('file://'):
+                html_file = html_file[len('file://'):]
 
-  if not html_file:
-    return
+    if not html_file:
+        return
 
-  assert os.path.isfile(html_file), 'Expected to find HTML file at {}'.format(
-      html_file)
-  MoveFile(html_file, os.path.join(dest_dir, 'index.html'), quiet=quiet)
+    assert os.path.isfile(html_file), 'Expected to find HTML file at {}'.format(
+        html_file)
+    MoveFile(html_file, os.path.join(dest_dir, 'index.html'), quiet=quiet)
 
-  html_dir = os.path.dirname(html_file)
-  for dir_name in ['css', 'js']:
-    MoveDir(os.path.join(html_dir, dir_name), os.path.join(dest_dir, dir_name),
-        quiet=quiet)
+    html_dir = os.path.dirname(html_file)
+    for dir_name in ['css', 'js']:
+        MoveDir(os.path.join(html_dir, dir_name),
+                os.path.join(dest_dir, dir_name),
+                quiet=quiet)
+
 
 def MoveXMLTestResultFileTo(xml_test_result_dest, test_stdout, quiet=False):
-  xml_test_result_file = None
-  xml_result_reporter_message = 'XML test result file generated at '
-  for line in test_stdout:
-    if xml_result_reporter_message in line:
-      index_from = (
-          line.index(xml_result_reporter_message)
-              + len(xml_result_reporter_message))
-      index_to = line.index('.xml') + len('.xml')
-      xml_test_result_file = line[index_from:index_to]
-      break
+    xml_test_result_file = None
+    xml_result_reporter_message = 'XML test result file generated at '
+    for line in test_stdout:
+        if xml_result_reporter_message in line:
+            index_from = (line.index(xml_result_reporter_message) +
+                          len(xml_result_reporter_message))
+            index_to = line.index('.xml') + len('.xml')
+            xml_test_result_file = line[index_from:index_to]
+            break
 
-  assert os.path.isfile(xml_test_result_file), (
-      'Expected to find XML file at {}'.format(xml_test_result_file))
+    assert os.path.isfile(xml_test_result_file), (
+        'Expected to find XML file at {}'.format(xml_test_result_file))
 
-  MoveFile(xml_test_result_file, xml_test_result_dest, quiet=quiet)
+    MoveFile(xml_test_result_file, xml_test_result_dest, quiet=quiet)
+
 
 def ParseProfileReport(profile_dir):
-  html_file = os.path.join(profile_dir, 'index.html')
-  assert os.path.isfile(html_file)
+    html_file = os.path.join(profile_dir, 'index.html')
+    assert os.path.isfile(html_file)
 
-  parser = ProfileReportParser()
-  with open(html_file) as f:
-    for line in f.readlines():
-      parser.feed(line)
-  return parser.result
+    parser = ProfileReportParser()
+    with open(html_file) as f:
+        for line in f.readlines():
+            parser.feed(line)
+    return parser.result
+
 
 # A simple HTML parser that recognizes the following pattern:
 #
@@ -242,51 +259,50 @@
 # <td></td>
 # </tr>
 class ProfileReportParser(HTMLParser):
-  def __init__(self):
-    HTMLParser.__init__(self)
-    self.entered_table_row = False
-    self.entered_task_name_cell = False
-    self.entered_duration_cell = False
 
-    self.current_task_name = None
-    self.current_duration = None
+    def __init__(self):
+        HTMLParser.__init__(self)
+        self.entered_table_row = False
+        self.entered_task_name_cell = False
+        self.entered_duration_cell = False
 
-    self.result = {}
+        self.current_task_name = None
+        self.current_duration = None
 
-  def handle_starttag(self, tag, attrs):
-    entered_table_row_before = self.entered_table_row
-    entered_task_name_cell_before = self.entered_task_name_cell
+        self.result = {}
 
-    self.entered_table_row = (tag == 'tr')
-    self.entered_task_name_cell = (tag == 'td' and entered_table_row_before)
-    self.entered_duration_cell = (
-        self.current_task_name
-            and tag == 'td'
-            and entered_task_name_cell_before)
+    def handle_starttag(self, tag, attrs):
+        entered_table_row_before = self.entered_table_row
+        entered_task_name_cell_before = self.entered_task_name_cell
 
-  def handle_endtag(self, tag):
-    if tag == 'tr':
-      if self.current_task_name and self.current_duration:
-        self.result[self.current_task_name] = self.current_duration
-      self.current_task_name = None
-      self.current_duration = None
-    self.entered_table_row = False
+        self.entered_table_row = (tag == 'tr')
+        self.entered_task_name_cell = (tag == 'td' and entered_table_row_before)
+        self.entered_duration_cell = (self.current_task_name and tag == 'td' and
+                                      entered_task_name_cell_before)
 
-  def handle_data(self, data):
-    stripped = data.strip()
-    if not stripped:
-      return
-    if self.entered_task_name_cell:
-      if IsGradleTaskName(stripped):
-        self.current_task_name = stripped
-    elif self.entered_duration_cell and stripped.endswith('s'):
-      duration = stripped[:-1]
-      if 'm' in duration:
-        tmp = duration.split('m')
-        minutes = int(tmp[0])
-        seconds = float(tmp[1])
-      else:
-        minutes = 0
-        seconds = float(duration)
-      self.current_duration = 60 * minutes + seconds
-    self.entered_table_row = False
+    def handle_endtag(self, tag):
+        if tag == 'tr':
+            if self.current_task_name and self.current_duration:
+                self.result[self.current_task_name] = self.current_duration
+            self.current_task_name = None
+            self.current_duration = None
+        self.entered_table_row = False
+
+    def handle_data(self, data):
+        stripped = data.strip()
+        if not stripped:
+            return
+        if self.entered_task_name_cell:
+            if IsGradleTaskName(stripped):
+                self.current_task_name = stripped
+        elif self.entered_duration_cell and stripped.endswith('s'):
+            duration = stripped[:-1]
+            if 'm' in duration:
+                tmp = duration.split('m')
+                minutes = int(tmp[0])
+                seconds = float(tmp[1])
+            else:
+                minutes = 0
+                seconds = float(duration)
+            self.current_duration = 60 * minutes + seconds
+        self.entered_table_row = False