""" Banking77 Intent Mapping Maps label numbers (0-76) to intent names """ INTENT_LABELS = [ "activate_my_card", "age_limit", "apple_pay_or_google_pay", "atm_support", "automatic_top_up", "balance_not_updated_after_bank_transfer", "balance_not_updated_after_cheque_or_cash_deposit", "beneficiary_not_allowed", "cancel_transfer", "card_about_to_expire", "card_acceptance", "card_arrival", "card_delivery_estimate", "card_linking", "card_not_working", "card_payment_fee_charged", "card_payment_not_recognised", "card_payment_wrong_exchange_rate", "card_swallowed", "cash_withdrawal_charge", "cash_withdrawal_not_recognised", "change_pin", "compromised_card", "contactless_not_working", "country_support", "declined_card_payment", "declined_cash_withdrawal", "declined_transfer", "direct_debit_payment_not_recognised", "disposable_card_limits", "edit_personal_details", "exchange_charge", "exchange_rate", "exchange_via_app", "extra_charge_on_statement", "failed_transfer", "fiat_currency_support", "get_disposable_virtual_card", "get_physical_card", "getting_spare_card", "getting_virtual_card", "lost_or_stolen_card", "lost_or_stolen_phone", "order_physical_card", "passcode_forgotten", "pending_card_payment", "pending_cash_withdrawal", "pending_top_up", "pending_transfer", "pin_blocked", "receiving_money", "Refund_not_showing_up", "request_refund", "reverted_card_payment?", "supported_cards_and_currencies", "terminate_account", "top_up_by_bank_transfer_charge", "top_up_by_card_charge", "top_up_by_cash_or_cheque", "top_up_failed", "top_up_limits", "top_up_reverted", "topping_up_by_card", "transaction_charged_twice", "transfer_fee_charged", "transfer_into_account", "transfer_not_received_by_recipient", "transfer_timing", "unable_to_verify_identity", "verify_my_identity", "verify_source_of_funds", "verify_top_up", "virtual_card_not_working", "visa_or_mastercard", "why_verify_identity", "wrong_amount_of_cash_received", "wrong_exchange_rate_for_cash_withdrawal" ] def get_intent(label_number): """ Get intent name from label number. Args: label_number (int): Label from 0 to 76 Returns: str: Intent name Example: >>> get_intent(0) 'activate_my_card' >>> get_intent(25) 'declined_card_payment' """ if 0 <= label_number <= 76: return INTENT_LABELS[label_number] else: raise ValueError(f"Label must be between 0 and 76, got {label_number}") def get_label(intent_name): """ Get label number from intent name. Args: intent_name (str): Intent name Returns: int: Label number (0-76) Example: >>> get_label('activate_my_card') 0 >>> get_label('declined_card_payment') 25 """ try: return INTENT_LABELS.index(intent_name) except ValueError: raise ValueError(f"Intent '{intent_name}' not found in labels") # Quick access def show_all_intents(): """Display all 77 intents with their labels""" for i, intent in enumerate(INTENT_LABELS): print(f"{i}\t{intent}") if __name__ == "__main__": # Test the functions print("Testing get_intent:") print(f"Label 0: {get_intent(0)}") print(f"Label 25: {get_intent(25)}") print(f"Label 76: {get_intent(76)}") print("\nTesting get_label:") print(f"'activate_my_card': {get_label('activate_my_card')}") print(f"'declined_card_payment': {get_label('declined_card_payment')}")