def get_normalized_parameters(self):
        """Return a string that contains the parameters that must be signed."""
        items = []
        for key, value in self.items():
            if key == 'oauth_signature':
                continue
            # 1.0a/9.1.1 states that kvp must be sorted by key, then by value,
            # so we unpack sequence values into multiple items for sorting.
            if isinstance(value, STRING_TYPES):
                items.append((to_utf8_if_string(key), to_utf8(value)))
            else:
                try:
                    value = list(value)
                except TypeError as e:
                    assert 'is not iterable' in str(e)
                    items.append((to_utf8_if_string(key), to_utf8_if_string(value)))
                else:
                    items.extend((to_utf8_if_string(key), to_utf8_if_string(item)) for item in value)

        # Include any query string parameters from the provided URL
        query = urlparse(self.url)[4]

        url_items = self._split_url_string(query).items()
        url_items = [(to_utf8(k), to_utf8_optional_iterator(v)) for k, v in url_items if k != 'oauth_signature' ]
        items.extend(url_items)

        items.sort()
        encoded_str = urlencode(items, True)
        # Encode signature parameters per Oauth Core 1.0 protocol
        # spec draft 7, section 3.6
        # (http://tools.ietf.org/html/draft-hammer-oauth-07#section-3.6)
        # Spaces must be encoded with "%20" instead of "+"
        return encoded_str.replace('+', '%20').replace('%7E', '~')
def get_normalized_parameters ( self ) : items = [ ] for key , value in self . items ( ) : if key == 'oauth_signature' : continue if isinstance ( value , STRING_TYPES ) : items . append ( ( to_utf8_if_string ( key ) , to_utf8 ( value ) ) ) else : try : value = list ( value ) except TypeError as e : assert 'is not iterable' in str ( e ) items . append ( ( to_utf8_if_string ( key ) , to_utf8_if_string ( value ) ) ) else : items . extend ( ( to_utf8_if_string ( key ) , to_utf8_if_string ( item ) ) for item in value ) query = urlparse ( self . url ) [ 4 ] url_items = self . _split_url_string ( query ) . items ( ) url_items = [ ( to_utf8 ( k ) , to_utf8_optional_iterator ( v ) ) for k , v in url_items if k != 'oauth_signature' ] items . extend ( url_items ) items . sort ( ) encoded_str = urlencode ( items , True ) return encoded_str . replace ( '+' , '%20' ) . replace ( '%7E' , '~' )
Return a string that contains the parameters that must be signed.