Loading Android.mk +11 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,17 @@ $(INTERNAL_PLATFORM_HIDDENAPI_WHITELIST): \ $(call commit-change-for-toc,$(INTERNAL_PLATFORM_HIDDENAPI_DARK_GREYLIST)) $(call commit-change-for-toc,$(INTERNAL_PLATFORM_HIDDENAPI_BLACKLIST)) $(INTERNAL_PLATFORM_HIDDENAPI_GREYLIST_METADATA): \ frameworks/base/tools/hiddenapi/merge_csv.py \ $(PRIVATE_METADATA_INPUTS) frameworks/base/tools/hiddenapi/merge_csv.py $(PRIVATE_METADATA_INPUTS) > $@ $(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_WHITELIST)) $(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST)) $(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_DARK_GREYLIST)) $(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_BLACKLIST)) $(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_GREYLIST_METADATA)) # Include subdirectory makefiles # ============================================================ Loading tools/hiddenapi/merge_csv.py 0 → 100755 +40 −0 Original line number Diff line number Diff line #!/usr/bin/env python # # Copyright (C) 2018 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """ Merge mutliple CSV files, possibly with different columns, writing to stdout. """ import csv import sys csv_readers = [ csv.DictReader(open(csv_file, 'rb'), delimiter=',', quotechar='|') for csv_file in sys.argv[1:] ] # Build union of all columns from source files: headers = set() for reader in csv_readers: headers = headers.union(reader.fieldnames) # Concatenate all files to output: out = csv.DictWriter(sys.stdout, delimiter=',', quotechar='|', fieldnames = sorted(headers)) out.writeheader() for reader in csv_readers: for row in reader: out.writerow(row) Loading
Android.mk +11 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,17 @@ $(INTERNAL_PLATFORM_HIDDENAPI_WHITELIST): \ $(call commit-change-for-toc,$(INTERNAL_PLATFORM_HIDDENAPI_DARK_GREYLIST)) $(call commit-change-for-toc,$(INTERNAL_PLATFORM_HIDDENAPI_BLACKLIST)) $(INTERNAL_PLATFORM_HIDDENAPI_GREYLIST_METADATA): \ frameworks/base/tools/hiddenapi/merge_csv.py \ $(PRIVATE_METADATA_INPUTS) frameworks/base/tools/hiddenapi/merge_csv.py $(PRIVATE_METADATA_INPUTS) > $@ $(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_WHITELIST)) $(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST)) $(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_DARK_GREYLIST)) $(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_BLACKLIST)) $(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_GREYLIST_METADATA)) # Include subdirectory makefiles # ============================================================ Loading
tools/hiddenapi/merge_csv.py 0 → 100755 +40 −0 Original line number Diff line number Diff line #!/usr/bin/env python # # Copyright (C) 2018 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """ Merge mutliple CSV files, possibly with different columns, writing to stdout. """ import csv import sys csv_readers = [ csv.DictReader(open(csv_file, 'rb'), delimiter=',', quotechar='|') for csv_file in sys.argv[1:] ] # Build union of all columns from source files: headers = set() for reader in csv_readers: headers = headers.union(reader.fieldnames) # Concatenate all files to output: out = csv.DictWriter(sys.stdout, delimiter=',', quotechar='|', fieldnames = sorted(headers)) out.writeheader() for reader in csv_readers: for row in reader: out.writerow(row)