code: def start(self):
          
          super().start()
  
          try:
              initial = self._get_initial_context()
              self._stack = ContextCurrifier(self.wrapped, *initial.args, **initial.kwargs)
              if isconfigurabletype(self.wrapped):
                  try:
                      self.wrapped = self.wrapped(_final=True)
                  except Exception as exc:
                      # Not normal to have a partially configured object here, so let's warn the user instead of having get into
                      # the hard trouble of understanding that by himself.
                      raise TypeError(
                          "Configurables should be instanciated before execution starts.\nGot {!r}.\n".format(
                              self.wrapped
                          )
                      ) from exc
                  else:
                      raise TypeError(
                          "Configurables should be instanciated before execution starts.\nGot {!r}.\n".format(
                              self.wrapped
                          )
                      )
              self._stack.setup(self)
          except Exception:
              # Set the logging level to the lowest possible, to avoid double log.
              self.fatal(sys.exc_info(), level=0)
  
              # We raise again, so the error is not ignored out of execution loops.
              raise
docs: Starts this context, a.k.a the phase where you setup everything which will be necessary during the whole
          lifetime of a transformation.
  
          The "ContextCurrifier" is in charge of setting up a decorating stack, that includes both services and context
          processors, and will call the actual node callable with additional parameters.