| 2206 | """ |
| 2207 | |
| 2208 | def __init__(self, hook_name, exc_info, encoded_obj, *args, **kwargs): |
| 2209 | self.hook_name = hook_name |
| 2210 | if not exc_info: |
| 2211 | exc_info = (None, None, None) |
| 2212 | exc_type, self.hook_exception, self.hook_traceback = exc_info |
| 2213 | self.object_type = type(encoded_obj) |
| 2214 | msg = "Hook %s raised %r while encoding type <%s>" % ( |
| 2215 | self.hook_name, self.hook_exception.__class__.__name__, self.object_type.__name__) |
| 2216 | if len(args) >= 1: |
| 2217 | msg += ": " + args[0] |
| 2218 | args = args[1:] |
| 2219 | super(JSONEncodeHookError, self).__init__(msg, *args, **kwargs) |
| 2220 | |
| 2221 | |
| 2222 | # ---------------------------------------------------------------------- |