[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [pykde5/srhaque-new-sip-generator] sip_generation: Some tracing for the MethodCode logic.
From:       Shaheed Haque <srhaque () theiet ! org>
Date:       2016-04-30 18:25:35
Message-ID: E1awZaB-0005ih-72 () scm ! kde ! org
[Download RAW message or body]

Git commit 3205c1ea48934f4036621363867170ec4957f286 by Shaheed Haque.
Committed on 30/04/2016 at 18:25.
Pushed by shaheed into branch 'srhaque-new-sip-generator'.

Some tracing for the MethodCode logic.

M  +3    -3    sip_generation/PyKF5_methodcode.py
M  +21   -1    sip_generation/rules_engine.py
M  +2    -0    sip_generation/sip_bulk_generator.py

http://commits.kde.org/pykde5/3205c1ea48934f4036621363867170ec4957f286

diff --git a/sip_generation/PyKF5_methodcode.py b/sip_generation/PyKF5_methodcode.py
index 90af577..ec1665a 100644
--- a/sip_generation/PyKF5_methodcode.py
+++ b/sip_generation/PyKF5_methodcode.py
@@ -1065,6 +1065,9 @@ code = {
         delete list;
         """
     },
+},
+"KFontChooser":
+{
     "KFontChooser":
     {
         "decl": "QWidget* parent /TransferThis/ = 0, const \
KFontChooser::DisplayFlags& flags = KFontChooser::DisplayFrame, const QStringList& \
fontList = QStringList(), int visibleListSize = 8, Qt::CheckState* \
sizeIsRelativeState = 0", @@ -1077,9 +1080,6 @@ code = {
         Py_END_ALLOW_THREADS
         """
     },
-},
-"KFontChooser":
-{
     "KFontChooser":
     {
         "decl": "QWidget* parent /TransferThis/ = 0, const \
KFontChooser::DisplayFlags& flags = KFontChooser::NoDisplayFlags, const QStringList& \
                fontlist = QStringList(), Qt::CheckState* sizeIsRelativeState = 0",
diff --git a/sip_generation/rules_engine.py b/sip_generation/rules_engine.py
index 6f512bd..cf4392e 100755
--- a/sip_generation/rules_engine.py
+++ b/sip_generation/rules_engine.py
@@ -574,6 +574,21 @@ class AbstractCompiledCodeDb(object):
         entry["usage"] += 1
         return entry
 
+    def trace_result(self, parents, item, original, modified):
+        fqn = parents + "::" + original["name"] + "[" + str(item.extent.start.line) \
+ "]" +        if not modified["name"]:
+            logger.debug(_("Rule {} suppressed {}, {}").format(self, fqn, original))
+        else:
+            delta = False
+            for k, v in original.iteritems():
+                if v != modified[k]:
+                    delta = True
+                    break
+            if delta:
+                logger.debug(_("Rule {} modified {}, {}->{}").format(self, fqn, \
original, modified)) +            else:
+                logger.warn(_("Rule {} did not modify {}, {}").format(self, fqn, \
original)) +
 
 class MethodCodeDb(AbstractCompiledCodeDb):
     __metaclass__ = ABCMeta
@@ -591,6 +606,7 @@ class MethodCodeDb(AbstractCompiledCodeDb):
         sip["fn_result2"] = ""
         sip["code"] = ""
         if entry:
+            before = deepcopy(sip)
             sip["decl"] = entry.get("decl", sip["decl"])
             sip["fn_result"] = entry.get("fn_result", sip["fn_result"])
             #
@@ -606,6 +622,7 @@ class MethodCodeDb(AbstractCompiledCodeDb):
             text = textwrap.dedent(entry["code"]).strip()
             text = ["    " + t for t in text.split("\n")]
             sip["code"] = self.directive + "\n".join(text) + "\n%End\n"
+            self.trace_result(_parents(function), function, before, sip)
 
 
 class RuleSet(object):
@@ -710,7 +727,10 @@ class RuleSet(object):
 
     def dump_unused(self):
         def dumper(db_name, rule, usage):
-            logger.error(_("{}, rule {}, used {}".format(db_name, rule, usage)))
+            if usage:
+                logger.info(_("Used rule {}::{} {} times".format(db_name, rule, \
usage))) +            else:
+                logger.error(_("Did not use rule {}::{}".format(db_name, rule)))
         for db in [self._methodcode]:
             db.dump_usage(dumper)
 
diff --git a/sip_generation/sip_bulk_generator.py \
b/sip_generation/sip_bulk_generator.py index bece3f9..e3889a3 100755
--- a/sip_generation/sip_bulk_generator.py
+++ b/sip_generation/sip_bulk_generator.py
@@ -407,6 +407,8 @@ def main(argv=None):
         rules = rules_engine.rules(args.project_rules, args.includes + "," + \
                args.sources, args.sips)
         d = SipBulkGenerator(rules, args.omit, args.select, args.sources, args.sip)
         d.process_tree()
+        if args.verbose:
+            rules.dump_unused()
     except Exception as e:
         tbk = traceback.format_exc()
         print(tbk)


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic