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

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Fri Mar 13 15:57:32 UTC 2009


Author: rousseau
Date: Fri Mar 13 15:57:32 2009
New Revision: 3345

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=3345
Log:
generate web pages

Modified:
    website/matrix.py

Modified: website/matrix.py
URL: http://svn.debian.org/wsvn/pcsclite/website/matrix.py?rev=3345&op=diff
==============================================================================
--- website/matrix.py (original)
+++ website/matrix.py Fri Mar 13 15:57:32 2009
@@ -21,6 +21,8 @@
 import os
 import ConfigParser
 import pprint
+import templayer
+import time
 
 pp = pprint.PrettyPrinter(indent=4)
 
@@ -61,6 +63,8 @@
     parse a foobas.ini file to extract all informations
     """
     config = ConfigParser.ConfigParser()
+    # do not use the default case insensitive transform for key value
+    config.optionxform = str
     config.read(inifile)
     reader_list = config.sections()
 
@@ -93,6 +97,12 @@
     if len(real_list) > 0:
         raise Exception("readers %s are not listed" % real_list)
 
+def get_by_manufacturer(readers):
+    d = {}
+    for r in readers.keys():
+        d.setdefault(readers[r]['iManufacturer'], []).append(r)
+    return d
+
 if __name__ == "__main__":
     path = "../trunk/Drivers/ccid/readers/"
 
@@ -104,8 +114,31 @@
     #pp.pprint(reader_list)
     check_list(path, reader_list)
 
-    r = "Kobil_EMV_CAP.txt"
-    #pp.pprint(supported_readers[r].keys())
+    # sort the readers by manufacturers
+    manufacturer_readers = get_by_manufacturer(supported_readers)
+    manufacturers = list(manufacturer_readers)
+    manufacturers.sort(key=str.lower)
+
+    r = "Gemalto_PDT.txt"
+    #pp.pprint(supported_readers[r])
     for k in supported_readers[r].keys():
         #print k, ":", supported_readers[r][k]
         pass
+
+    template = templayer.HTMLTemplate("supported.template")
+    file_writer = template.start_file(file=file("supported.html", "w"))
+    main_layer = file_writer.open(date=time.asctime())
+    
+    # for each manufacturer
+    for m in manufacturers:
+        main_layer.write_layer('manufacturer', manufacturer=m)
+
+        # for each reader
+        for r in sorted(manufacturer_readers[m]):
+            main_layer.write_layer('reader',
+                    manufacturer=m,
+                    product=supported_readers[r]['iProduct'],
+                    url=supported_readers[r].get('url', ""),
+                    image="img/" + supported_readers[r].get('image',
+                        "no_image.png"))
+    file_writer.close()




More information about the Pcsclite-cvs-commit mailing list