(typ, val, tb, include_local_traceback)
return (typ.__module__, typ.__name__), tuple(args), tuple(attrs), tbtext
Dumps the given exceptions info, as returned by ``sys.exc_info()``
    
    :param typ: the exception's type (class)
    :param val: the exceptions' value (instance)
    :param tb: the exception's traceback (a ``traceback`` object)
    :param include_local_traceback: whether or not to include the local traceback
                                    in the dumped info. This may expose the other
                                    side to implementation details (code) and 
                                    package structure, and may theoretically impose
                                    a security risk.
    
    :returns: A tuple of ``((module name, exception name), arguments, attributes, 
              traceback text)``. This tuple can be safely passed to 
              :func:`brine.dump <rpyc.core.brine.dump>`
Dumps the given exceptions info, as returned by ``sys.exc_info()``
    
    :param typ: the exception's type (class)
    :param val: the exceptions' value (instance)
    :param tb: the exception's traceback (a ``traceback`` object)
    :param include_local_traceback: whether or not to include the local traceback
                                    in the dumped info. This may expose the other
                                    side to implementation details (code) and 
                                    package structure, and may theoretically impose
                                    a security risk.
    
    :returns: A tuple of ``((module name, exception name), arguments, attributes, 
              traceback text)``. This tuple can be safely passed to 
              :func:`brine.dump <rpyc.core.brine.dump>`
Dumps the given exceptions info as returned by sys . exc_info () : param typ : the exception s type ( class ) : param val : the exceptions value ( instance ) : param tb : the exception s traceback ( a traceback object ) : param include_local_traceback : whether or not to include the local traceback in the dumped info . This may expose the other side to implementation details ( code ) and package structure and may theoretically impose a security risk . : returns : A tuple of (( module name exception name ) arguments attributes traceback text ) . This tuple can be safely passed to : func : brine . dump <rpyc . core . brine . dump >
def dump(typ, val, tb, include_local_traceback):
    """Dumps the given exceptions info, as returned by ``sys.exc_info()``
    
    :param typ: the exception's type (class)
    :param val: the exceptions' value (instance)
    :param tb: the exception's traceback (a ``traceback`` object)
    :param include_local_traceback: whether or not to include the local traceback
                                    in the dumped info. This may expose the other
                                    side to implementation details (code) and 
                                    package structure, and may theoretically impose
                                    a security risk.
    
    :returns: A tuple of ``((module name, exception name), arguments, attributes, 
              traceback text)``. This tuple can be safely passed to 
              :func:`brine.dump <rpyc.core.brine.dump>`
    """
    if typ is StopIteration:
        return consts.EXC_STOP_ITERATION # optimization
    if type(typ) is str:
        return typ

    if include_local_traceback:
        tbtext = "".join(traceback.format_exception(typ, val, tb))
    else:
        tbtext = "<traceback denied>"
    attrs = []
    args = []
    ignored_attrs = frozenset(["_remote_tb", "with_traceback"])
    for name in dir(val):
        if name == "args":
            for a in val.args:
                if brine.dumpable(a):
                    args.append(a)
                else:
                    args.append(repr(a))
        elif name.startswith("_") or name in ignored_attrs:
            continue
        else:
            try:
                attrval = getattr(val, name)
            except AttributeError:
                # skip this attr. see issue #108
                continue
            if not brine.dumpable(attrval):
                attrval = repr(attrval)
            attrs.append((name, attrval))
    return (typ.__module__, typ.__name__), tuple(args), tuple(attrs), tbtext
def dump ( typ , val , tb , include_local_traceback ) : if typ is StopIteration : return consts . EXC_STOP_ITERATION # optimization if type ( typ ) is str : return typ if include_local_traceback : tbtext = "" . join ( traceback . format_exception ( typ , val , tb ) ) else : tbtext = "<traceback denied>" attrs = [ ] args = [ ] ignored_attrs = frozenset ( [ "_remote_tb" , "with_traceback" ] ) for name in dir ( val ) : if name == "args" : for a in val . args : if brine . dumpable ( a ) : args . append ( a ) else : args . append ( repr ( a ) ) elif name . startswith ( "_" ) or name in ignored_attrs : continue else : try : attrval = getattr ( val , name ) except AttributeError : # skip this attr. see issue #108 continue if not brine . dumpable ( attrval ) : attrval = repr ( attrval ) attrs . append ( ( name , attrval ) ) return ( typ . __module__ , typ . __name__ ) , tuple ( args ) , tuple ( attrs ) , tbtext