1# Copyright 2018 The Bazel Authors. All rights reserved. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14"""Provides the base adapter functions.""" 15 16def make_adapter(aspect_attrs, adapt): 17 """Creates an Adapter. 18 19 Args: 20 aspect_attrs: A function that returns a list of attrs for the aspect. 21 adapt: A function that extracts and processes data from the target. 22 23 Returns: 24 A struct that represents an adapter. 25 """ 26 if not aspect_attrs: 27 fail("aspect_attrs is None.") 28 if not adapt: 29 fail("adapt is None.") 30 return struct( 31 aspect_attrs = aspect_attrs, 32 adapt = adapt, 33 ) 34