From 2c0471c32712dba41daa9795fbd88b021b27c455 Mon Sep 17 00:00:00 2001
From: sauloal <sauloal@yahoo.com.br>
Date: Tue, 3 Mar 2015 18:31:22 +0100
Subject: [PATCH] sorted results. results in descending order

---
 filler.py | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

diff --git a/filler.py b/filler.py
index 5698278..ff896eb 100755
--- a/filler.py
+++ b/filler.py
@@ -2,11 +2,18 @@
 
 import os
 import sys
+import operator
+
 from collections import defaultdict
 
 import parser_SQL_struct
 
-col_names = "species|species subgroup|species group|subgenus|genus|subtribe|tribe|subfamily|family|superfamily|parvorder|infraorder|suborder|order|superorder|infraclass|subclass|class|superclass|subphylum|phylum|subkingdom|kingdom|superkingdom|root"
+#./filler.py query "Solanum lycopersicu"
+#./filler.py query "Solanum lycopersicum"
+#./filler.py list
+#./filler.py fill classes.csv
+
+col_names = "species|species subgroup|species group|subgenus|genus|subtribe|tribe|subfamily|family|superfamily|parvorder|infraorder|suborder|order|superorder|infraclass|subclass|class|superclass|subphylum|phylum|subkingdom|kingdom|superkingdom|division|root"
 
 
 class csv_holder(object):
@@ -14,7 +21,7 @@ class csv_holder(object):
         self.incsv      = incsv
         self.names      = []
         self.data       = {}
-        self.col_names  = col_names.split("|")
+        self.col_names  = list(reversed(col_names.split("|")))
         self.read_csv()
         
     def read_csv(self):
@@ -51,25 +58,27 @@ class csv_holder(object):
         with open(filename, 'w') as fhd:
             #print self.col_names
             fhd.write("name\t" + "\t".join(self.col_names) + "\n")
-            for name in self.names:
+
+            ordered_names = sorted( self.names, key=lambda x: self.data[x][1:] )
+            print "ordered_names", ordered_names
+
+            for name in ordered_names:
                 data = self.data[name]
                 #print data
                 cols = name + "\t" + "\t".join([str(d) if d is not None else "" for d in data])
                 fhd.write( cols + "\n" )
 
 
-
 class filler(object):
     def __init__(self, csv, querier):
         self.csv     = csv
         self.querier = querier
         
-        self.csv.col_names.insert(0, "tax_id"  )
-        self.csv.col_names.insert(0, "division")
-        
         self.get_ids()
         self.get_taxonomy()
 
+        self.csv.col_names.insert(0, "tax_id")
+
     def get_ids(self):
         for name in sorted(self.csv.names):
             tax_ids = self.querier(name)
@@ -85,7 +94,7 @@ class filler(object):
             else:
                 tax_id = tax_ids[0]
                 print "adding species %-30s id %7d" % (name, tax_id)
-                self.csv.data[name].insert(0, tax_id       )
+                self.csv.data[name].insert(0, tax_id)
 
     def get_taxonomy(self):
         datas     = {}
@@ -103,7 +112,8 @@ class filler(object):
             division_name = get_division_name(division_id)
             datas[name]   = data
 
-            self.csv.data[name].insert(0, division_name)
+            p_pos = self.csv.col_names.index("division")
+            self.csv.data[name][p_pos] = division_name
 
 
         for name, data in datas.items():
-- 
GitLab