(cls, method=None, parent=None, argmatch={}, break_count=-1, trace_call=False,
                  trace_return=False, break_action=None, match_tag="", access_type="")
return fullname
To trace all, method = "*"
        To list all methods traced, method = None
        To trace class, method="classname." or classname
        To trace method of any class, method=".methodname"
        To trace bound method method ="classname.methodname" or self.methodname
        To trace function, method = "functionname" or functionname
        argmatch = {"arg1": "value1", "self.arg2": "value2", "arg3":{"entry31": "value31", "entry32","value32"},
        "arg4!=": "value4", "return": "retvalue"}
        Returns full name of method traced, or null string
        If neither trace_call nor trace_return are specified, only exceptions are traced.
        To trace entity keys, trace /kind:name/... get/put/delete/modify/all
To trace all, method = "*"
        To list all methods traced, method = None
        To trace class, method="classname." or classname
        To trace method of any class, method=".methodname"
        To trace bound method method ="classname.methodname" or self.methodname
        To trace function, method = "functionname" or functionname
        argmatch = {"arg1": "value1", "self.arg2": "value2", "arg3":{"entry31": "value31", "entry32","value32"},
        "arg4!=": "value4", "return": "retvalue"}
        Returns full name of method traced, or null string
        If neither trace_call nor trace_return are specified, only exceptions are traced.
        To trace entity keys, trace /kind:name/... get/put/delete/modify/all
To trace all method = * To list all methods traced method = None To trace class method = classname . or classname To trace method of any class method = . methodname To trace bound method method = classname . methodname or self . methodname To trace function method = functionname or functionname argmatch = { arg1 : value1 self . arg2 : value2 arg3 : { entry31 : value31 entry32 value32 } arg4! = : value4 return : retvalue } Returns full name of method traced or null string If neither trace_call nor trace_return are specified only exceptions are traced . To trace entity keys trace / kind : name / ... get / put / delete / modify / all
def add_trace(cls, method=None, parent=None, argmatch={}, break_count=-1, trace_call=False,
                  trace_return=False, break_action=None, match_tag="", access_type=""):
        """To trace all, method = "*"
        To list all methods traced, method = None
        To trace class, method="classname." or classname
        To trace method of any class, method=".methodname"
        To trace bound method method ="classname.methodname" or self.methodname
        To trace function, method = "functionname" or functionname
        argmatch = {"arg1": "value1", "self.arg2": "value2", "arg3":{"entry31": "value31", "entry32","value32"},
        "arg4!=": "value4", "return": "retvalue"}
        Returns full name of method traced, or null string
        If neither trace_call nor trace_return are specified, only exceptions are traced.
        To trace entity keys, trace /kind:name/... get/put/delete/modify/all
        """
        with Trace_rlock:
            if not method:
                trace_names_list = cls.trace_names.keys() + cls.trace_keys.keys()
                trace_names_list.sort()
                if cls.trace_all:
                    trace_names_list.insert(0, "*")
                return trace_names_list

            cls.trace_active = True

            if argmatch:
                ret_match = [key == "return" or key.startswith("return.") for key in argmatch]
                if any(ret_match):
                    trace_return = True
                if break_action != "tag" and not all(ret_match):
                    trace_call = True

            if method == "*":
                cls.trace_all = True
                return "*"
            elif isinstance(method, basestring) and method.startswith(PATH_SEP):
                # Trace entity key
                cls.trace_keys[method] = TraceOpts(method, argmatch=argmatch, break_count=break_count, access_type=access_type,
                                                   break_action=break_action)
                return method
            elif isinstance(method, basestring) and method[0] == TRACE_LABEL_PREFIX:
                # Trace label for logging
                fullname = method
            elif isinstance(method, basestring) and method.startswith(TRACE_LOG_PREFIX):
                # Trace log prefix for break point
                fullname = method
                cls.trace_log_set.add(fullname)
            else:
                if not isinstance(argmatch, dict):
                    raise OTraceException("add_trace: argmatch must be a dict instance")

                classname, methodname = cls.class_method_names(method, parent)
                fullname = methodname if not classname else classname+"."+methodname

            trace_opts = TraceOpts(fullname, argmatch=argmatch, break_count=break_count, trace_call=trace_call,
                                   trace_return=trace_return, break_action=break_action, match_tag=match_tag)

            cls.trace_names[fullname] = trace_opts

        return fullname
def add_trace ( cls , method = None , parent = None , argmatch = { } , break_count = - 1 , trace_call = False , trace_return = False , break_action = None , match_tag = "" , access_type = "" ) : with Trace_rlock : if not method : trace_names_list = cls . trace_names . keys ( ) + cls . trace_keys . keys ( ) trace_names_list . sort ( ) if cls . trace_all : trace_names_list . insert ( 0 , "*" ) return trace_names_list cls . trace_active = True if argmatch : ret_match = [ key == "return" or key . startswith ( "return." ) for key in argmatch ] if any ( ret_match ) : trace_return = True if break_action != "tag" and not all ( ret_match ) : trace_call = True if method == "*" : cls . trace_all = True return "*" elif isinstance ( method , basestring ) and method . startswith ( PATH_SEP ) : # Trace entity key cls . trace_keys [ method ] = TraceOpts ( method , argmatch = argmatch , break_count = break_count , access_type = access_type , break_action = break_action ) return method elif isinstance ( method , basestring ) and method [ 0 ] == TRACE_LABEL_PREFIX : # Trace label for logging fullname = method elif isinstance ( method , basestring ) and method . startswith ( TRACE_LOG_PREFIX ) : # Trace log prefix for break point fullname = method cls . trace_log_set . add ( fullname ) else : if not isinstance ( argmatch , dict ) : raise OTraceException ( "add_trace: argmatch must be a dict instance" ) classname , methodname = cls . class_method_names ( method , parent ) fullname = methodname if not classname else classname + "." + methodname trace_opts = TraceOpts ( fullname , argmatch = argmatch , break_count = break_count , trace_call = trace_call , trace_return = trace_return , break_action = break_action , match_tag = match_tag ) cls . trace_names [ fullname ] = trace_opts return fullname