o
    zsg                     @  s   d dl mZ d dlZd dlmZmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZ dZG dd	 d	eZd ddZd!ddZedZd"ddZd#ddZd$ddZdS )%    )annotationsN)AnyTypeTypeVarcast
get_origin)urlparse)AsyncClient)Clientz3^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$c                   @  s   e Zd ZdddZdS )
SyncClientreturnNonec                 C  s   |    d S N)close)self r   K/var/www/html/minecraft/env/lib/python3.10/site-packages/postgrest/utils.pyaclose   s   zSyncClient.acloseN)r   r   )__name__
__module____qualname__r   r   r   r   r   r      s    r   paramr   r   strc                   s2   t |  d}t fdd|D rd  dS  S )Nz,:()c                 3  s    | ]}| v V  qd S r   r   ).0char	param_strr   r   	<genexpr>   s    z!sanitize_param.<locals>.<genexpr>")r   any)r   reserved_charsr   r   r   sanitize_param   s
   r!   patternc                 C  s   t | ddS )N%*)r!   replace)r"   r   r   r   sanitize_pattern_param   s   r&   _Ttyptype[type[_T]]type[_T]c                 C  s   t tt t| S r   )r   r   r'   r   )r(   r   r   r   get_origin_and_cast!   s   r+   urlboolc                 C  s   t | jdv S )N>   httphttps)r   scheme)r,   r   r   r   is_http_url,   s   r1   valuec                 C  sh   t | tsdS |  } | dr| dd } | ddkrdS | dD ]}tt|tj	s1 dS q$dS )z@Checks if value looks like a JWT, does not do any extra parsing.FzBearer    N.   T)

isinstancer   strip
startswithcountsplitresearchBASE64URL_REGEX
IGNORECASE)r2   partr   r   r   is_valid_jwt0   s   

r@   )r   r   r   r   )r"   r   r   r   )r(   r)   r   r*   )r,   r   r   r-   )r2   r   r   r-   )
__future__r   r;   typingr   r   r   r   r   urllib.parser   httpxr	   r
   
BaseClientr=   r   r!   r&   r'   r+   r1   r@   r   r   r   r   <module>   s    



