code: def _push_processor(self, proc, index=None):
          
  
          if index is None:
              self._procstack.append(proc)
          else:
              self._procstack.insert(index, proc)
docs: Pushes a processor onto the processor stack.  Processors are
          objects with proc_request(), proc_response(), and/or
          proc_exception() methods, which can intercept requests,
          responses, and exceptions.  When a method invokes the send()
          method on a request, the proc_request() method on each
          processor is called in turn.  Likewise, responses are
          processed by the proc_response() method of each processor, in
          the reverse order of the calls to proc_request().  The
          proc_exception() methods are called if an exception is raised
          instead of a response being returned.
  
          Note that this method can append a processor to the stack, if
          the index parameter is None (the default), or a processor may
          be inserted into the stack by specifying an integer index.
  
          For more information about processors, see the
          requiem.Processor class.