1*7594170eSAndroid Build Coastguard Worker#!/usr/bin/env python3 2*7594170eSAndroid Build Coastguard Worker# 3*7594170eSAndroid Build Coastguard Worker# Copyright (C) 2022 The Android Open Source Project 4*7594170eSAndroid Build Coastguard Worker# 5*7594170eSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 6*7594170eSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 7*7594170eSAndroid Build Coastguard Worker# You may obtain a copy of the License at 8*7594170eSAndroid Build Coastguard Worker# 9*7594170eSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 10*7594170eSAndroid Build Coastguard Worker# 11*7594170eSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 12*7594170eSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 13*7594170eSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*7594170eSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 15*7594170eSAndroid Build Coastguard Worker# limitations under the License.""" 16*7594170eSAndroid Build Coastguard Worker 17*7594170eSAndroid Build Coastguard Workerfrom abc import ABC, abstractmethod 18*7594170eSAndroid Build Coastguard Workerimport pathlib 19*7594170eSAndroid Build Coastguard Workerfrom typing import Callable 20*7594170eSAndroid Build Coastguard Worker 21*7594170eSAndroid Build Coastguard Worker# given a file, give a list of "information" about it 22*7594170eSAndroid Build Coastguard WorkerExtractInfo = Callable[[pathlib.Path], list[str]] 23*7594170eSAndroid Build Coastguard Worker 24*7594170eSAndroid Build Coastguard Workerclass Diff(ABC): 25*7594170eSAndroid Build Coastguard Worker @abstractmethod 26*7594170eSAndroid Build Coastguard Worker def diff(left_path: pathlib.Path, right_path: pathlib.Path) -> list[str]: 27*7594170eSAndroid Build Coastguard Worker """Returns a list of strings describing differences in `.o` files. 28*7594170eSAndroid Build Coastguard Worker Returns the empty list if these files are deemed "similar enough". 29*7594170eSAndroid Build Coastguard Worker """ 30*7594170eSAndroid Build Coastguard Worker pass 31