
    Ѯh                        U d dgZ ddlZddlmZ ddlmZmZmZmZ ddl	m
Z
mZmZ ddlmZmZ ddlmZ dd	lmZmZ dd
lmZmZ ddlmZ ddl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&m'Z' eee(eef   e)f   Z*ee+d<   ede,e   de-e*df   dee   deee
f   deeeef      dede!fd       Z.edddddddde)deee
f   de,e   de*dee   deeeef      dee   dee&   dee$   dee   defd       Z/e ed       dddddddde
de,e   de*dee   dee   dee   dee%   dee$   dee   defd!              Z0eddddddddede,e   de*dee   dee   dee   dee'   dee$   dee   defd"       Z0ddddddddeee
f   de,e   de*dee   deeeef      dee   dee&   dee$   dee   defd#Z0dddddddde
de,e   de*dee   dee   dee   dee%   dee$   dee   defd$Z1y)%	apaginatepaginate    N)partial)AnyOptionalUnionoverload)	AIOEngineModel
SyncEngine)AIOSessionTypeSyncSessionType)QueryExpression)	TypeAlias
deprecated)AbstractParams	RawParams)Config)AnyFlowflow	flow_exprrun_async_flowrun_sync_flow)LimitOffsetFlowgeneric_flow)AdditionalDataAsyncItemsTransformerItemsTransformerSyncItemsTransformer_Querymodelqueries.sortenginesession
raw_paramsreturnc              #   x   K    |j                   | g||||j                  |j                  xs dd}g |S w)Nr   )r#   r%   limitskip)findr)   offset)r!   r"   r#   r$   r%   r&   results          q/home/www/academy-backend.kofcorporation.com/venv/lib/python3.12/site-packages/fastapi_pagination/ext/odmantic.py_limit_offset_flowr/      sX      6;;	 #! F V9s   8:r#   r%   paramstransformeradditional_dataconfigis_asyncr1   r2   r3   r4   c             '      	K   t        t        	fd      t        t        	|      |||||       E d {   }
|
S 7 w)Nc                  0      j                   gdiS )Nr%   )count)r$   r!   r"   r%   s   r.   <lambda>z _paginate_flow.<locals>.<lambda>;   s'    LFLL       )
total_flowlimit_offset_flowr1   r2   r3   r4   async_)r   r   r   r/   )r5   r$   r!   r#   r%   r1   r2   r3   r4   r"   pages    `` `    ` r.   _paginate_flowr?   *   s^      #
 "
 ') D. K/s   7AAAzAUse `apaginate` instead. This function will be removed in v0.15.0c                   K   y wN 	r$   r!   r#   r%   r1   r2   r3   r4   r"   s	            r.   r   r   S   s      	s   c                     y rA   rB   rC   s	            r.   r   r   e   s     	r:   c                    t        | t              r0t        j                  dt        d       t        | |g||||||dS t        t        d| |g|||||||d      S )NzJUse `apaginate` instead. This function overload will be removed in v0.15.0   )
stacklevel)r#   r%   r1   r2   r3   Fr0   )
isinstancer
   warningswarnDeprecationWarningr   r   r?   rC   s	            r.   r   r   v   s     &)$X	

 	
 	
 #+	
 		
 	
 		

 #+	
 r:   c                \   K   t        t        d| |g|||||||d       d {   S 7 w)NTr0   )r   r?   rC   s	            r.   r   r      sS       	
 		

 #+	
   s   #,*,)2__all__rI   	functoolsr   typingr   r   r   r	   odmanticr
   r   r   odmantic.enginer   r   odmantic.queryr   typing_extensionsr   r   fastapi_pagination.basesr   r   fastapi_pagination.configr   fastapi_pagination.flowr   r   r   r   r   fastapi_pagination.flowsr   r   fastapi_pagination.typesr   r   r   r   dictboolr    __annotations__typetupler/   r?   r   r   rB   r:   r.   <module>r^      sV   #;

#   1 1 1 1 ; * 3 > , [ [ B r r/4S>4?@	 @ ;63; 3- *i'(	
 eO^;<=   (  @D'+.204#%%*i'(% ;% 	% 3-% eO^;<=% ^$% *+% n-% V% % %P 
OP )-'+3704#		;	 	
 3-	 o&	 ^$	 /0	 n-	 V	 		 Q 
	  
 (,'+2604#		;	 	
 3-	 n%	 ^$	 ./	 n-	 V	 		 
	* @D'+.204#+*i'(+;+ +
 3-+ eO^;<=+ ^$+ *++ n-+ V+ 	+f )-'+3704#; 
 3- o& ^$ /0 n- V 	r:   