[Pcsclite-cvs-commit] r5757 - /website/matrix.py

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Sun May 15 15:49:58 UTC 2011


Author: rousseau
Date: Sun May 15 15:49:55 2011
New Revision: 5757

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5757
Log:
Sort according to the 2 first fields instead of just one

Modified:
    website/matrix.py

Modified: website/matrix.py
URL: http://svn.debian.org/wsvn/pcsclite/website/matrix.py?rev=5757&op=diff
==============================================================================
--- website/matrix.py (original)
+++ website/matrix.py Sun May 15 15:49:55 2011
@@ -561,30 +561,33 @@
             'bClassEnveloppe', 'wLcdLayout', 'bPINSupport',
             'bMaxCCIDBusySlots', 'features', 'limitations', 'note', 'release']
 
+    # dict to sort in the order supported, shouldwork, unsupported, disabled
+    alpha_sections = {'supported': 0, 'shouldwork': 1,
+            'unsupported': 2, 'disabled': 3}
+
     for field in fields:
-        # create a list of tuples [field value, reader]
+        # create a list of tuples [field1 value, field2 value, reader]
         index = list()
-        for reader in readers.keys():
-            index.append([readers[reader].get(field, ""), reader])
-
         if field == 'section':
-            # hack to sort in the order supported, shouldwork,
-            # unsupported, disabled
-            index = [(s.replace('supported', 'asupported'), reader)
-                    for s, reader in index]
-            index = [(s.replace('disabled', 'zdisabled'), reader)
-                    for s, reader in index]
+            for reader in readers.keys():
+                index.append([alpha_sections[readers[reader]['section']],
+                    readers[reader]['iManufacturer'], reader])
+        else:
+            for reader in readers.keys():
+                index.append([readers[reader].get(field, ""),
+                    alpha_sections[readers[reader]['section']], reader])
 
         if field in ['dwDefaultClock', 'dwMaximumClock', 'dwDataRate',
                 'dwMaxDataRate', 'dwMaxIFSD', 'dwMaxCCIDMessageLength']:
             # convert from text to decimal
-            index = [(float(s.split(' ')[0]) * 1000, reader)
-                    for s, reader in index]
+            index = [(float(text.split(' ')[0]) * 1000, field2, reader)
+                    for text, field2, reader in index]
 
         if field == 'release':
-            index = [(release2int(s), reader) for s, reader in index]
-
-        # sort the index according to field value
+            index = [(release2int(text), field2, reader)
+                    for text, field2, reader in index]
+
+        # sort the index according to field1 and field2 values
         index.sort()
 
         # put the main field in column 0
@@ -593,7 +596,8 @@
         sorted_fields.insert(0, field)
 
         # generate the table
-        generate_table(readers, field, [reader for field, reader in index], sorted_fields)
+        generate_table(readers, field,
+                [reader for field1, field2, reader in index], sorted_fields)
 
 
 def release2int(release):




More information about the Pcsclite-cvs-commit mailing list