
    g                         d dl Z d dlZd dlmZ d dlmZ d dlmZ ej                  dk\  rd dl	m
Z
 nd dlm
Z
 dZdZ G d	 d
e
      Z G d de      ZdedefdZdedefdZdedefdZy)    N)urlparse)AsyncClient)Client)      )StrEnum   z3^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$c                   H    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZy)FunctionRegionanyzap-northeast-1zap-northeast-2z
ap-south-1zap-southeast-1zap-southeast-2zca-central-1zeu-central-1z	eu-west-1z	eu-west-2z	eu-west-3z	sa-east-1z	us-east-1z	us-west-1z	us-west-2N)__name__
__module____qualname__AnyApNortheast1ApNortheast2ApSouth1ApSoutheast1ApSoutheast2
CaCentral1
EuCentral1EuWest1EuWest2EuWest3SaEast1UsEast1UsWest1UsWest2     C/var/www/openai/venv/lib/python3.12/site-packages/supafunc/utils.pyr   r      sM    
C#L#LH#L#LJJGGGGGGGr    r   c                       e Zd ZddZy)
SyncClientNc                 $    | j                          y )N)close)selfs    r!   aclosezSyncClient.aclose%   s    

r    )returnN)r   r   r   r'   r   r    r!   r#   r#   $   s    r    r#   targetr(   c                 ^    t        | t              xr t        | j                               dkD  S )Nr   )
isinstancestrlenstrip)r)   s    r!   is_valid_str_argr/   )   s$    fc">s6<<>':Q'>>r    urlc                 0    t        |       j                  dv S )N>   httphttps)r   scheme)r0   s    r!   is_http_urlr5   -   s    C=#444r    valuec                    t        | t              sy| j                         } | j                  d      r| dd } | j	                  d      dk7  ry| j                  d      D ]-  }t        j                  t        |t        j                        r- y y)z@Checks if value looks like a JWT, does not do any extra parsing.FzBearer    N.   T)
r+   r,   r.   
startswithcountsplitresearchBASE64URL_REGEX
IGNORECASE)r6   parts     r!   is_valid_jwtrC   1   s|    eS! KKME 	"ab	 {{31C yy$> ! r    )r>   sysurllib.parser   httpxr   r   
BaseClientversion_infoenumr   strenumDEFAULT_FUNCTION_CLIENT_TIMEOUTr@   r   r#   r,   boolr/   r5   rC   r   r    r!   <module>rM      s    	 
 ! , &w #$ HW $ 
?S ?T ?5S 5T 5  r    