
    ѮhO                       d dl mZ g dZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZmZmZmZmZmZmZmZ d dlmZmZ d dlmZmZmZ e
r&dd	lmZmZmZmZ dd
lm Z   ede      Z! ede      Z" ejF                  d      Z$ed&d       Z%ed'd       Z%ed(d       Z%d(dZ%d)dZ& ed      Z' ed      Z(ed*d       Z)ed+d       Z)d,dZ)d)dZ*d-dZ+g dZ,d.dZ- G d de.      Z/dja                         Z1d a2d/d!Z3d/d"Z4d0d1d#Z5d2d$Z6d3d%Z7y)4    )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)	TYPE_CHECKING	AnnotatedAnyCallableOptionalTypeVarUnioncastoverload)VERSION	BaseModel)Literal	ParamSpec
get_origin   )AbstractParamsBaseRawParamsCursorRawParams	RawParams)
ParamsTypeTParams)boundTModelz2.c                     y N paramsparams_typess     j/home/www/academy-backend.kofcorporation.com/venv/lib/python3.12/site-packages/fastapi_pagination/utils.pyr   r   &           c                     y r)   r*   r+   s     r.   r   r   +   r/   r0   c                     y r)   r*   r+   s     r.   r   r   0   r/   r0   c                    ddl m}  ||       } | j                         }|j                  |vrt	        |j                  d      | |fS )Nr   )resolve_paramsz params not supported)apir4   to_raw_paramstype
ValueError)r,   r-   r4   
raw_paramss       r.   r   r   5   sL    #F#F%%'Jl*JOO..CDEE:r0   c                
   t        | t        j                        r'| j                  } t        | t        j                        r't	        j
                  |       xs, t        |       xr t	        j
                  | j                        S r)   )
isinstance	functoolspartialfuncasyncioiscoroutinefunctioncallable__call__objs    r.   r   r   A   s`    
S)++
,hh S)++
, &&s+l0k'B]B]^a^j^jBklr0   PRc                  K   y wr)   r*   r>   argskwargss      r.   r   r   M   	        c                  K   y wr)   r*   rH   s      r.   r   r   R   rK   rL   c               T   K   t        |       r | |i | d {   S  | |i |S 7 wr)   )r   rH   s      r.   r   r   W   s6     4*6***    +s   (&(c                "    t        | t              S r)   )r;   r   rC   s    r.   r   r   ^   s    c9%%r0   c               b   K   t        | t              rt        t        |  d {         S | S 7 
wr)   )r;   r   r   rF   )coros    r.   r   r   b   s)     $	"ATz""K "s    /-
/)	databasesdjango	cassandratortoisemotorormormarponypiccologinobeaniesqlmodel
sqlalchemyasyncpgmongoenginepymongoc                :    	 t        |        y# t        $ r Y yw xY w)NTF)
__import__ImportError)modules    r.   _check_installedrf   }   s(    6   s    	c                      e Zd Zy)r   N)__name__
__module____qualname__r*   r0   r.   r   r      s    r0   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()
Tc                     da y )NF)_CHECK_INSTALLED_EXTENSIONSr*   r0   r.   r
   r
      s    "'r0   c                     t         sy t        D ]B  } t        d|        st        j                  t
        j                  |       t        d        y  y )Nzfastapi_pagination.ext.ext   )
stacklevel)rl   _EXTENSIONSrf   warningswarn_WARNING_MSGformatr   rn   s    r.   r   r      sO    & 5cU;<MM###,(
 r0   c                    t        j                         }t        | dz         D ]  }| y |j                  } t	        t
        t           |xr |j                  j                  d            S )Nr   rh   )	inspectcurrentframerangef_backr   r   str	f_globalsget)depthframe_s      r.   r   r      s`      "E519 =	 uH)<)<Z)HIIr0   c               D    t         r| j                  |d      S  | di |S )NT)from_attributesr*   )r   model_validate)	model_clsrJ   s     r.   r	   r	      s)    '''EEvr0   c                F    t        |       t        u r| j                  d   S | S )Nr   )r   r   __args__)anns    r.   r   r      s!    #)#||AJr0   )r,   Optional[TParams]r-   zLiteral['limit-offset']returnztuple[TParams, RawParams])r,   r   r-   zLiteral['cursor']r   ztuple[TParams, CursorRawParams])r,   r   r-   r$   r   ztuple[TParams, BaseRawParams])rD   r   r   bool)r>   zCallable[P, Awaitable[R]]rI   P.argsrJ   P.kwargsr   rF   )r>   zCallable[P, R]rI   r   rJ   r   r   rF   )r>   zCallable[P, Any]rI   r   rJ   r   r   r   )rQ   zUnion[Awaitable[R], R]r   rF   )re   r|   r   r   )r   None)r   )r   intr   zOptional[str])r   ztype[TModel]rJ   r   r   r'   )r   r   r   r   )8
__future__r   __all__r?   r<   rx   rs   collections.abcr   typingr   r   r   r   r   r   r   r   r   pydanticr   r   typing_extensionsr   r   r   basesr    r!   r"   r#   typesr$   r%   r'   
startswithr   r   r   rE   rF   r   r   r   rr   rf   UserWarningr   stripru   rl   r
   r   r   r	   r   r*   r0   r.   <module>r      sG   "     % d d d ' < <PP!i~6GXY/F###D) 
	 
	 
	 
	 
	 
		m cNCL 
	 
	 
	 
	!&(	{ 		 
EG  # (
	Jr0   