o
    =i0                     @  s   d dl m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 dlmZ d dlmZ d dlmZ d	d
lmZ G dd deZd"ddZd#ddZd$ddZededZd%dd Zd!S )&    )annotations)AnyTypeTypeVarcast
get_origin)urlparse)
deprecated)AsyncClient)Client)	BaseModel)URL   )__version__c                      sD   e Zd Zeddedd fddZeddeddd	d
Z  ZS )
SyncClientz1.0.2z3.0.0z+Use `Client` from the httpx package insteadreturnNonec                   s   t  j|i | d S N)super__init__)selfargskwargs	__class__ L/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/postgrest/utils.pyr      s   zSyncClient.__init__z=Use `close` method from `Client` in the httpx package insteadc                 C  s   |    d S r   )close)r   r   r   r   aclose   s   zSyncClient.aclose)r   r   )__name__
__module____qualname__r	   r   r   r   __classcell__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   r2   urlr   boolc                 C  s
   | j dv S )N>   httphttps)scheme)r3   r   r   r   is_http_url,   s   
r8   
TBaseModel)boundmodelType[TBaseModel]c                 C  s*   z|  |W S  ty   | | Y S w )zcCompatibility layer between pydantic 1 and 2 for parsing an instance
    of a BaseModel from varied)model_validate_jsonAttributeError	parse_raw)r;   contentsr   r   r   r=   3   s
   r=   N)r#   r   r   r$   )r.   r$   r   r$   )r3   r   r   r4   )r;   r<   r   r9   )
__future__r   typingr   r   r   r   r   urllib.parser   deprecationr	   httpxr
   r   
BaseClientpydanticr   yarlr   versionr   r   r-   r2   r8   r9   r=   r   r   r   r   <module>   s    


