def _pre_call(atdepth, parent, fqdn, stackdepth, *argl, **argd):
from time import time<EOL>if not atdepth:<EOL><INDENT>rstack = _reduced_stack()<EOL>if "<STR_LIT>" in rstack[-<NUM_LIT:1>]: <EOL><INDENT>code = rstack[-<NUM_LIT:1>][<NUM_LIT:1>]<EOL><DEDENT>else:<EOL><INDENT>code = "<STR_LIT>"<EOL><DEDENT>reduced = len(rstack)<EOL>if msg.will_print(<NUM_LIT:3>): <EOL><INDENT>sstack = ['<STR_LIT>'.join(map(str, r)) for r in rstack]<EOL>msg.info("<STR_LIT>".format(fqdn, len(rstack),<EOL>'<STR_LIT:U+002CU+0020>'.join(sstack)), <NUM_LIT:3>)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>reduced = stackdepth + <NUM_LIT:10><EOL><DEDENT>bound = False<EOL>if reduced <= stackdepth:<EOL><INDENT>args = _check_args(*argl, **argd)<EOL>if (len(argl) > <NUM_LIT:0> and parent is not None and inspect.isclass(parent)):<EOL><INDENT>ftype = type(argl[<NUM_LIT:0>])<EOL>if isinstance(argl[<NUM_LIT:0>], parent):<EOL><INDENT>bound = True<EOL><DEDENT>elif (inspect.isclass(ftype) and hasattr(ftype, "<STR_LIT>") and<EOL>inspect.isclass(parent) and hasattr(parent, "<STR_LIT>")): <EOL><INDENT>common = set(ftype.__bases__) & set(parent.__bases__)<EOL>bound = len(common) > <NUM_LIT:0><EOL><DEDENT><DEDENT>if not bound:<EOL><INDENT>ekey = fqdn<EOL><DEDENT>else:<EOL><INDENT>ekey = _tracker_str(argl[<NUM_LIT:0>])<EOL><DEDENT>if (fqdn not in _logging or _logging[fqdn]):<EOL><INDENT>entry = {<EOL>"<STR_LIT:m>": fqdn,<EOL>"<STR_LIT:a>": args,<EOL>"<STR_LIT:s>": time(),<EOL>"<STR_LIT:r>": None,<EOL>"<STR_LIT:c>": code,<EOL>}<EOL><DEDENT>else:<EOL><INDENT>entry = None<EOL><DEDENT><DEDENT>else:<EOL><INDENT>entry = None<EOL>atdepth = True<EOL>ekey = None<EOL><DEDENT>return (entry, atdepth, reduced, bound, ekey)<EOL>
Checks whether the logging should create an entry based on stackdepth. If
    so, the entry is created.