code: def _render(self, request, formencode=False, realm=None):
          
          # TODO what if there are body params on a header-type auth?
          # TODO what if there are query params on a body-type auth?
  
          uri, headers, body = request.uri, request.headers, request.body
  
          # TODO: right now these prepare_* methods are very narrow in scope--they
          # only affect their little thing. In some cases (for example, with
          # header auth) it might be advantageous to allow these methods to touch
          # other parts of the request, like the headers—so the prepare_headers
          # method could also set the Content-Type header to x-www-form-urlencoded
          # like the spec requires. This would be a fundamental change though, and
          # I'm not sure how I feel about it.
          if self.signature_type == SIGNATURE_TYPE_AUTH_HEADER:
              headers = parameters.prepare_headers(
                  request.oauth_params, request.headers, realm=realm)
          elif self.signature_type == SIGNATURE_TYPE_BODY and request.decoded_body is not None:
              body = parameters.prepare_form_encoded_body(
                  request.oauth_params, request.decoded_body)
              if formencode:
                  body = urlencode(body)
              headers['Content-Type'] = 'application/x-www-form-urlencoded'
          elif self.signature_type == SIGNATURE_TYPE_QUERY:
              uri = parameters.prepare_request_uri_query(
                  request.oauth_params, request.uri)
          else:
              raise ValueError('Unknown signature type specified.')
  
          return uri, headers, body
docs: Render a signed request according to signature type
  
          Returns a 3-tuple containing the request URI, headers, and body.
  
          If the formencode argument is True and the body contains parameters, it
          is escaped and returned as a valid formencoded string.