def __call__(self, r):
        """Add OAuth parameters to the request.

        Parameters may be included from the body if the content-type is
        urlencoded, if no content type is set a guess is made.
        """
        # Overwriting url is safe here as request will not modify it past
        # this point.
        log.debug("Signing request %s using client %s", r, self.client)

        content_type = r.headers.get("Content-Type", "")
        if (
            not content_type
            and extract_params(r.body)
            or self.client.signature_type == SIGNATURE_TYPE_BODY
        ):
            content_type = CONTENT_TYPE_FORM_URLENCODED
        if not isinstance(content_type, unicode):
            content_type = content_type.decode("utf-8")

        is_form_encoded = CONTENT_TYPE_FORM_URLENCODED in content_type

        log.debug(
            "Including body in call to sign: %s",
            is_form_encoded or self.force_include_body,
        )

        if is_form_encoded:
            r.headers["Content-Type"] = CONTENT_TYPE_FORM_URLENCODED
            r.url, headers, r.body = self.client.sign(
                unicode(r.url), unicode(r.method), r.body or "", r.headers
            )
        elif self.force_include_body:
            # To allow custom clients to work on non form encoded bodies.
            r.url, headers, r.body = self.client.sign(
                unicode(r.url), unicode(r.method), r.body or "", r.headers
            )
        else:
            # Omit body data in the signing of non form-encoded requests
            r.url, headers, _ = self.client.sign(
                unicode(r.url), unicode(r.method), None, r.headers
            )

        r.prepare_headers(headers)
        r.url = to_native_string(r.url)
        log.debug("Updated url: %s", r.url)
        log.debug("Updated headers: %s", headers)
        log.debug("Updated body: %r", r.body)
        return r
def __call__ ( self , r ) : log . debug ( "Signing request %s using client %s" , r , self . client ) content_type = r . headers . get ( "Content-Type" , "" ) if ( not content_type and extract_params ( r . body ) or self . client . signature_type == SIGNATURE_TYPE_BODY ) : content_type = CONTENT_TYPE_FORM_URLENCODED if not isinstance ( content_type , unicode ) : content_type = content_type . decode ( "utf-8" ) is_form_encoded = CONTENT_TYPE_FORM_URLENCODED in content_type log . debug ( "Including body in call to sign: %s" , is_form_encoded or self . force_include_body , ) if is_form_encoded : r . headers [ "Content-Type" ] = CONTENT_TYPE_FORM_URLENCODED r . url , headers , r . body = self . client . sign ( unicode ( r . url ) , unicode ( r . method ) , r . body or "" , r . headers ) elif self . force_include_body : r . url , headers , r . body = self . client . sign ( unicode ( r . url ) , unicode ( r . method ) , r . body or "" , r . headers ) else : r . url , headers , _ = self . client . sign ( unicode ( r . url ) , unicode ( r . method ) , None , r . headers ) r . prepare_headers ( headers ) r . url = to_native_string ( r . url ) log . debug ( "Updated url: %s" , r . url ) log . debug ( "Updated headers: %s" , headers ) log . debug ( "Updated body: %r" , r . body ) return r
Add OAuth parameters to the request.

        Parameters may be included from the body if the content-type is
        urlencoded, if no content type is set a guess is made.