
    j:              	           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eeef         de	e         dee
e	e                           fdZ G d dee	e                            Zed	ededed
         fd            Zd
S )    )contextmanager)	Any	ContainerDictIterableIteratorOptionalSequenceSetcastcachekeysreturnc                     |d         | v rnt          |          dk    r$t          | |d                  |dd                    S t          t          t          t
                            | |d                            S d S )Nr      )lenin_cacher   r   r
   str)r   r   s     b/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/casbin/model/policy_fast.pyr   r      sf    Aw%t99q==E$r(OT!""X666C&d1g777t    c                   Z   e Zd ZU eeef         ed<   eee	e                           ed<   e	e
         ed<   de	e
         ddfdZdee	e                  fdZde
fd	Zd
edefdZd
e
de	e         fdZd
e	e         ddfdZde	e         defdZdee	e                  fdZdeddfdZddZdS )
FastPolicy_cache_current_filter_cache_key_ordercache_key_orderr   Nc                 0    i | _         d | _        || _        d S N)r   r   r   )selfr   s     r   __init__zFastPolicy.__init__!   s    # /r   c              #   >   K   |                                  E d {V  d S r   )_FastPolicy__get_policyr   s    r   __iter__zFastPolicy.__iter__&   s0      $$&&&&&&&&&&&r   c                 ^    t          t          |                                                     S r   )r   listr"   r#   s    r   __len__zFastPolicy.__len__)   s$    4))++,,---r   itemc                    t          t          t          f          r%t          | j                  t                    k    rdS fd| j        D             }t          | j        |          }|sdS t                    |v S )NFc                      g | ]
}|         S  r+   .0xr(   s     r   
<listcomp>z+FastPolicy.__contains__.<locals>.<listcomp>/       777AQ777r   )
isinstancer&   tupler   r   r   r   )r   r(   r   existss    `  r   __contains__zFastPolicy.__contains__,   s    $u.. 	#d6K2L2LPSTXPYPY2Y2Y57777!6777$+t,, 	5T{{f$$r   c                 ^    t          |           D ]\  }}||k    r|c S t          d          )NzNo such value exists)	enumerateKeyError)r   r(   ientrys       r   __getitem__zFastPolicy.__getitem__5   sA    !$ 	 	HAuDyy -...r   c                 .   | j         }fd| j        D             }|d d         D ]}||vrt                      ||<   ||         } |d         |vrt                      ||d         <   ||d                                      t                               d S )Nc                      g | ]
}|         S r+   r+   r,   s     r   r/   z%FastPolicy.append.<locals>.<listcomp>=   r0   r   )r   r   dictsetaddr2   )r   r(   r   r   keys    `   r   appendzFastPolicy.append;   s    7777!67779 	 	C%!VVc
#JEE85  !eeE$r(Od2hE$KK(((((r   policyc                     fd| j         D             }t          | j        |          }|sdS |                    t	                               dS )Nc                      g | ]
}|         S r+   r+   )r-   r.   rC   s     r   r/   z%FastPolicy.remove.<locals>.<listcomp>I   s    999aq	999r   T)r   r   r   remover2   )r   rC   r   r3   s    `  r   rF   zFastPolicy.removeH   sZ    99994#8999$+t,, 	4eFmm$$$tr   c                 x    | j         d | j         D             S d | j                                        D             S )Nc              3   4   K   | ]}t          |          V  d S r   )r&   )r-   r.   s     r   	<genexpr>z*FastPolicy.__get_policy.<locals>.<genexpr>S   s(      ::DGG::::::r   c              3   l   K   | ]/}|                                 D ]}|D ]}t          |          V  0d S r   )valuesr&   )r-   vv1v2s       r   rI   z*FastPolicy.__get_policy.<locals>.<genexpr>U   sL      ]]QXXZZ]]rZ\]]TVDHH]]]]]]]]r   )r   r   rK   r#   s    r   __get_policyzFastPolicy.__get_policyQ   sD    +::T%9::::]]dk&8&8&:&:]]]]r   r   c                 Z    t          | j        |          }|pt                      | _        d S r   )r   r   r?   r   )r   r   values      r   apply_filterzFastPolicy.apply_filterW   s)    d++$~r   c                     d | _         d S r   )r   r#   s    r   clear_filterzFastPolicy.clear_filter[   s    #r   )r   N)__name__
__module____qualname__r   r   r   __annotations__r	   r   r
   intr    r   r$   r'   objectboolr4   r:   rB   rF   r   r"   rR   rT   r+   r   r   r   r      s        cNc(3-01111sm###0 0$ 0 0 0 0
'(8C=1 ' ' ' '. . . . .% %D % % % %/ / / / / /)8C= )T ) ) ) )Xc] t    ^hx}5 ^ ^ ^ ^.# .$ . . . .$ $ $ $ $ $r   r   rC   Nc              '      K   	  | j         |  d V  |                                  d S # |                                  w xY wr   )rR   rT   )rC   r   s     r   fast_policy_filterr]   _   sT      T""s   ( >)
contextlibr   typingr   r   r   r   r   r	   r
   r   r   r   r   r   r]   r+   r   r   <module>r`      s   & % % % % % Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ZDcN (3- HSRUEW<X    @$ @$ @$ @$ @$8C=) @$ @$ @$F z # (4.      r   