code: def error(
          cls,
          template,  # human readable template
          default_params={},  # parameters for template
          cause=None,  # pausible cause
          stack_depth=0,
          **more_params
      ):
          
          if not is_text(template):
              sys.stderr.write(str("Log.error was expecting a unicode template"))
              Log.error("Log.error was expecting a unicode template")
  
          if default_params and isinstance(listwrap(default_params)[0], BaseException):
              cause = default_params
              default_params = {}
  
          params = Data(dict(default_params, **more_params))
  
          add_to_trace = False
          if cause == None:
              causes = None
          elif is_list(cause):
              causes = []
              for c in listwrap(cause):  # CAN NOT USE LIST-COMPREHENSION IN PYTHON3 (EXTRA STACK DEPTH FROM THE IN-LINED GENERATOR)
                  causes.append(Except.wrap(c, stack_depth=1))
              causes = FlatList(causes)
          elif isinstance(cause, BaseException):
              causes = Except.wrap(cause, stack_depth=1)
          else:
              causes = None
              Log.error("can only accept Exception, or list of exceptions")
  
          trace = exceptions.extract_stack(stack_depth + 1)
  
          if add_to_trace:
              cause[0].trace.extend(trace[1:])
  
          e = Except(context=exceptions.ERROR, template=template, params=params, cause=causes, trace=trace)
          raise_from_none(e)
docs: raise an exception with a trace for the cause too
  
          :param template: *string* human readable string with placeholders for parameters
          :param default_params: *dict* parameters to fill in template
          :param cause: *Exception* for chaining
          :param stack_depth:  *int* how many calls you want popped off the stack to report the *true* caller
          :param log_context: *dict* extra key:value pairs for your convenience
          :param more_params: *any more parameters (which will overwrite default_params)
          :return: