packages = ["matplotlib", "pandas"]
from js import createObject
from pyodide.ffi import create_proxy
createObject(create_proxy(globals()), "pyodideGlobals")
import pandas as pd
import os
from pyodide.http import open_url
url = (
"https://raw.githubusercontent.com/StrikerG1/Disease-description-dataset/683d8b725aa77ed69b26363520e2d203127223c6/processed-disease-description-dataset.csv"
)
df = pd.read_csv(open_url(url))
def search_disease(disease, nameonly=False, inDF=df, dropnull=False):
disease = disease.lower()
if dropnull:
if nameonly:
return inDF[inDF.Name.str.contains(disease)].sort_values(by='Name',key=lambda x: x.str.len()).dropna()
else:
return inDF[inDF.Synonym.str.contains(disease)].sort_values(by='Synonym',key=lambda x: x.str.len()).dropna()
else:
if nameonly:
return inDF[inDF.Name.str.contains(disease)].sort_values(by='Name',key=lambda x: x.str.len())
else:
return inDF[inDF.Name.str.contains(disease) == False & inDF.Synonym.str.contains(disease)].sort_values(by='Synonym',key=lambda x: x.str.len())
#dname = input('Enter a disease name: ').lower()
def formExecute(dname):
dname = str(dname)
#frames=[search_disease(dname,True),search_disease(dname,True)]
#x = pd.concat(frames,ignore_index=True)
#x= pd.concat([search_disease(dname,nameonly=True,dropnull=True),search_disease(dname,nameonly=False,dropnull=True)],ignore_index=True)
x= search_disease(dname,nameonly=True,dropnull=True)
try:
#Element("disease-name").write('Disease: ' + x.iloc[0]['Name'])
#Element("disease-description").write(x.iloc[0]['Definition'].replace('_',' '))
#Element("col1-row0").write(x.iloc[0]['Name'])
#Element("col2-row0").write(x.iloc[0]['Definition'].replace('_',' '))
#print('Disease:', x.iloc[0]['Name'])
#print('Description:\n', x.iloc[0]['Definition'].replace('_',' '), sep='')
for idx in range(x.shape[0]):#, a in enumerate(x):
if False:#idx == 20:
break
else:
try:
Element("col1-row"+str(idx)).write(x.iloc[idx]['Name'])
except:
Element("col1-row"+str(idx)).write("error")
try:
Element("col2-row"+str(idx)).write(x.iloc[idx]['Definition'].replace('_',' '))
except:
Element("col2-row"+str(idx)).write("error")
try:
Element("col3-row"+str(idx)).write(x.iloc[idx]['Synonym'])
except:
Element("col3-row"+str(idx)).write("error")
for idx in range(20-x.shape[0]):
try:
Element("col1-row"+str(idx+x.shape[0])).write("")
Element("col2-row"+str(idx+x.shape[0])).write("")
Element("col3-row"+str(idx+x.shape[0])).write("")
except:
pass
except IndexError:
#print('Sorry,',dname,'is not present in this database.')
#return 'Sorry,',dname,'is not present in this database.'
pass
except Exception as e:
#print('Exception',e,'occurred')
pass
class Circle():
def __init__(self, radius):
self.radius = radius
@property
def area(self):
return symbols['pi'] * self.radius**2
