import gradio as gr import os def load_surah(surah_name_with_number, quran_data): """ Load verses and word cloud for a specific Surah. Args: surah_name_with_number (str): Format: "number. Surah Name" quran_data (pd.DataFrame): The Quran dataset Returns: tuple: (list of verses, word cloud image path) """ surah_number = int(surah_name_with_number.split('.')[0]) surah_name = surah_name_with_number.split('. ')[1] surah_verses = quran_data[quran_data['Surah'] == surah_number]['Text'].tolist() word_cloud_path = f"word_cloud/surah_{surah_number}_{surah_name}.png" return surah_verses, word_cloud_path def display_surah(surah_name_with_number, quran_data): """ Get the verses text and word cloud for display. Args: surah_name_with_number (str): Format: "number. Surah Name" quran_data (pd.DataFrame): The Quran dataset Returns: tuple: (verses text, word cloud image path) """ verses, word_cloud_path = load_surah(surah_name_with_number, quran_data) verses_text = "\n".join(verses) return verses_text, word_cloud_path def create_surah_tab(quran_data, surah_names_list): """ Create the Surah tab interface with description and display components. Args: quran_data (pd.DataFrame): The Quran dataset surah_names_list (list): List of formatted Surah names Returns: gr.Tab: The configured Surah tab """ with gr.Tab("Surah") as tab: gr.Markdown("# Surah Explorer") gr.Markdown("""