File: //usr/lib/python3.9/site-packages/oauthlib/oauth1/rfc5849/__pycache__/utils.cpython-39.opt-1.pyc
a
\��`5
� @ s` d Z ddlmZ ddlmZmZ dZdd� Zdd� Z d d
� Z
dd� Zd
d� Zdd� Z
dd� ZdS )zn
oauthlib.utils
~~~~~~~~~~~~~~
This module contains utility methods used by various parts of the OAuth
spec.
� N)�quote�unquoteZ>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789c s � fdd�}� j |_ |S )z�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.
c s t | �} � | g|�R i |��S )N)�filter_oauth_params)�params�args�kwargs��target� �A/usr/lib/python3.9/site-packages/oauthlib/oauth1/rfc5849/utils.py�wrapper s zfilter_params.<locals>.wrapper)�__doc__)r r r
r r �
filter_params s r c C s: dd� }t | t�r(tt|t| �� ���S tt|| ��S dS )zARemoves all non oauth parameters from a dict or a list of params.c S s | d � d�S )Nr Zoauth_)�
startswith)Zkvr
r
r �<lambda>! � z%filter_oauth_params.<locals>.<lambda>N)�
isinstance�dict�list�filter�items)r Zis_oauthr
r
r r s
r c C s. t | t�s"tdd�| t| �� ��t| dd�S )z�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
z$Only unicode objects are escapable. zGot {!r} of type {}.� ~)�safe)r �str�
ValueError�format�typer ��ur
r
r �escape( s
�r c C s t | t�std��t| �S )Nz%Only unicode objects are unescapable.)r r r r r r
r
r �unescape8 s
r c C s
t �| �S )z1A unicode-safe version of urllib2.parse_keqv_list)�urllib2�parse_keqv_list)�lr
r
r r"