Example #1
0
 def grammemes_xml2csv(self, persistent=True):
     env = Environment()
     filename_gram = env.filename_grammemes_xml()
     dfcols = ['name', 'alias', 'description']
     df_xml = pd.DataFrame(columns=dfcols)
     try:
         tree = ET.ElementTree(file=filename_gram)
     except:
         env.debug(1, ['Failed to load grammemes from XML:', filename_gram])
     else:
         env.debug(1, ['Read grammemes:', filename_gram])
         for elem in tree.iter('grammeme'):
             #print(elem.tag, elem.attrib)
             sattr = elem.attrib.get('include')
             if sattr == 'on':
                 sname = sali = sdesc = ''
                 for child in elem:
                     if child.tag.lower() == 'name':
                         sname = child.text.upper()
                     elif child.tag.lower() == 'alias':
                         sali = child.text.upper()
                     elif child.tag.lower() == 'description':
                         sdesc = child.text.lower()
                 s = pd.Series(data=[sname, sali, sdesc], index=dfcols)
                 df_xml = df_xml.append(s, ignore_index=True)
         df_xml.index.name = 'idgram'
         if persistent:
             filename_csv = env.filename_grammemes_csv()
             env.debug(1, ['Write grammemes to CSV:', filename_csv])
             df_xml.to_csv(filename_csv, encoding='utf-8')
     return df_xml
Example #2
0
 def grammemes(self, mode=0):
     env = Environment()
     dfgram = pd.DataFrame()
     filename_gram = env.filename_grammemes_csv()
     try:
         dfgram = pd.read_csv(filename_gram,
                              index_col='idgram',
                              encoding='utf-8')
     except:
         env.debug(1, ['Failed to load grammemes CSV file', filename_gram])
     else:
         env.debug(1, ['Load grammemes CSV file', filename_gram])
     if mode == 1:
         return dfgram.to_dict().get('name')
     else:
         return dfgram