changeset 1893:3a43a17b430a

Quick update for scripts/score_parser.py to parse new save files.
author Nicholas Jillings <nickjillings@users.noreply.github.com>
date Tue, 15 Mar 2016 15:33:29 +0000
parents d6411f7c9bc1
children 3342ca63f423
files scripts/score_parser.py
diffstat 1 files changed, 9 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/score_parser.py	Mon Mar 14 13:36:43 2016 +0000
+++ b/scripts/score_parser.py	Tue Mar 15 15:33:29 2016 +0000
@@ -43,12 +43,16 @@
         subject_id = file_name[:-4] # file name (without extension) as subject ID
 
         # get list of all pages this subject evaluated
-        for audioholder in root.findall("./page"):    # iterate over pages
-            page_name = audioholder.get('id') # get page name
+        for page in root.findall("./page"):    # iterate over pages
+            page_name = page.get('ref') # get page reference ID
                        
             if page_name is None: # ignore 'empty' audio_holders
                 print "WARNING: " + file_name + " contains empty audio holder. (score_parser.py)"
                 break
+                
+            if page.get('state') != "complete":
+                print "WARNING:" + file_name + " contains incomplete page " +page_name+ ". (score_parser.py)"
+                break;
 
             file_name = folder_name+'/ratings/'+page_name+'-ratings.csv' # score file name
 
@@ -60,13 +64,13 @@
             # go to fragment column, or create new column if it doesn't exist yet
 
             # get array of audio elements and number of audio elements
-            audiolist = audioholder.findall("./audioelement")
+            audiolist = page.findall("./audioelement")
             n_fragments = len(audiolist)
 
             # get alphabetical array of fragment IDs from this subject's XML
             fragmentnamelist = []    # make empty list
             for audioelement in audiolist: # iterate over all audioelements
-                fragmentnamelist.append(audioelement.get('id')) # add to list
+                fragmentnamelist.append(audioelement.get('ref')) # add to list
 
 
             # if file exists, get header and add any 'new' fragments not yet in the header
@@ -119,7 +123,7 @@
 
             # get scores related to fragment [id]
             for fragmentname in headerrow[1:]: # iterate over fragments in header (skip first empty column)
-                elementvalue = audioholder.find("./audioelement/[@id='"
+                elementvalue = page.find("./audioelement/[@ref='"
                                        + fragmentname
                                        + "']/value")
                 if hasattr(elementvalue, 'text'): # if rating for this fragment exists