
    ^h                         S SK r S SKJrJrJrJrJr  S SKJr   " S S5      r	\	" S 5      \	l
        \	" S 5      \	l         " S S	\	5      rg)
    N)CallableOptionalSequenceUnionoverload)Literalc            
       x   \ rS rSr% S \S'   S \S'   \ SS\\R                  /\	4   S\
S   S\	S	S
4S jj5       r\ SS\\/\	4   S\
S   S\	S	S
4S jj5       r\  SS\S\	4   S\	S\	S	S
4S jj5       r  SS\S\	4   S\	S\	S	S
4S jjrS\\R                  \4   S	\	4S jrS\\R                  \4   S	\	4S jrSrg
)	Predicate   TRUEFALSET	conditionuse_raw_node_idFstaticreturnNc                     g N selfr   r   r   s       K/home/james-whalen/.local/lib/python3.13/site-packages/pyccolo/predicate.py__init__Predicate.__init__            c                     g r   r   r   s       r   r   r      r   r   .c                     g r   r   r   s       r   r   r      r   r   c                 (    Xl         X l        X0l        g r   )r   r   r   r   s       r   r   r   $   s     #.r   nodec                     U R                   (       a*  [        U[        R                  5      (       a  [	        U5      OUnU R                  U5      $ r   )r   
isinstanceastASTidr   )r   r   
node_or_ids      r   __call__Predicate.__call__.   s:    ,,D#''1J1JBtHPT 	 ~~j))r   c                 8    U R                   (       a  S$ U " U5      $ NT)r   r   r   s     r   dynamic_callPredicate.dynamic_call4   s    {{t2T
2r   )r   r   r   )T)F)FF)__name__
__module____qualname____firstlineno____annotations__r   r   r"   r#   boolr   r   intr   r&   r+   __static_attributes__r   r   r   r
   r
      ss   

 	SWWItO, ! 	
 
  
 	SE4K( ! 	
 
   !&	CI&  	
 
  !&	CI&  	
 
*U377C<0 *T *3sww|!4 3 3r   r
   c                      gr)   r   _s    r   <lambda>r8   8   s    dr   c                      g)NFr   r6   s    r   r8   r8   9   s    ur   c                      \ rS rSr\4S\\   SS4S jjr SS\\	R                  \4   S\\\      S\4S jjrS\\	R                  \4   S\4S	 jr\S\\   S\4S
 j5       r\S\\   S\4S j5       r\S\\   S\4S j5       rSrg)CompositePredicate<   base_predicatesr   Nc                     [        U5      U l        U Vs/ s H  o3R                  (       a  M  UPM     snU l        [	        U R                  5      S:H  U l        [        S U 5       5      U l        X l        g s  snf )Nr   c              3   8   #    U  H  oR                   v   M     g 7fr   )r   .0preds     r   	<genexpr>.CompositePredicate.__init__.<locals>.<genexpr>C   s     "TOD#7#7Os   )listr=   r   dynamic_base_predicateslenallr   reducer)r   r=   rI   rB   s       r   r   CompositePredicate.__init__=   se    #O4,(
,TKKD_(
$ $6671<""TO"TT(
s
   A6A6r   
predicatesc                 ~   ^ Uc  U R                   OUn[        U5      S:  d   eU R                  U4S jU 5       5      $ )Nr   c              3   2   >#    U  H  o" T5      v   M     g 7fr   r   )rA   rB   r   s     r   rC   .CompositePredicate.__call__.<locals>.<genexpr>M   s     >:4DJJ:s   )r=   rG   rI   )r   r   rK   s    ` r   r&   CompositePredicate.__call__F   s>    
 .8-?T))Z
:"""||>:>>>r   c                 H    U R                   (       a  S$ U " XR                  S9$ )NT)rK   )r   rF   r*   s     r   r+   CompositePredicate.dynamic_callO   s#    KKD	
%)$;W;W%X	
r   c                 0    [        U5      S:  d   eU " XS9$ )Nr   rI   )rG   )clsr=   rI   s      r   _createCompositePredicate._createT   s     ?#a'''?44r   c                     [        U5      S:X  d  [        S U 5       5      (       a  [        R                  $ [	        S U 5       5      (       a  [        R
                  $ U R                  U[        S9$ )Nr   c              3   D   #    U  H  o[         R                  L v   M     g 7fr   r
   r   r@   s     r   rC   )CompositePredicate.any.<locals>.<genexpr>[   s      ,
/>tINN"    c              3   D   #    U  H  o[         R                  L v   M     g 7fr   r
   r   r@   s     r   rC   rZ   _        C?4y&?r[   rS   )rG   anyr
   r   rH   r   rU   rT   r=   s     r   r_   CompositePredicate.anyY   sb    1$ ,
/>,
 )
 )
 >>!C?CCC??"{{?C{88r   c                     [        S U 5       5      (       a  [        R                  $ [        S U 5       5      (       a  [        R                  $ U R                  U[        S9$ )Nc              3   D   #    U  H  o[         R                  L v   M     g 7fr   r]   r@   s     r   rC   )CompositePredicate.all.<locals>.<genexpr>e   r^   r[   c              3   D   #    U  H  o[         R                  L v   M     g 7fr   rY   r@   s     r   rC   rd   g   s     B/$y~~%/r[   rS   )r_   r
   r   rH   r   rU   r`   s     r   rH   CompositePredicate.allc   sK    C?CCC??"B/BBB>>!{{?C{88r   )r=   rF   rI   r   r   r   )r-   r.   r/   r0   r_   r   r
   r   r   r"   r#   r3   r   r2   r&   r+   classmethodrU   rH   r4   r   r   r   r;   r;   <   s    EH (; T  59?CGGSL!? Xi01? 
	?
sww|!4 
 

 5hy&9 5y 5 5 9(9"5 9) 9 9 9(9"5 9) 9 9r   r;   )r"   typingr   r   r   r   r   typing_extensionsr   r
   r   r   r;   r   r   r   <module>rj      sC    
 @ @ %-3 -3` ?+	,-	-9 -9r   