
    Xj                       d dl mZ d dlZd dlmZmZ d dlmZmZm	Z	 d dl
m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mZmZmZmZmZmZ dd	lmZ erd d
lm Z   ed      Z! ed      Z"e G d dee"e!f                Z#e G d dee"e!f                Z$ G d dee"e!f   e      Z% G d de%e"e!f         Z& G d dee"e!f         Z'ddZ(ddZ)ddZ*ddZ+g dZ,y)    )annotationsN)ABCabstractmethod)create_taskgatherget_event_loop)Future)	dataclass)TYPE_CHECKINGAny	AwaitableCallableDictGenericHashableIterableListMappingOptionalSequenceTypeVarUnionoverload   )WrongNumberOfResultsReturned)AbstractEventLoopTKc                  "    e Zd ZU ded<   ded<   y)
LoaderTaskr   keyr	   futureN)__name__
__module____qualname____annotations__     b/var/www/html/myl_app/scheduler-service/venv/lib/python3.12/site-packages/strawberry/dataloader.pyr    r    $   s    	
FNr(   r    c                  \    e Zd ZU  ej                  e      Zded<   dZded<   d
dZ	ddZ
y	)Batch)default_factoryzList[LoaderTask]tasksFbool
dispatchedc                l    t        t        t        f   ||      }| j                  j	                  |       y N)r    r   r   r-   append)selfr!   r"   tasks       r)   add_taskzBatch.add_task/   s)    !Q$V,

$r(   c                ,    t        | j                        S r1   )lenr-   r3   s    r)   __len__zBatch.__len__3   s    4::r(   N)r!   r   r"   r	   returnNone)r:   int)r#   r$   r%   dataclassesfieldlistr-   r&   r/   r5   r9   r'   r(   r)   r+   r+   *   s.    /k//EEEJ r(   r+   c                  T    e Zd Zedd       Zedd       Zedd       Zed	d       Zy)
AbstractCachec                     y r1   r'   r3   r!   s     r)   getzAbstractCache.get8       r(   c                     y r1   r'   r3   r!   values      r)   setzAbstractCache.set<   rE   r(   c                     y r1   r'   rC   s     r)   deletezAbstractCache.delete@   rE   r(   c                     y r1   r'   r8   s    r)   clearzAbstractCache.clearD   rE   r(   Nr!   r   r:   zUnion[Future[T], None]r!   r   rH   z	Future[T]r:   r;   r!   r   r:   r;   r:   r;   )r#   r$   r%   r   rD   rI   rK   rM   r'   r(   r)   rA   rA   7   sP           r(   rA   c                  6    e Zd ZdddZd	dZd
dZddZddZy)DefaultCacheNc                *    ||nd | _         i | _        y )Nc                    | S r1   r'   )xs    r)   <lambda>z'DefaultCache.__init__.<locals>.<lambda>L   s    A r(   )cache_key_fn	cache_map)r3   rX   s     r)   __init__zDefaultCache.__init__J   s    (4L+ 	 57r(   c                V    | j                   j                  | j                  |            S r1   )rY   rD   rX   rC   s     r)   rD   zDefaultCache.getP   s"    ~~!!$"3"3C"899r(   c                @    || j                   | j                  |      <   y r1   rY   rX   rG   s      r)   rI   zDefaultCache.setS   s    16t((-.r(   c                <    | j                   | j                  |      = y r1   r]   rC   s     r)   rK   zDefaultCache.deleteV   s    NN4,,S12r(   c                8    | j                   j                          y r1   )rY   rM   r8   s    r)   rM   zDefaultCache.clearY   s    r(   r1   )rX   !Optional[Callable[[K], Hashable]]r:   r;   rN   rO   rP   rQ   )r#   r$   r%   rZ   rD   rI   rK   rM   r'   r(   r)   rS   rS   I   s    7:73r(   rS   c                      e Zd ZU dZded<   dZded<   ded<   e	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd	       Ze	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd
       Z	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZedd       Z	ddZ
ddZddZddZddZdddZdd dZy)!
DataLoaderNzOptional[Batch[K, T]]batchFr.   cachezAbstractCache[K, T]rY   c                     y r1   r'   r3   load_fnmax_batch_sizerd   looprY   rX   s          r)   rZ   zDataLoader.__init__b   s     r(   c                     y r1   r'   rf   s          r)   rZ   zDataLoader.__init__o   s     r(   c                ~    || _         || _        || _        || _        | j                  r|t	        |      n|| _        y y r1   )rg   rh   _looprd   rS   rY   rf   s          r)   rZ   zDataLoader.__init__z   sC     ,

