skim down the amount of debug - both python and js - manifold traffic gets displayed...
authorThierry Parmentelat <thierry.parmentelat@inria.fr>
Wed, 4 Dec 2013 15:08:15 +0000 (16:08 +0100)
committerThierry Parmentelat <thierry.parmentelat@inria.fr>
Wed, 4 Dec 2013 15:08:15 +0000 (16:08 +0100)
manifold/core/query.py
manifold/manifoldapi.py
manifold/manifoldproxy.py
manifold/metadata.py
plugins/querytable/static/js/querytable.js

index 764336f..976f497 100644 (file)
@@ -23,7 +23,7 @@ def uniqid ():
     return uuid.uuid4().hex
 
 debug=False
-debug=True
+#debug=True
 
 class ParameterError(StandardError): pass
 
index 664bb32..89b6f0e 100644 (file)
@@ -9,16 +9,29 @@ from manifold.core.result_value import ResultValue
 
 debug=False
 debug=True
+debug_deep=False
+#debug_deep=True
 
+########## ugly stuff for hopefully nicer debug messages
 def mytruncate (obj, l):
     # we will add '..' 
     l1=l-2
     repr="%s"%obj
     return (repr[:l1]+'..') if len(repr)>l1 else repr
 
+from time import time, gmtime, strftime
+from math import trunc
+def mytime (start=None):
+    gm=gmtime()
+    t=time()
+    msg=strftime("%H:%M:%S-", gmtime())+"%03d"%((t-trunc(t))*1000)
+    if start is not None: msg += " (%03fs)"%(t-start)
+    return t,msg
+##########
+
 class ManifoldAPI:
 
-    def __init__(self, auth=None, cainfo=None):
+    def __init__ (self, auth=None, cainfo=None):
         
         self.auth = auth
         self.cainfo = cainfo
@@ -51,6 +64,16 @@ class ManifoldAPI:
                 else:           print '+++',k,':',mytruncate (v,30)
         else:                                 print "[dont know how to display result] %s"%result
 
+    # how to display a call
+    def _repr_query (self,methodName, query):
+        try:    action=query['action']
+        except: action="???"
+        try:    subject=query['object']
+        except: subject="???"
+        # most of the time, we run 'forward'
+        if methodName=='forward':       return "forward(%s(%s))"%(action,subject)
+        else:                           return "%s(%s)"%(action,subject)
+
     # xxx temporary code for scaffolding a ManifolResult on top of an API that does not expose error info
     # as of march 2013 we work with an API that essentially either returns the value, or raises 
     # an xmlrpclib.Fault exception with always the same 8002 code
@@ -59,23 +82,18 @@ class ManifoldAPI:
     # a SESSION_EXPIRED code
     def __getattr__(self, methodName):
         def func(*args, **kwds):
-            # how to display a call
-            def repr ():
-                # most of the time, we run 'forward'
-                if methodName=='forward':
-                    try:    action="forward(%s)"%args[0]['action']
-                    except: action="forward(??)"
-                else: action=methodName
-                return action
+            # shorthand
+            def repr(): return self._repr_query (methodName, args[0])
             try:
                 if debug:
-                    print "====> ManifoldAPI.%s"%repr(),"url",self.url
+                    start,msg = mytime()
+                    print "====>",msg,"ManifoldAPI.%s"%repr(),"url",self.url
                     # No password in the logs
                     logAuth = copy.copy(self.auth)
                     for obfuscate in ['Authring','session']: 
                         if obfuscate in logAuth:  logAuth[obfuscate]="XXX"
-                    print "=> auth",logAuth
-                    print "=> args",args,"kwds",kwds
+                    if debug_deep: print "=> auth",logAuth
+                    if debug_deep: print "=> args",args,"kwds",kwds
                 annotations = {
                     'authentication': self.auth
                 }
@@ -86,7 +104,8 @@ class ManifoldAPI:
                 if debug:
                     print '<= result=',
                     self._print_result(result)
-                    print '<==== backend call %s returned'%(repr()),
+                    end,msg = mytime(start)
+                    print "<====",msg,"backend call %s returned"%(repr())
 
                 return ResultValue(**result)
 
index 99e7b0a..3577fe5 100644 (file)
@@ -14,7 +14,7 @@ from manifold.util.log          import Log
 from myslice.config             import Config
 
 debug=False
-debug=True
+#debug=True
 
 # add artificial delay in s
 debug_spin=0
index f7a5968..de9bf2e 100644 (file)
@@ -7,7 +7,7 @@ from manifold.manifoldapi import ManifoldAPI
 from django.contrib                     import messages
 
 debug=False
-debug=True
+#debug=True
 
 class MetaData:
 
@@ -58,5 +58,5 @@ class MetaData:
         return self.hash_by_object[object]['column'].sort()
 
     def get_field_type(self, object, field):
-        print "Temp fix for metadata::get_field_type() -> consider moving to manifold.core.metadata soon"
+        if debug: print "Temp fix for metadata::get_field_type() -> consider moving to manifold.core.metadata soon"
         return field
index f8e4e04..ecd6fb2 100644 (file)
@@ -8,8 +8,8 @@
 
     var debug=false;
     debug=true
-    var contents_debug=false;
-//    contents_debug=true;
+    var debug_deep=false;
+//    debug_deep=true;
 
     var QueryTable = Plugin.extend({
 
@@ -90,7 +90,7 @@
            this.slick_data=[];
            
            var selector="#grid-"+this.options.domid;
-           if (contents_debug) {
+           if (debug_deep) {
                messages.debug("slick grid selector is " + selector);
                for (c in this.slick_columns) {
                    var col=this.slick_columns[c];
         }, // getColIndex
 
         checkbox_html : function (key, value) {
-//         if (debug) messages.debug("checkbox_html, value="+value);
+           if (debug_deep) messages.debug("checkbox_html, value="+value);
             var result="";
             // Prefix id with plugin_uuid
             result += "<input";
         },
 
         set_checkbox: function(record, checked) {
-           console.log("set_checkbox not implemented");
+           console.log("set_checkbox not yet implemented with slickgrid");
            return;
             /* Default: checked = true */
             if (checked === undefined) checked = true;
             checkbox_id = escape_id(checkbox_id);
             // using dataTables's $ to search also in nodes that are not currently displayed
             var element = this.table.$(checkbox_id);
-            if (debug) 
+            if (debug_deep
                 messages.debug("set_checkbox checked=" + checked
                                + " id=" + checkbox_id + " matches=" + element.length);
             element.attr('checked', checked);
            this.slick_grid.render();
            var duration=new Date()-start;
            if (debug) messages.debug("setData+render took " + duration + " ms");
-           if (contents_debug) {
+           if (debug_deep) {
                // show full contents of first row app
                for (k in this.slick_data[0]) messages.debug("slick_data[0]["+k+"]="+this.slick_data[0][k]);
            }