
    >/i                     d    S SK r S SKrS SKJr  S SKJr  \R
                  " \5      r " S S5      rg)    N)blacklisting)extension_loaderc                   @    \ rS rSrS	S jr\S 5       rS rS rS r	Sr
g)
BanditTestSet   Nc                 f   U(       d  0 n[         R                  nU R                  X5      nUR                   Vs/ s H   oUR                  R
                  U;   d  M  UPM"     snU l        U R                  R                  U R                  XB5      5        U R                  XR                  5        g s  snf N)	r   MANAGER_get_filterpluginsplugin_test_idextend_load_builtins_load_tests)selfconfigprofileextman	filteringps         N/home/james-whalen/.local/lib/python3.13/site-packages/bandit/core/test_set.py__init__BanditTestSet.__init__   s    G!))$$V5	~~
%!):):i)GA~
 	D//	CD.	
s   B.B.c                    [         R                  n[        UR                  S/ 5      5      n[        UR                  S/ 5      5      n[        5       nUR                  R                  5        H  u  pgUR                  S U 5       5        M     SU;   a8  UR                  U5      (       d  UR                  U5        UR                  S5        SU;   a8  UR                  U5      (       d  UR                  U5        UR                  S5        U(       a  UnX-
  $ [        UR                  R                  5       5      nUR                  UR                  5        UR                  U5        X-
  $ )Nincludeexcludec              3   *   #    U  H	  oS    v   M     g7f)idN ).0ts     r   	<genexpr>,BanditTestSet._get_filter.<locals>.<genexpr>#   s     &>1ws   B001)r   r
   setget	blacklistitemsupdateintersectiondiscardplugins_by_idkeysbuiltin)	r   r   r   incexcall_blacklist_tests_testsfiltereds	            r   r   BanditTestSet._get_filter   s&   !))'++i,-'++i,-!e((..0HA&&&>&>> 1 S=##$788

./KKS=##$788

./KKH
 ~ 6//4467HOOFNN+OO/0~    c                     " S S5      n[         R                  nUR                  S5      nU(       dN  0 nUR                  R	                  5        H.  u  pgU Vs/ s H  oS   U;   d  M  UPM     n	nU	(       d  M*  XU'   M0     U(       d  / $ S[
        R                  l        UR                  5       [
        R                  l        U[
        R                  l	        U" S[
        R                  5      /$ s  snf )z4loads up builtin functions, so they can be filtered.c                       \ rS rSrS rSrg)-BanditTestSet._load_builtins.<locals>.Wrapper>   c                     Xl         X l        g r	   namer   )r   r>   r   s      r   r   6BanditTestSet._load_builtins.<locals>.Wrapper.__init__?   s     	$r7   r=   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r    r7   r   Wrapperr:   >   s    %r7   rE   r(   r   r%   )
r   r
   r'   r(   r)   r   r   r.   _checks_config)
r   r   r   rE   r   r(   noder4   r"   valuess
             r   r   BanditTestSet._load_builtins;   s    	% 	%
 "))KK,	I%//557%*CUg.B!UC6&,dO  8
 I
 +1')2)9&)2&\%;%;<== Ds   C/(C/c                 |   0 U l         U GH.  n[        UR                  S5      (       a  UR                  UR                  R                  5      nUcO  [
        R                  " UR                  R                  5      nUR                  UR                  R                  5      nXCR                  l	        UR                  R                   Hn  nU R                   R                  U/ 5      R                  UR                  5        [        R                  SUR                  UR                  R                   U5        Mp     GM1     g)z*Builds a dict mapping tests to node types._takes_configNz#added function %s (%s) targeting %s)r4   hasattrr   
get_optionrL   	importlibimport_modulerA   
gen_configrG   rF   
setdefaultappendLOGdebugr>   r   )r   r   r   r   cfggennerchecks          r   r   BanditTestSet._load_testsX   s    
Fv}}o66''(C(CD;&44V]]5M5MNF ++FMM,G,GHC(+%..

%%eR077F		9KKMM**	 / r7   c                 J    U R                   R                  U5      =(       d    / $ )zReturns all tests that are of type checktype

:param checktype: The type of test to filter on
:return: A list of tests which are of the specified type
)r4   r'   )r   	checktypes     r   	get_testsBanditTestSet.get_testsl   s     zz~~i(.B.r7   )r   r4   r	   )r@   rA   rB   rC   r   staticmethodr   r   r   r\   rD   r    r7   r   r   r      s+    	/  @>:(/r7   r   )	rO   loggingbandit.corer   r   	getLoggerr@   rT   r   r    r7   r   <module>rb      s/   
   $ (!d/ d/r7   