svghmi/svghmi.py
branchsvghmi
changeset 3156 76c0c0a524c9
parent 3140 cae53fe54cf2
child 3160 cecfd6bb4593
--- a/svghmi/svghmi.py	Sun Feb 21 21:38:44 2021 +0100
+++ b/svghmi/svghmi.py	Mon Feb 22 10:08:36 2021 +0100
@@ -14,6 +14,7 @@
 import hashlib
 import weakref
 import shlex
+import time
 
 import wx
 import wx.dataview as dv
@@ -544,6 +545,18 @@
 
         return TranslationToEtree(langs,translated_messages)
 
+    times = {}
+    def ProgressStart(self, _context, message):
+        t = time.time()
+        s = str(message)
+        self.times[s] = t
+
+    def ProgressEnd(self, _context, message):
+        t = time.time()
+        s = str(message)
+        self.GetCTRoot().logger.write("  %s: %.3f\n"%(message, t - self.times[s]))
+        self.times[s] = t
+
     def CTNGenerate_C(self, buildpath, locations):
 
         location_str = "_".join(map(str, self.GetCurrentLocation()))
@@ -558,18 +571,26 @@
         target_path = os.path.join(self._getBuildPath(), target_fname)
         target_file = open(target_path, 'wb')
 
+        self.GetCTRoot().logger.write("SVGHMI:\n")
+
         if os.path.exists(svgfile):
 
             # TODO : move to __init__
             transform = XSLTransform(os.path.join(ScriptDirectory, "gen_index_xhtml.xslt"),
                           [("GetSVGGeometry", lambda *_ignored:self.GetSVGGeometry()),
                            ("GetHMITree", lambda *_ignored:self.GetHMITree()),
-                           ("GetTranslations", self.GetTranslations)])
-
+                           ("GetTranslations", self.GetTranslations),
+                           ("ProgressStart", self.ProgressStart),
+                           ("ProgressEnd", self.ProgressEnd)])
+
+
+            t = time.time()
 
             # load svg as a DOM with Etree
             svgdom = etree.parse(svgfile)
 
+            self.GetCTRoot().logger.write("  Source SVG parsing: %.3f\n"%(time.time()-t))
+
             # call xslt transform on Inkscape's SVG to generate XHTML
             try: 
                 result = transform.transform(svgdom)