from aspa.data import ASPA def generate_bird(aspas: list[ASPA]) -> str: lines = [ 'function is_aspa_invalid_pair(int upstream_asn; int downstream_asn) {', ' case downstream_asn {' ] for aspa in aspas: if aspa.providers: asns = ', '.join(map(str, aspa.providers)) lines.append(f' {aspa.customer}: if upstream_asn !~ [{asns}] then return true;') else: lines.append(f' {aspa.customer}: return true;') lines += [ ' }', ' return false;', '}' ] return '\n'.join(lines)