::.7.?\*Y N r(   c                P    | j                   t               | _         | j                   S r1   )rl   r   r8   s    r)   ri   zDataLoader.loop   s     ::')DJzzr(   c                :   | j                   r/| j                  j                  |      }|r|j                         s|S | j                  j                         }| j                   r| j                  j                  ||       t        |       }|j                  ||       |S r1   )	rd   rY   rD   	cancelledri   create_futurerI   get_current_batchr5   )r3   r!   r"   rc   s       r)   loadzDataLoader.load   sz    ::^^'',Ff..0((*::NNsF+!$'sF#r(   c                :    t        t        | j                  |       S r1   )r   maprr   )r3   keyss     r)   	load_manyzDataLoader.load_many   s    s499d+,,r(   c                T    | j                   r| j                  j                  |       y y r1   rd   rY   rK   rC   s     r)   rM   zDataLoader.clear   s     ::NN!!#& r(   c                b    | j                   r#|D ]  }| j                  j                  |        y y r1   rx   )r3   ru   r!   s      r)   
clear_manyzDataLoader.clear_many   s/    :: +%%c*+ r(   c                R    | j                   r| j                  j                          y y r1   )rd   rY   rM   r8   s    r)   	clear_allzDataLoader.clear_all   s    ::NN  " r(   c                ,    | j                  ||i|       y r1   )
prime_many)r3   r!   rH   forces       r)   primezDataLoader.prime   s    ee,r(   c                   | j                   ry|j                         D ]f  \  }}| j                  j                  |      r|s$t	        | j
                        }|j                  |       | j                  j                  ||       h | j                  | j                  j                  sd}| j                  j                  D ];  }|j                  |v sd}|j                  j                  ||j                            = |rO| j                  j                  D cg c]  }|j                  j                         r|! c}| j                  _
        y y y y c c}w )N)ri   FT)rd   itemsrY   rD   r	   ri   
set_resultrI   rc   r/   r-   r!   r"   done)r3   datar   r!   rH   r"   batch_updatedr4   s           r)   r~   zDataLoader.prime_many   s   ::"jjl 4
U~~))#.%%+%;F%%e,NN&&sF3	4 ::!$***?*?!M

(( ;88t#$(MKK**4>:; %)ZZ%5%5$!T[[=M=M=OD$

   +@!$s   E8E)NTNNN)rg   ACallable[[List[K]], Awaitable[Sequence[Union[T, BaseException]]]]rh   Optional[int]rd   r.   ri   Optional[AbstractEventLoop]rY   Optional[AbstractCache[K, T]]rX   r`   r:   r;   )r3   zDataLoader[K, Any]rg   z)Callable[[List[K]], Awaitable[List[Any]]]rh   r   rd   r.   ri   r   rY   r   rX   r`   r:   r;   )rg   r   rh   r   rd   r.   ri   r   rY   r   rX   r`   )r:   r   )r!   r   r:   zAwaitable[T])ru   Iterable[K]r:   zAwaitable[List[T]]rP   )ru   r   r:   r;   rQ   )F)r!   r   rH   r   r   r.   r:   r;   )r   zMapping[K, T]r   r.   r:   r;   )r#   r$   r%   rc   r&   rd   r   rZ   propertyri   rr   rv   rM   rz   r|   r   r~   r'   r(   r)   rb   rb   ]   s   #'E 'E4""
 )-,037:>	 S	 &		
 	 *	 1	 8	 
	 	  )-,037:> : & 	
 * 1 8 
  )-,037:>R & 	
 * 1 8*  "-'+
#-r(   rb   c                |    t        |j                  xs& | j                  xr t        |      | j                  k\        S r1   )r.   r/   rh   r7   loaderrc   s     r)   should_create_new_batchr      s=     	0   0J&/// r(   c                    | j                   r"t        | | j                         s| j                   S t               | _         t        | | j                          | j                   S r1   )rc   r   r+   dispatch)r   s    r)   rq   rq      sB    ||3FFLLI||7FLVV\\"<<r(   c                X    | j                   j                  t        t        | |             y r1   )ri   	call_soonr   dispatch_batchr   s     r)   r   r      s    
KK+~fe'DEr(   c                  K   d|_         |j                  D cg c]  }|j                   }}t        |      dk(  ry 	 | j	                  |       d {   }t        |      }t        |      t        |      k7  rt        t        |      t        |            t        |j                  |      D ]g  \  }}|j                  j                         r!t        |t              r|j                  j                  |       M|j                  j                  |       i y c c}w 7 # t        $ r6}|j                  D ]  }|j                  j                  |        Y d }~y d }~ww xY ww)NTr   )expectedreceived)r/   r-   r!   r7   rg   r?   r   zipr"   ro   
isinstanceBaseExceptionset_exceptionr   	Exception)r   rc   r4   ru   valuesrH   es          r)   r   r      s%    E!&-DHH-D-
4yA~ 	)~~d++fv;#e*$.Uc&k  u{{F3 		.KD% {{$$&%/))%0&&u-		.% . ,$  )KK 	)DKK%%a(	))sK   E!DE!D DCD E!D 	E(,EE!EE!)	rb   r+   r    rA   rS   r   rq   r   r   )r   rb   rc   r+   r:   r.   )r   rb   r:   r+   )r   rb   rc   r+   r:   r;   )-
__future__r   r=   abcr   r   asyncior   r   r   asyncio.futuresr	   r
   typingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
exceptionsr   asyncio.eventsr   r   r   r    r+   rA   rS   rb   r   rq   r   r   __all__r'   r(   r)   <module>r      s    "  # 7 7 " !    $ 50 CLCL A  
 	GAqDM 	 	GAqDM3 $=A& (rA rjF!)H
r(   