diff --git a/cc/ndk_api_coverage_parser/__init__.py b/cc/ndk_api_coverage_parser/__init__.py index 7817c7832..8b9cd66fa 100755 --- a/cc/ndk_api_coverage_parser/__init__.py +++ b/cc/ndk_api_coverage_parser/__init__.py @@ -21,7 +21,12 @@ import os import sys from xml.etree.ElementTree import Element, SubElement, tostring -from symbolfile import ALL_ARCHITECTURES, FUTURE_API_LEVEL, MultiplyDefinedSymbolError, SymbolFileParser +from symbolfile import ( + ALL_ARCHITECTURES, + FUTURE_API_LEVEL, + MultiplyDefinedSymbolError, + SymbolFileParser, +) ROOT_ELEMENT_TAG = 'ndk-library' @@ -63,6 +68,7 @@ def parse_tags(tags): class XmlGenerator(object): """Output generator that writes parsed symbol file to a xml file.""" + def __init__(self, output_file): self.output_file = output_file @@ -74,10 +80,14 @@ class XmlGenerator(object): continue version_attributes = parse_tags(version.tags) _, _, postfix = version.name.partition('_') - is_platform = postfix == 'PRIVATE' or postfix == 'PLATFORM' + is_platform = postfix in ('PRIVATE' , 'PLATFORM') is_deprecated = postfix == 'DEPRECATED' - version_attributes.update({PLATFORM_ATTRIBUTE_KEY: str(is_platform)}) - version_attributes.update({DEPRECATED_ATTRIBUTE_KEY: str(is_deprecated)}) + version_attributes.update( + {PLATFORM_ATTRIBUTE_KEY: str(is_platform)} + ) + version_attributes.update( + {DEPRECATED_ATTRIBUTE_KEY: str(is_deprecated)} + ) for symbol in version.symbols: if VARIABLE_TAG in symbol.tags: continue @@ -103,13 +113,20 @@ def parse_args(): """Parses and returns command line arguments.""" parser = argparse.ArgumentParser() - parser.add_argument('symbol_file', type=os.path.realpath, help='Path to symbol file.') parser.add_argument( - 'output_file', type=os.path.realpath, - help='The output parsed api coverage file.') + 'symbol_file', type=os.path.realpath, help='Path to symbol file.' + ) parser.add_argument( - '--api-map', type=os.path.realpath, required=True, - help='Path to the API level map JSON file.') + 'output_file', + type=os.path.realpath, + help='The output parsed api coverage file.', + ) + parser.add_argument( + '--api-map', + type=os.path.realpath, + required=True, + help='Path to the API level map JSON file.', + ) return parser.parse_args() @@ -122,13 +139,15 @@ def main(): with open(args.symbol_file) as symbol_file: try: - versions = SymbolFileParser(symbol_file, api_map, "", FUTURE_API_LEVEL, - True, True).parse() + versions = SymbolFileParser( + symbol_file, api_map, "", FUTURE_API_LEVEL, True, True + ).parse() except MultiplyDefinedSymbolError as ex: sys.exit('{}: error: {}'.format(args.symbol_file, ex)) generator = XmlGenerator(args.output_file) generator.write(versions) + if __name__ == '__main__': main() diff --git a/cc/ndk_api_coverage_parser/test_ndk_api_coverage_parser.py b/cc/ndk_api_coverage_parser/test_ndk_api_coverage_parser.py index 3ec14c10a..141059c7d 100644 --- a/cc/ndk_api_coverage_parser/test_ndk_api_coverage_parser.py +++ b/cc/ndk_api_coverage_parser/test_ndk_api_coverage_parser.py @@ -50,10 +50,12 @@ def etree_equal(elem1, elem2): return False return all(etree_equal(c1, c2) for c1, c2 in zip(elem1, elem2)) - +# pylint: disable=line-too-long class ApiCoverageSymbolFileParserTest(unittest.TestCase): def test_parse(self): - input_file = io.StringIO(textwrap.dedent(u"""\ + input_file = io.StringIO( + textwrap.dedent( + u"""\ LIBLOG { # introduced-arm64=24 introduced-x86=24 introduced-x86_64=24 global: android_name_to_log_id; # apex llndk introduced=23 @@ -64,22 +66,28 @@ class ApiCoverageSymbolFileParserTest(unittest.TestCase): local: *; }; - + LIBLOG_PLATFORM { android_fdtrack; # llndk android_net; # introduced=23 }; - + LIBLOG_FOO { # var android_var; }; - """)) - parser = SymbolFileParser(input_file, {}, "", FUTURE_API_LEVEL, True, True) + """ + ) + ) + parser = SymbolFileParser( + input_file, {}, "", FUTURE_API_LEVEL, True, True + ) generator = nparser.XmlGenerator(io.StringIO()) result = generator.convertToXml(parser.parse()) - expected = fromstring('') + expected = fromstring( + '' + ) self.assertTrue(etree_equal(expected, result)) - +# pylint: enable=line-too-long def main(): suite = unittest.TestLoader().loadTestsFromName(__name__)