Format python files using yapf
Change-Id: I8b7b97efb6bfdcceef9efc533cdaa0675ab7db40
diff --git a/tools/google-java-format-diff.py b/tools/google-java-format-diff.py
index c9c3dc3..c3d89ca 100755
--- a/tools/google-java-format-diff.py
+++ b/tools/google-java-format-diff.py
@@ -8,7 +8,6 @@
# License. See LICENSE.TXT for details.
#
#===------------------------------------------------------------------------===#
-
"""
google-java-format Diff Reformatter
============================
@@ -36,122 +35,145 @@
import sys
from shutil import which
+
def main():
- parser = argparse.ArgumentParser(description=
- 'Reformat changed lines in diff. Without -i '
- 'option just output the diff that would be '
- 'introduced.')
- parser.add_argument('-i', action='store_true', default=False,
- help='apply edits to files instead of displaying a diff')
+ parser = argparse.ArgumentParser(
+ description='Reformat changed lines in diff. Without -i '
+ 'option just output the diff that would be '
+ 'introduced.')
+ parser.add_argument(
+ '-i',
+ action='store_true',
+ default=False,
+ help='apply edits to files instead of displaying a diff')
- parser.add_argument('-p', metavar='NUM', default=0,
- help='strip the smallest prefix containing P slashes')
- parser.add_argument('-regex', metavar='PATTERN', default=None,
- help='custom pattern selecting file paths to reformat '
- '(case sensitive, overrides -iregex)')
- parser.add_argument('-iregex', metavar='PATTERN', default=r'.*\.java',
- help='custom pattern selecting file paths to reformat '
- '(case insensitive, overridden by -regex)')
- parser.add_argument('-v', '--verbose', action='store_true',
- help='be more verbose, ineffective without -i')
- parser.add_argument('-a', '--aosp', action='store_true',
- help='use AOSP style instead of Google Style (4-space indentation)')
- parser.add_argument('--skip-sorting-imports', action='store_true',
- help='do not fix the import order')
- parser.add_argument('--skip-removing-unused-imports', action='store_true',
- help='do not remove ununsed imports')
- parser.add_argument(
- '--skip-javadoc-formatting',
- action='store_true',
- default=False,
- help='do not reformat javadoc')
- parser.add_argument('-b', '--binary', help='path to google-java-format binary')
- parser.add_argument('--google-java-format-jar', metavar='ABSOLUTE_PATH', default=None,
- help='use a custom google-java-format jar')
+ parser.add_argument('-p',
+ metavar='NUM',
+ default=0,
+ help='strip the smallest prefix containing P slashes')
+ parser.add_argument('-regex',
+ metavar='PATTERN',
+ default=None,
+ help='custom pattern selecting file paths to reformat '
+ '(case sensitive, overrides -iregex)')
+ parser.add_argument('-iregex',
+ metavar='PATTERN',
+ default=r'.*\.java',
+ help='custom pattern selecting file paths to reformat '
+ '(case insensitive, overridden by -regex)')
+ parser.add_argument('-v',
+ '--verbose',
+ action='store_true',
+ help='be more verbose, ineffective without -i')
+ parser.add_argument(
+ '-a',
+ '--aosp',
+ action='store_true',
+ help='use AOSP style instead of Google Style (4-space indentation)')
+ parser.add_argument('--skip-sorting-imports',
+ action='store_true',
+ help='do not fix the import order')
+ parser.add_argument('--skip-removing-unused-imports',
+ action='store_true',
+ help='do not remove ununsed imports')
+ parser.add_argument('--skip-javadoc-formatting',
+ action='store_true',
+ default=False,
+ help='do not reformat javadoc')
+ parser.add_argument('-b',
+ '--binary',
+ help='path to google-java-format binary')
+ parser.add_argument('--google-java-format-jar',
+ metavar='ABSOLUTE_PATH',
+ default=None,
+ help='use a custom google-java-format jar')
- args = parser.parse_args()
+ args = parser.parse_args()
- # Extract changed lines for each file.
- filename = None
- lines_by_file = {}
+ # Extract changed lines for each file.
+ filename = None
+ lines_by_file = {}
- for line in sys.stdin:
- match = re.search('^\+\+\+\ (.*?/){%s}(\S*)' % args.p, line)
- if match:
- filename = match.group(2)
- if filename == None:
- continue
+ for line in sys.stdin:
+ match = re.search('^\+\+\+\ (.*?/){%s}(\S*)' % args.p, line)
+ if match:
+ filename = match.group(2)
+ if filename == None:
+ continue
- if args.regex is not None:
- if not re.match('^%s$' % args.regex, filename):
- continue
+ if args.regex is not None:
+ if not re.match('^%s$' % args.regex, filename):
+ continue
+ else:
+ if not re.match('^%s$' % args.iregex, filename, re.IGNORECASE):
+ continue
+
+ match = re.search('^@@.*\+(\d+)(,(\d+))?', line)
+ if match:
+ start_line = int(match.group(1))
+ line_count = 1
+ if match.group(3):
+ line_count = int(match.group(3))
+ if line_count == 0:
+ continue
+ end_line = start_line + line_count - 1
+ lines_by_file.setdefault(filename, []).extend(
+ ['-lines', str(start_line) + ':' + str(end_line)])
+
+ if args.binary:
+ base_command = [args.binary]
+ elif args.google_java_format_jar:
+ base_command = [
+ os.path.join('third_party', 'openjdk', 'jdk-17', 'linux', 'bin',
+ 'java'), '-jar',
+ '--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED',
+ '--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED',
+ '--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED',
+ '--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED',
+ '--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED',
+ '--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED',
+ args.google_java_format_jar
+ ]
else:
- if not re.match('^%s$' % args.iregex, filename, re.IGNORECASE):
- continue
+ binary = which('google-java-format') or '/usr/bin/google-java-format'
+ base_command = [binary]
- match = re.search('^@@.*\+(\d+)(,(\d+))?', line)
- if match:
- start_line = int(match.group(1))
- line_count = 1
- if match.group(3):
- line_count = int(match.group(3))
- if line_count == 0:
- continue
- end_line = start_line + line_count - 1;
- lines_by_file.setdefault(filename, []).extend(
- ['-lines', str(start_line) + ':' + str(end_line)])
+ # Reformat files containing changes in place.
+ for filename, lines in lines_by_file.items():
+ if args.i and args.verbose:
+ print('Formatting', filename)
+ command = base_command[:]
+ if args.i:
+ command.append('-i')
+ if args.aosp:
+ command.append('--aosp')
+ if args.skip_sorting_imports:
+ command.append('--skip-sorting-imports')
+ if args.skip_removing_unused_imports:
+ command.append('--skip-removing-unused-imports')
+ if args.skip_javadoc_formatting:
+ command.append('--skip-javadoc-formatting')
+ command.extend(lines)
+ command.append(filename)
+ p = subprocess.Popen(command,
+ stdout=subprocess.PIPE,
+ stderr=None,
+ stdin=subprocess.PIPE)
+ stdout, stderr = p.communicate()
+ if p.returncode != 0:
+ sys.exit(p.returncode)
- if args.binary:
- base_command = [args.binary]
- elif args.google_java_format_jar:
- base_command = [
- os.path.join(
- 'third_party', 'openjdk', 'jdk-17', 'linux', 'bin', 'java'),
- '-jar',
- '--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED',
- '--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED',
- '--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED',
- '--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED',
- '--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED',
- '--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED',
- args.google_java_format_jar]
- else:
- binary = which('google-java-format') or '/usr/bin/google-java-format'
- base_command = [binary]
+ if not args.i:
+ with open(filename) as f:
+ code = f.readlines()
+ formatted_code = io.StringIO(stdout.decode('utf-8')).readlines()
+ diff = difflib.unified_diff(code, formatted_code, filename,
+ filename, '(before formatting)',
+ '(after formatting)')
+ diff_string = ''.join(diff)
+ if len(diff_string) > 0:
+ sys.stdout.write(diff_string)
- # Reformat files containing changes in place.
- for filename, lines in lines_by_file.items():
- if args.i and args.verbose:
- print('Formatting', filename)
- command = base_command[:]
- if args.i:
- command.append('-i')
- if args.aosp:
- command.append('--aosp')
- if args.skip_sorting_imports:
- command.append('--skip-sorting-imports')
- if args.skip_removing_unused_imports:
- command.append('--skip-removing-unused-imports')
- if args.skip_javadoc_formatting:
- command.append('--skip-javadoc-formatting')
- command.extend(lines)
- command.append(filename)
- p = subprocess.Popen(command, stdout=subprocess.PIPE,
- stderr=None, stdin=subprocess.PIPE)
- stdout, stderr = p.communicate()
- if p.returncode != 0:
- sys.exit(p.returncode);
-
- if not args.i:
- with open(filename) as f:
- code = f.readlines()
- formatted_code = io.StringIO(stdout.decode('utf-8')).readlines()
- diff = difflib.unified_diff(code, formatted_code,
- filename, filename,
- '(before formatting)', '(after formatting)')
- diff_string = ''.join(diff)
- if len(diff_string) > 0:
- sys.stdout.write(diff_string)
if __name__ == '__main__':
- main()
+ main()