1befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# Copyright (C) 2017 The Android Open Source Project 2befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# 3befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# Licensed under the Apache License, Version 2.0 (the "License"); 4befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# you may not use this file except in compliance with the License. 5befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# You may obtain a copy of the License at 6befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# 7befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# http://www.apache.org/licenses/LICENSE-2.0 8befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# 9befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# Unless required by applicable law or agreed to in writing, software 10befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# distributed under the License is distributed on an "AS IS" BASIS, 11befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# See the License for the specific language governing permissions and 13befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian# limitations under the License. 14befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian 15befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian'''Utility functions for crypto doc updating tools.''' 16befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian 17befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanianimport json 18befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian 19befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian 20befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartaniandef load_json(filename): 21befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian '''Returns an object containing the JSON data from the provided file.''' 22befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian f = open(filename) 23befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian # JSON doesn't allow comments, but we have some header docs in our file, 24befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian # so strip comments out before parsing 25befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian stripped_contents = '' 26befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian for line in f: 27befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian if not line.strip().startswith('#'): 28befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian stripped_contents += line 29befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian data = json.loads(stripped_contents) 30befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian f.close() 31befc86a711b876ed6523fbe453dfa7a9adb345afAdam Vartanian return data 3222051136d1344e34c05659420bc49372040bd75eAdam Vartanian 3322051136d1344e34c05659420bc49372040bd75eAdam Vartanian 3422051136d1344e34c05659420bc49372040bd75eAdam Vartaniandef find_by_name(seq, name): 3522051136d1344e34c05659420bc49372040bd75eAdam Vartanian """Returns the first element in seq with the given name.""" 3622051136d1344e34c05659420bc49372040bd75eAdam Vartanian for item in seq: 3722051136d1344e34c05659420bc49372040bd75eAdam Vartanian if item['name'] == name: 3822051136d1344e34c05659420bc49372040bd75eAdam Vartanian return item 3922051136d1344e34c05659420bc49372040bd75eAdam Vartanian return None 40