
    j                       d dl mZ g dZd dlZd dlZd dlZd dlmZmZ d dl	m
Z
mZmZmZmZmZmZmZ d dlmZ e
r+ddlmZmZmZmZ dd	lmZ dd
lmZ  ede          ZddlmZ dDdZedEd            Z edFd            Z edGd            Z dGdZ dHd"Z! ed#          Z" ed$          Z#edId+            Z$edJd-            Z$dKd/Z$dHd0Z%dLd3Z&g d4Z'dMd6Z( G d7 d8e)          Z*d9+                                Z,d:a-dNd<Z.dNd=Z/dOdPdAZ0dQdCZ1dS )R    )annotations)IS_PYDANTIC_V2FastAPIPaginationWarningawait_if_asyncawait_if_corocheck_installed_extensionscreate_pydantic_model"disable_installed_extensions_check
get_calleris_async_callableis_corounwrap_annotatedverify_paramsN)	AwaitableCallable)TYPE_CHECKING	AnnotatedAnyLiteralTypeVarcast
get_originoverload)	ParamSpec   )AbstractParamsBaseRawParamsCursorRawParams	RawParamsr	   )
ParamsTypeTParams)boundr   namestrreturnr   c                    | dk    r$ddl m} t          j        dt          d           |S | dk    r$ddl m} t          j        d	t          d           |S t          d
t          d|           )Nr   r   r$   zImporting 'IS_PYDANTIC_V2' from 'fastapi_pagination.utils' is deprecated. Please import it from 'fastapi_pagination.pydantic' instead.   
stacklevelr	   r    zImporting 'create_pydantic_model' from 'fastapi_pagination.utils' is deprecated. Please import it from 'fastapi_pagination.pydantic' instead.zmodule z has no attribute )pydanticr   warningswarnDeprecationWarningr	   AttributeError__name__)r%   r   r	   s      c/DATA/AppData/hermes/projects/honcho/.venv/lib/python3.11/site-packages/fastapi_pagination/utils.py__getattr__r3   $   s    ,,,,,,K		
 	
 	
 	
 &&&333333K		
 	
 	
 	
 %$
I8IIII
J
JJ    paramsTParams | Noneparams_typesLiteral['limit-offset']tuple[TParams, RawParams]c                    d S N r5   r7   s     r2   r   r   @       Dr4   Literal['cursor']tuple[TParams, CursorRawParams]c                    d S r;   r<   r=   s     r2   r   r   E   r>   r4   r!   tuple[TParams, BaseRawParams]c                    d S r;   r<   r=   s     r2   r   r   J   r>   r4   c                    ddl m}  ||           } |                                 }|j        |vrt	          |j        d          | |fS )Nr   )resolve_paramsz params not supported)apirE   to_raw_paramstype
ValueError)r5   r7   rE   
raw_paramss       r2   r   r   O   se    ######^F##F%%''Jl**JODDDEEE:r4   objboolc                    t          | t          j                  r!| j        } t          | t          j                  !t	          j        |           p't          |           ot	          j        | j                  S r;   )
isinstance	functoolspartialfuncinspectiscoroutinefunctioncallable__call__rK   s    r2   r   r   [   sg    
S)+
,
, h S)+
,
,  &s++l0k'B]^a^jBkBklr4   PRrQ   Callable[P, Awaitable[R]]argsP.argskwargsP.kwargsc               
   K   d S r;   r<   rQ   rZ   r\   s      r2   r   r   g         Dr4   Callable[P, R]c               
   K   d S r;   r<   r_   s      r2   r   r   l   r`   r4   Callable[P, Any]c               P   K   t          |           r | |i | d {V S  | |i |S r;   )r   r_   s      r2   r   r   q   sR       +T4*6*********4    r4   c                ,    t          | t                    S r;   rN   r   rV   s    r2   r   r   x   s    c9%%%r4   coroAwaitable[R] | Rc               D   K   t          | t                    r|  d {V S | S r;   rf   )rg   s    r2   r   r   |   s/      $	"" zzzzzzKr4   )	databasesdjango	cassandratortoisemotorormormarponypiccologinobeaniesqlmodel
sqlalchemyasyncpgmongoenginepymongomodulec                H    	 t          |            dS # t          $ r Y dS w xY w)NTF)
__import__ImportError)rz   s    r2   _check_installedr~      s@    6 t    uus    
!!c                      e Zd ZdS )r   N)r1   
__module____qualname__r<   r4   r2   r   r      s        Dr4   r   aQ  
Package "{ext}" is installed.

It's recommended to use extension "fastapi_pagination.ext.{ext}" instead of default 'paginate' implementation.

Otherwise, you can disable this warning by adding the following code to your code:
from fastapi_pagination.utils import disable_installed_extensions_check

disable_installed_extensions_check()
TNonec                 
    da d S )NF)_CHECK_INSTALLED_EXTENSIONSr<   r4   r2   r
   r
      s    "'r4   c                     t           sd S t          D ]L} t          d|            r8t          j        t
                              |           t          d            d S Md S )Nzfastapi_pagination.ext.ext   r*   )r   _EXTENSIONSr~   r-   r.   _WARNING_MSGformatr   r   s    r2   r   r      s    &   ;c;;<< 	M###,,(   
 EE	 r4   depthint
str | Nonec                    t          j                    }t          | dz             D ]}| d S |j        }t	          t
          d z  |o|j                            d                    S )Nr   r1   )rR   currentframerangef_backr   r&   	f_globalsget)r   frame_s      r2   r   r      si     ""E519  =44d
EEeo&9&9*&E&EFFFr4   annc                L    t          |           t          u r| j        d         S | S )Nr   )r   r   __args__)r   s    r2   r   r      s$    #)##|AJr4   )r%   r&   r'   r   )r5   r6   r7   r8   r'   r9   )r5   r6   r7   r?   r'   r@   )r5   r6   r7   r!   r'   rB   )rK   r   r'   rL   )rQ   rY   rZ   r[   r\   r]   r'   rX   )rQ   ra   rZ   r[   r\   r]   r'   rX   )rQ   rc   rZ   r[   r\   r]   r'   r   )rg   rh   r'   rX   )rz   r&   r'   rL   )r'   r   )r   )r   r   r'   r   )r   r   r'   r   )2
__future__r   __all__rO   rR   r-   collections.abcr   r   typingr   r   r   r   r   r   r   r   typing_extensionsr   basesr   r   r   r   r,   r	   typesr!   r"   r   r3   r   r   rW   rX   r   r   r   r   r~   UserWarningr   stripr   r   r
   r   r   r   r<   r4   r2   <module>r      s0   " " " " " "         / / / / / / / / ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ' ' ' ' ' ' )PPPPPPPPPPPP//////!!!!!!gi~666G((((((K K K K8 
	 	 	 
	 
	 	 	 
	 
	 	 	 
		 	 	 	m m m m IcNNGCLL 
	 	 	 
	 
	 	 	 
	! ! ! !& & & &     (   	 	 	 	 	{ 	 	 		 
EGG  # ( ( ( (
   	G 	G 	G 	G 	G     r4   