
    Ѯh                     ~   U g d Z ddlmZ ddlmZ ddlmZmZmZm	Z	 ddl
mZ ddlmZmZ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mZ ddlmZmZmZ ddlmZ eZ ee!d<   ee"eee   f      Z#ee!d<   eee$      Z%ee!d<   eegef   Z&ee!d<   eegee"eee   f      f   Z'ee!d<   eg eee$      f   Z(ee!d<    G d de	      Z)e	 	 	 	 	 	 d'dee$   dee   dee*e+ef      dee   de,dee)   dededefd        Z-eddddddddddd!
d"ee&   d#ee'   d$ee(   dee   d%ee   dee   dee   dee   de,dee)   defd&       Z.y)()	CreatePageFactory
CursorFlowCursorFlowFuncLimitOffsetFlowLimitOffsetFlowFunc	TotalFlowTotalFlowFunccreate_page_flowgeneric_flow    )Sequence)	ExitStack)AnyCallableOptionalProtocol)	TypeAlias   )apply_items_transformercreate_pageset_page)AbstractParamsCursorRawParams	RawParams	is_cursoris_limit_offset)Config)AnyFlowflow)AdditionalDataItemsTransformer
ParamsType)verify_paramsr   r   r   r   r   r   c                   @    e Zd Z	 	 ddee   dee   dee   dedef
dZy)	r   Ntotalparamsitemskwargsreturnc                     y )N )selfr&   r$   r%   r'   s        j/home/www/academy-backend.kofcorporation.com/venv/lib/python3.12/site-packages/fastapi_pagination/flows.py__call__zCreatePageFactory.__call__$   s     	    )NN)	__name__
__module____qualname__r   intr   r   r   r-   r*   r.   r,   r   r   #   sL    
  $+/ }	
 (}  
r.   r   NFr$   transformeradditional_dataconfigasync_create_page_factoryr&   r%   r(   c             #     K   t               5 }|r0|j                  r$|j                  t        |j                               t	        | ||      }	|t
        } ||	f||d|xs i }
|
cd d d        S # 1 sw Y   y xY ww)Nr6   )r$   r%   )r   page_clsenter_contextr   r   r   )r&   r%   r$   r3   r4   r5   r6   r7   stackt_itemspages              r,   r	   r	   /   s      
 foo 9:/
 
 &"-(

 $"	
 
 )  s   BAA5+
B5A>:B)
limit_offset_flowcursor_flow
total_flowr%   inner_transformerr3   r4   r5   r6   r7   r?   r@   rA   rB   c        
   
   #   J  K   g }
| |
j                  d       ||
j                  d       |
st        d      t        |g|
 \  }}|xs i }d }|j                  r|t        d       |       E d {   }t	        |      r| t        d       | |      E d {   }nLt        |      r6|t        d       ||      E d {   \  }}|j                  |xs i        nt        d      |rt        |||      }t        ||||||||		      E d {   }|S 7 7 7 [7 w)
Nzlimit-offsetcursorz"At least one flow must be providedz1total_flow is required when include_total is Truez7limit_offset_flow is required for 'limit-offset' paramsz+cursor_flow is required for 'cursor' paramszInvalid params typer9   )r$   r3   r4   r5   r6   r7   )	append
ValueErrorr"   include_totalr   r   updater   r	   )r?   r@   rA   r%   rB   r3   r4   r5   r6   r7   types
raw_paramsr$   r&   	more_datar>   s                   r,   r
   r
   R   s\     !E$^$X=>>&v66FJ%+OEPQQ%<'z"$VWW,Z88	:	JKK&1*&==yyB/.//-
 
 ''/	 	D KE ( 9
 >	sI   A0D#2D3'D#D(D#DAD#D!D#D#D#!D#)NNNNFN)/__all__collections.abcr   
contextlibr   typingr   r   r   r   typing_extensionsr   apir   r   r   basesr   r   r   r   r   r5   r   r   r   rI   r   r    r!   utilsr"   r   __annotations__tupler   r2   r   r   r   r   r   dictstrboolr	   r
   r*   r.   r,   <module>rY      sc  
 
 %   4 4 ' ? ? Y Y   ? ?  $ $c8N+C&C DE
I Ex}-	9 -!)9+w*>!? Y ?$o%6c8TbKcFc@d8e%ef	 f#B(>$>?y ?	 	 
  .204#7; C=	
 *+ d38n- V  ""34 	 D  8<,0*.'+48.204#7;@ 34@ .)@ '	@
 ^$@   01@ *+@ n-@ V@ @ ""34@ 	@ @r.   