Spaces:
Sleeping
Sleeping
File size: 3,267 Bytes
5046606 3fcd866 5046606 1063eae 5046606 a7b34d0 dcda834 ced084d dcda834 1891607 ffaaf4c 3fcd866 1063eae 44e4b40 1063eae d885298 52446a0 a91aa86 3fcd866 7f9027d 3fcd866 83e1bac 50a580c 83e1bac 16f206f a91aa86 e185680 dcda834 54dac96 ffaaf4c a91aa86 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
import numpy as np
import gradio as gr
import os
import pandas as pd
from datasets import load_dataset
from datasets import load_dataset
from datasets import Features
from datasets import Value
from datasets import Dataset
Secret_token = os.getenv('token')
dataset = load_dataset('FDSRashid/hadith_info',data_files = 'Basic_Edge_Information.csv', token = Secret_token, split = 'train')
dataset2 = load_dataset('FDSRashid/hadith_info',data_files = 'Taraf_Info.csv', token = Secret_token, split = 'train')
edge_info = dataset.to_pandas()
taraf_info = dataset2.to_pandas()
cities = taraf_info['City'].unique().tolist()
min_year = int(taraf_info['Year'].min())
max_year = int(taraf_info['Year'].max())
features = Features({'Rawi ID': Value('int32'), 'Famous Name': Value('string'), 'Narrator Rank': Value('string'), 'Number of Narrations': Value('string')})
narrator_bios = load_dataset("FDSRashid/hadith_info", data_files = 'Teacher_Bios.csv', token = Secret_token,features=features )
narrator_bios = narrator_bios['train'].to_pandas()
narrator_bios.loc[49845, 'Narrator Rank'] = 'رسول الله'
narrator_bios.loc[49845, 'Number of Narrations'] = 0
narrator_bios['Number of Narrations'] = narrator_bios['Number of Narrations'].astype(int)
narrator_bios.loc[49845, 'Number of Narrations'] = narrator_bios['Number of Narrations'].sum()
def subset_city_year(city, year1, year2):
if 'All' in city:
edges = taraf_info[(taraf_info['Year'] >= year1) & (taraf_info['Year'] <= year2)]
else:
edges = taraf_info[(taraf_info['Year'] >= year1) & (taraf_info['City'].isin(city)) & (taraf_info['Year'] <= year2)]
return edges
def subset_year(year = 50):
edges = taraf_info[(taraf_info['Year'] == year)]
return edges
def splitIsnad(dataframe):
teacher_student =dataframe['Edge_Name'].str.split(' TO ')
dataframe['Teacher'] = teacher_student.apply(lambda x: x[0])
dataframe['Student'] = teacher_student.apply(lambda x: x[1])
return dataframe
def get_narrators( city , year1, year2):
try:
df = subset_city_year(city, year1, year2)
narrators = edge_info[edge_info['Edge_ID'].isin(df['ID'])]
fixed = splitIsnad(narrators)
fixed['Teacher Reports'] = fixed['Teacher_ID'].apply(lambda x: narrator_bios[narrator_bios['Rawi ID']== x]['Number of Narrations'].to_list()[0])
fixed['Student Reports'] = fixed['Student_ID'].apply(lambda x: narrator_bios[narrator_bios['Rawi ID']== x]['Number of Narrations'].to_list()[0])
return fixed[['Teacher', 'Student', 'Teacher Reports', 'Student Reports', 'Isnads', 'Hadiths', 'Tarafs', 'Books']]
except Exception as e:
return str(e)
with gr.Blocks() as demo:
Places = gr.Dropdown(choices = cities + ['All'], value = ['المدينه', 'بغداد', 'كوفة', 'بصرة'], multiselect=True, label = 'Location')
First_Year = gr.Slider(min_year, max_year, value = 10, label = 'Begining', info = 'Choose the first year to display Narrators')
Last_Year = gr.Slider(min_year, max_year, value = 50, label = 'End', info = 'Choose the Last year to display Narrators')
btn = gr.Button('Submit')
btn.click(fn = get_narrators, inputs = [Places, First_Year, Last_Year], outputs = gr.DataFrame())
demo.launch() |