Skip to content

utils

oauthlib.utils ~~~~~~~~~~~~~~

This module contains utility methods used by various parts of the OAuth spec.

escape(u)

Escape a unicode string in an OAuth-compatible fashion.

Per section 3.6_ of the spec.

.. _section 3.6: https://tools.ietf.org/html/rfc5849#section-3.6

Source code in server/vendor/oauthlib/oauth1/rfc5849/utils.py
40
41
42
43
44
45
46
47
48
49
50
51
52
53
def escape(u):
    """Escape a unicode string in an OAuth-compatible fashion.

    Per `section 3.6`_ of the spec.

    .. _`section 3.6`: https://tools.ietf.org/html/rfc5849#section-3.6

    """
    if not isinstance(u, str):
        raise ValueError('Only unicode objects are escapable. ' +
                         'Got {!r} of type {}.'.format(u, type(u)))
    # Letters, digits, and the characters '_.-' are already treated as safe
    # by urllib.quote(). We need to add '~' to fully support rfc5849.
    return quote(u, safe=b'~')

filter_oauth_params(params)

Removes all non oauth parameters from a dict or a list of params.

Source code in server/vendor/oauthlib/oauth1/rfc5849/utils.py
31
32
33
34
35
36
37
def filter_oauth_params(params):
    """Removes all non oauth parameters from a dict or a list of params."""
    is_oauth = lambda kv: kv[0].startswith("oauth_")
    if isinstance(params, dict):
        return list(filter(is_oauth, list(params.items())))
    else:
        return list(filter(is_oauth, params))

filter_params(target)

Decorator which filters params to remove non-oauth_* parameters

Assumes the decorated method takes a params dict or list of tuples as its first argument.

Source code in server/vendor/oauthlib/oauth1/rfc5849/utils.py
17
18
19
20
21
22
23
24
25
26
27
28
def filter_params(target):
    """Decorator which filters params to remove non-oauth_* parameters

    Assumes the decorated method takes a params dict or list of tuples as its
    first argument.
    """
    def wrapper(params, *args, **kwargs):
        params = filter_oauth_params(params)
        return target(params, *args, **kwargs)

    wrapper.__doc__ = target.__doc__
    return wrapper

parse_authorization_header(authorization_header)

Parse an OAuth authorization header into a list of 2-tuples

Source code in server/vendor/oauthlib/oauth1/rfc5849/utils.py
74
75
76
77
78
79
80
81
82
83
def parse_authorization_header(authorization_header):
    """Parse an OAuth authorization header into a list of 2-tuples"""
    auth_scheme = 'OAuth '.lower()
    if authorization_header[:len(auth_scheme)].lower().startswith(auth_scheme):
        items = parse_http_list(authorization_header[len(auth_scheme):])
        try:
            return list(parse_keqv_list(items).items())
        except (IndexError, ValueError):
            pass
    raise ValueError('Malformed authorization header')

parse_http_list(u)

A unicode-safe version of urllib2.parse_http_list

Source code in server/vendor/oauthlib/oauth1/rfc5849/utils.py
68
69
70
71
def parse_http_list(u):
    """A unicode-safe version of urllib2.parse_http_list"""
    # With Python 2.6, parse_http_list handles unicode fine
    return urllib2.parse_http_list(u)

parse_keqv_list(l)

A unicode-safe version of urllib2.parse_keqv_list

Source code in server/vendor/oauthlib/oauth1/rfc5849/utils.py
62
63
64
65
def parse_keqv_list(l):
    """A unicode-safe version of urllib2.parse_keqv_list"""
    # With Python 2.6, parse_http_list handles unicode fine
    return urllib2.parse_keqv_list(l)