HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib64/python3.10/site-packages/stripe/__pycache__/util.cpython-310.pyc
o

&we�.�@s�UddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
mZddlm
Z
mZddlmZmZmZmZmZmZmZmZmZddlmZddlZer]ddlmZej�d�Ze� d�Z!ej"e#d	<gd
�Z$e%ed�rzej&Z&n es�ed�Z'e(d
d�de)dee
e*de+dee'ge'ffdd�Z&dd�Z,dd�Z-dd�Z.dd�Z/dd�Z0dd�Z1d d!�Z2e%ed"�r�d#d$�Z3nd%d$�Z3d&d'�Z4eeee)efed(fZ5e					dFd)eeee)effd*ee)d+ee)d,ee)d-eee)efd.ee
d/dd/fd0d1��Z6e					dFd)ee5d*ee)d+ee)d,ee)d-eee)efd.ee
d/ded/fd2d1��Z6					dFd)e5d*ee)d+ee)d,ee)d-eee)efd.ee
d/ded/ed/ffd3d1�Z6d4d5�Z7ed6e)dee)e)ffd7d8��Z8edGd9d8��Z8d6ee)dfdeee)e)fdffd:d8�Z8ed;�Z9d-eee)efd<e)d=e9dee9fd>d?�Z:d@dA�Z;dBdC�Z<GdDdE�dEe=�Z>dS)H�N)�	parse_qsl�
quote_plus)�Type�
TYPE_CHECKING)	�Callable�TypeVar�Union�overload�Dict�List�cast�Any�Optional)�StripeResponse)�StripeObject�
STRIPE_LOG�stripe�logger)�ior�log_info�	log_debug�dashboard_link�logfmt�
deprecatedr�_T���category�
stacklevel�__msgrr�returncsdtdtf���fdd�}|S)N�__argr cs��dur	��_�St�t�r3�j��jtju�t��������fdd��}t|��_��_|_�St	��rMt�������fdd��}��_|_|St
d�����)NcsXtj���dd��tjur�|g|�Ri|��S�s(|s |r(t|j�d����|�S)Nrrz() takes no arguments)�warnings�warn�object�__new__�	TypeError�__name__)�cls�args�kwargs)rr�has_init�original_newr��D/home/arjun/projects/env/lib/python3.10/site-packages/stripe/util.pyr%Fs
�
z.deprecated.<locals>.decorator.<locals>.__new__cs"tj���dd��|i|��S)Nrr)r"r#)r)r*)r!rrrr-r.�wrapperXs
�z.deprecated.<locals>.decorator.<locals>.wrapperzY@deprecated decorator with non-None category must be applied to a class or callable, not )�__deprecated__�
isinstance�typer%�__init__r$�	functools�wraps�staticmethod�callabler&)r!r%r/�rrr)r!r+r,r.�	decorator>s*

��zdeprecated.<locals>.decorator)r)rrrr9r-r8r.r8s)cCsdtjvo
dtj�dd�vS)N�APPENGINE_RUNTIME�Dev�SERVER_SOFTWARE�)�os�environ�getr-r-r-r.�is_appengine_devjs�rAcCs tjdvrtjStdvrtSdS)N��debug�info)r�logrr-r-r-r.�_console_log_levelps

rFcKs<ttdd|i|���}t�dkrt|tjd�t�|�dS)N�messagerC��filer-)r�dictrF�print�sys�stderrrrC�rG�params�msgr-r-r.ry�
rcKs<ttdd|i|���}t�dvrt|tjd�t�|�dS)NrGrBrHr-)rrJrFrKrLrMrrDrNr-r-r.r�rQrcCs4tjdurdSt�dtj�}|durdS|��dS)Nzsk_(live|test)_r)r�api_key�re�match�groups)rTr-r-r.�_test_or_live_environment�s
rVcCsdjt�pd|d�S)Nz/https://dashboard.stripe.com/{env}/logs/{reqid}�test)�env�reqid)�formatrV)�
request_idr-r-r.r�s
�rcs(dd��d��fdd�t|���D��S)NcSs\t|d�r
|�d�}t|t�st|�}t�d|�rt|�}t�d|�r't|�}dj||d�S)N�decodezutf-8z\sz{key}={val}��key�val)�hasattrr\r1�strrS�search�reprrZr]r-r-r.�fmt�s


