def __init__(self, error_msg, ctx, clazz, attr_name): # Format the context call stack, so it will be clearer. context_call_stack = "\n".join([ " {0}".format(line) for line in ctx.format_exception_call_stack() ]) # Format a list of all resolved references, remove identity ones (e.g. 1=1, etc.) and show only uniques resolved_reference_pairs = [ (safe_repr(key), repr(value)) for key, value in six.iteritems(ctx.cached_results) ] resolved_reference_str_list = sorted([ " {0}={1}".format(a, b) for a, b in resolved_reference_pairs if a != b ]) resolved_references = "\n".join( s for s, _ in itertools.groupby(resolved_reference_str_list)) msg = type(self).MESSAGE.format( error_msg=error_msg, attr_name=attr_name, clazz=clazz, context_call_stack=context_call_stack, resolved_references=resolved_references) super(InstructBufferError, self).__init__(msg) self.clazz = clazz self.attr_name = attr_name
def _func_repr(self): # Small hacks to make repr look better: if isinstance(self.func_ref, ObjectReference) \ and isinstance(self.func_ref.obj, (types.FunctionType, types.MethodType)): func_ref_repr = self.func_ref.obj.func_name else: func_ref_repr = safe_repr(self.func_ref) return "{0}({1}))".format(func_ref_repr, self._args_and_kwargs_repr())
def __init__(self, error_msg, ctx, clazz, attr_name): # Format the context call stack, so it will be clearer. context_call_stack = "\n".join([" {0}".format(line) for line in ctx.format_exception_call_stack()]) # Format a list of all resolved references, remove identity ones (e.g. 1=1, etc.) and show only uniques resolved_reference_pairs = [(safe_repr(key), repr(value)) for key, value in ctx.cached_results.iteritems()] resolved_reference_str_list = sorted([" {0}={1}".format(a, b) for a, b in resolved_reference_pairs if a != b]) resolved_references = "\n".join(s for s, _ in itertools.groupby(resolved_reference_str_list)) msg = type(self).MESSAGE.format(error_msg=error_msg, attr_name=attr_name, clazz=clazz, context_call_stack=context_call_stack, resolved_references=resolved_references) super(InstructBufferError, self).__init__(msg) self.clazz = clazz self.attr_name = attr_name
def _args_repr(self): return ", ".join(["buffer", "position"] + [safe_repr(arg) for arg in self.arg_refs[2:]])
def __safe_repr__(self): return safe_repr(self.ref)
def __safe_repr__(self): return "[{0}:{1}]".format(safe_repr(self.start), safe_repr(self.stop))
def __safe_repr__(self): return "[{0}]".format(", ".join(safe_repr(o for o in self.list)))
def __safe_repr__(self): return "{0}.bits[{1}:{2}]".format(safe_repr(self.parent_range_ref), safe_repr(self.start), safe_repr(self.stop))
def __safe_repr__(self): return "{0}.bits[{1}]".format(safe_repr(self.parent_range_ref), safe_repr(self.ref))
def _args_repr(self): return ", ".join(["buffer", "position"] + [safe_repr(arg) for arg in self.arg_refs[2:]])
def __safe_repr__(self): return safe_repr(self.ref)
def _args_repr(self): return ", ".join(safe_repr(arg) for arg in self.arg_refs)
def __safe_repr__(self): return "[{0}:{1}]".format(safe_repr(self.start), safe_repr(self.stop))
def __safe_repr__(self): return "[{0}]".format(", ".join(safe_repr(o for o in self.list)))
def __safe_repr__(self): return "{0}.bits[{1}:{2}]".format(safe_repr(self.parent_range_ref), safe_repr(self.start), safe_repr(self.stop))
def __safe_repr__(self): return "{0}.bits[{1}]".format(safe_repr(self.parent_range_ref), safe_repr(self.ref))
def _kwargs_repr(self): return ", ".join("{0}={1}".format(k, safe_repr(v_ref)) for k, v_ref in self.kwarg_refs.items())