Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -308,6 +308,8 @@ def visualize_hadith_isnad(df, yaxis):
|
|
308 |
|
309 |
def visualize_narrator_taraf(taraf_num, narrator, yaxis):
|
310 |
taraf = matn_info[matn_info['taraf_ID'] == taraf_num]
|
|
|
|
|
311 |
hadith_cleaned = isnad_info['Tarafs Cleaned'].apply(lambda x: taraf_num in x)
|
312 |
isnad_hadith = isnad_info[hadith_cleaned]
|
313 |
isnad_hadith['Teacher'] = isnad_hadith['Source'].apply(lambda x: narrator_bios[narrator_bios['Rawi ID'].astype(int) == int(x)]['Famous Name'].to_list())
|
@@ -326,12 +328,21 @@ def visualize_narrator_taraf(taraf_num, narrator, yaxis):
|
|
326 |
isnad_pos = nx.nx_agraph.graphviz_layout(G, prog='dot')
|
327 |
|
328 |
matns_with_narrator = []
|
|
|
329 |
for i in range(len(taraf_hadith_split)):
|
330 |
isnad_in_hadith1 = isnad_hadith['Hadiths Cleaned'].apply(lambda x: taraf_hadith_split[i] in x )
|
331 |
isnad_hadith1 = isnad_hadith[isnad_in_hadith1]
|
332 |
G1 = nx.from_pandas_edgelist(isnad_hadith1, source = 'Source', target = 'Destination', create_using = nx.DiGraph())
|
|
|
333 |
if narrator in list(G1.nodes):
|
334 |
matns_with_narrator.append(taraf_hadith[i])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
335 |
|
336 |
narrator_matn_info = taraf[taraf['bookid_hadithid'].isin(matns_with_narrator)]
|
337 |
|
@@ -368,6 +379,8 @@ def visualize_narrator_taraf(taraf_num, narrator, yaxis):
|
|
368 |
|
369 |
if node == '99999':
|
370 |
net.add_node(node, font = {'size':50, 'color': 'black'}, color = '#000000', label = f'{node_name} \n ID: {node} - Gen {student_gen}', x= pos[0]*x_stretch, y= -1*pos[1]*y_stretch, size= 70)
|
|
|
|
|
371 |
else:
|
372 |
net.add_node(node, font = {'size':30, 'color': 'red'}, color = value_to_hex(student_narrations), label = f'{node_name} \n {student_rank} \n ID: {node} - Gen {student_gen}', x= pos[0]*x_stretch, y= -1*pos[1]*y_stretch, size= 50)
|
373 |
for edge in G.edges:
|
@@ -382,7 +395,7 @@ def visualize_narrator_taraf(taraf_num, narrator, yaxis):
|
|
382 |
display-capture; encrypted-media;" sandbox="allow-modals allow-forms
|
383 |
allow-scripts allow-same-origin allow-popups
|
384 |
allow-top-navigation-by-user-activation allow-downloads" allowfullscreen=""
|
385 |
-
allowpaymentrequest="" frameborder="0" srcdoc='{html}'></iframe>""" , narrator_matn_info[['matn', 'Book_Name', 'Author', 'Book_ID', 'Hadith Number']]
|
386 |
|
387 |
|
388 |
|
|
|
308 |
|
309 |
def visualize_narrator_taraf(taraf_num, narrator, yaxis):
|
310 |
taraf = matn_info[matn_info['taraf_ID'] == taraf_num]
|
311 |
+
num_hadith = taraf.shape[0]
|
312 |
+
taraf['Index'] = np.arange(num_hadith)
|
313 |
hadith_cleaned = isnad_info['Tarafs Cleaned'].apply(lambda x: taraf_num in x)
|
314 |
isnad_hadith = isnad_info[hadith_cleaned]
|
315 |
isnad_hadith['Teacher'] = isnad_hadith['Source'].apply(lambda x: narrator_bios[narrator_bios['Rawi ID'].astype(int) == int(x)]['Famous Name'].to_list())
|
|
|
328 |
isnad_pos = nx.nx_agraph.graphviz_layout(G, prog='dot')
|
329 |
|
330 |
matns_with_narrator = []
|
331 |
+
end_node = {}
|
332 |
for i in range(len(taraf_hadith_split)):
|
333 |
isnad_in_hadith1 = isnad_hadith['Hadiths Cleaned'].apply(lambda x: taraf_hadith_split[i] in x )
|
334 |
isnad_hadith1 = isnad_hadith[isnad_in_hadith1]
|
335 |
G1 = nx.from_pandas_edgelist(isnad_hadith1, source = 'Source', target = 'Destination', create_using = nx.DiGraph())
|
336 |
+
node = [int(n) for n, d in G.out_degree() if d == 0]
|
337 |
if narrator in list(G1.nodes):
|
338 |
matns_with_narrator.append(taraf_hadith[i])
|
339 |
+
for n in node:
|
340 |
+
if n not in list(end_node.keys()):
|
341 |
+
end_node[n] = []
|
342 |
+
end_node[n].append(i)
|
343 |
+
|
344 |
+
|
345 |
+
|
346 |
|
347 |
narrator_matn_info = taraf[taraf['bookid_hadithid'].isin(matns_with_narrator)]
|
348 |
|
|
|
379 |
|
380 |
if node == '99999':
|
381 |
net.add_node(node, font = {'size':50, 'color': 'black'}, color = '#000000', label = f'{node_name} \n ID: {node} - Gen {student_gen}', x= pos[0]*x_stretch, y= -1*pos[1]*y_stretch, size= 70)
|
382 |
+
elif node in list(end_node.keys()):
|
383 |
+
net.add_node(node, font = {'size':30, 'color': 'red'}, color = value_to_hex(student_narrations), label = f'{node_name} \n {student_rank} \n ID: {node} - Gen {student_gen} \n Hadiths {", ".join(end_node[node])}', x= pos[0]*x_stretch, y= -1*pos[1]*y_stretch, size= 50)
|
384 |
else:
|
385 |
net.add_node(node, font = {'size':30, 'color': 'red'}, color = value_to_hex(student_narrations), label = f'{node_name} \n {student_rank} \n ID: {node} - Gen {student_gen}', x= pos[0]*x_stretch, y= -1*pos[1]*y_stretch, size= 50)
|
386 |
for edge in G.edges:
|
|
|
395 |
display-capture; encrypted-media;" sandbox="allow-modals allow-forms
|
396 |
allow-scripts allow-same-origin allow-popups
|
397 |
allow-top-navigation-by-user-activation allow-downloads" allowfullscreen=""
|
398 |
+
allowpaymentrequest="" frameborder="0" srcdoc='{html}'></iframe>""" , narrator_matn_info[['matn', 'Book_Name', 'Author', 'Book_ID', 'Hadith Number', 'Index']]
|
399 |
|
400 |
|
401 |
|