zlogfmt.<locals>.fmt� csg|]	\}}�||��qSr-r-)�.0r^r_�rdr-r.�
<listcomp>��zlogfmt.<locals>.<listcomp>)�join�sorted�items)�propsr-rgr.r�s r�compare_digestcCst�||�S�N)�hmacrn)�val1�val2r-r-r.�secure_compare�srscCs�t|�t|�kr
dSd}t|t�r*t|t�r*t||�D]
\}}|||AO}q|dkSt||�D]\}}|ttt|��ttt|��AO}q/|dkS)a[
        Returns True if the two strings are equal, False otherwise.
        The time taken is independent of the number of characters that match.
        For the sake of simplicity, this function executes in constant time
        only when the two strings have the same length. It short-circuits when
        they have different lengths.
        Fr)�lenr1�bytes�zip�ordrra)rqrr�result�x�yr-r-r.rs�s�"cCsddlm}|S)Nr��OBJECT_CLASSES)�stripe.object_classesr|r{r-r-r.�get_object_classes�sr~�Resp�resprR�stripe_version�stripe_accountrO�klass_rcC�dSror-�r�rRr�r�rOr�r-r-r.�convert_to_stripe_object��	r�cCr�ror-r�r-r-r.r��r�c
s�d}t|tjj�r|}tt|j�}t|t�r"����fdd�|D�St|t�rwt|tj	j
�sw|��}|�d�}t|t
�rFt��|tj	j
�}n�durM�}ntj	j
}|j|���|d�}	|durut|	d�rut|	d�dksrt|	d�dkru||	_|	Std|�S)Nc	s$g|]}ttd|�����d��qS)z%Union[StripeResponse, Dict[str, Any]])r�)r�r�rf�i�rRr�r�r�r-r.rh�s���z,convert_to_stripe_object.<locals>.<listcomp>r$)r�r��
last_response�list�
search_resultr)r1r�stripe_responserrr�datar�rJ�
stripe_objectr�copyr@rar~�construct_fromr`�getattr�_retrieve_params)
r�rRr�r�rOr�r��
klass_name�klass�objr-r�r.r��sF
�
�

���
cCs8t|t�rdd�|D�St|t�rdd�|��D�S|S)z�Converts a StripeObject back to a regular dict.

    Nested StripeObjects are also converted back to regular dicts.

    :param obj: The StripeObject to convert.

    :returns: The StripeObject as a dict.
    cSsg|]}t|��qSr-��convert_to_dictr�r-r-r.rh7sz#convert_to_dict.<locals>.<listcomp>cSsi|]	\}}|t|��qSr-r�)rf�k�vr-r-r.�
<dictcomp><riz#convert_to_dict.<locals>.<dictcomp>)r1r�rJrl)r�r-r-r.r�-s

	
r��idempotency_keycCr�ror-�r�r-r-r.�populate_headersAsr�cCr�ror-r�r-r-r.r�HscCs|durd|iSdS)NzIdempotency-Keyr-r�r-r-r.r�Ms�T�key_name�
default_valuecCs6|}d}|dur||vr||}||=|dur|}|Sror-)rOr�r��value�params_valuer-r-r.�read_special_variableXsr�cCs|��}|�|�|Sro)r��update)ryrz�zr-r-r.�merge_dictshs
r�cCst|�}|Sro)r)�id�quotedIdr-r-r.�sanitize_idnsr�c@sPeZdZUdd�Zed�Zeed<dedefdd�Zdd	e	e
efd
d�ZdS)
�class_method_variantcCs
||_dSro)�class_method_name)�selfr�r-r-r.r3ts
zclass_method_variant.__init__r��methodr cCs||_tt|�Sro)r�rr�)r�r�r-r-r.�__call__{s
zclass_method_variant.__call__N�objtypecs t��j����fdd��}|S)Ncs��dur�j�g|�Ri|��St|�dkr3�dur3t|d��r3�j|dg|dd��Ri|��St��j�}||i|��S)Nrr)r�rtr1r�r�)r)r*�class_method�r�r�r�r-r.�_wrapper�s�$z.class_method_variant.__get__.<locals>._wrapper)r4r5r�)r�r�r�r�r-r�r.�__get__s
zclass_method_variant.__get__ro)r'�
__module__�__qualname__r3rr�r
�__annotations__r�rrr�r-r-r-r.r�ss
r�)NNNNN)r�Nr N)?r4rpr�loggingrLr>rSr"r�urllib.parserr�typing_extensionsrr�typingrrrr	r
rrr
r�stripe.stripe_responser�stripe.stripe_objectrr?r@r�	getLoggerr�Loggerr��__all__r`rr�DeprecationWarningra�Warning�intrArFrrrVrrrsr~rr�r�r�r�r�r�r�r$r�r-r-r-r.�<module>s
,


��
��
�2		

������
��������
��
������
�
�D�
�
�
����
