docs: def raise_error(self, e, exc_info=None):
          """this is just a wrapper to make the passed in exception an InterfaceError"""
          if not exc_info:
              exc_info = sys.exc_info()
  
          if not isinstance(e, InterfaceError):
              # allow python's built in errors to filter up through
              # https://docs.python.org/2/library/exceptions.html
              #if not hasattr(exceptions, e.__class__.__name__):
              if not hasattr(builtins, e.__class__.__name__):
                  e = self._create_error(e, exc_info)
  
          reraise(e.__class__, e, exc_info[2])