
    >/i                     r    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	\	" 5       r
g)    N)	extension)utilsc                   N    \ rS rSrS/r   SS jrS rS rS rS r	S r
S	 rS
rg)Manager   B001c                 j    U R                  U5        U R                  U5        U R                  U5        g N)load_formattersload_pluginsload_blacklists)selfformatters_namespaceplugins_namespaceblacklists_namespaces       V/home/james-whalen/.local/lib/python3.13/site-packages/bandit/core/extension_loader.py__init__Manager.__init__   s1     	12+,12    c                     [         R                  " USSS9U l        [        U R                  5      U l        U R                  R                  5       U l        g )NF	namespaceinvoke_on_loadverify_requirements)r   ExtensionManagerformatters_mgrlist
formattersnamesformatter_names)r   r   s     r   r   Manager.load_formatters   sI    '88*  %

 t223#2288:r   c                    [         R                  " USSS9U l        S n[        [	        U[        U R                  5      5      5      U l        U R
                   Vs/ s H  o3R                  PM     snU l        U R
                   Vs0 s H  oDR                  R                  U_M     snU l
        U R
                   Vs0 s H  oDR                  U_M     snU l        g s  snf s  snf s  snf )NFr   c                     [        U R                  S5      (       d'  [        SU R                   S3[        R
                  S9  gg)N_test_idzWARNING: Test 'z' has no ID, skipping.)fileFT)hasattrpluginprintnamesysstderr)r'   s    r   test_has_id)Manager.load_plugins.<locals>.test_has_id,   s;    6==*55%fkk]2HI r   )r   r   plugins_mgrr   filterpluginsr)   plugin_namesr'   r$   plugins_by_idplugins_by_name)r   r   r,   r'   ps        r   r   Manager.load_plugins%   s    $55'  %
	 F;T5E5E0FGH7;||D|V[[|D<@LLILqhh//2LI37<<@<a	<@ EI@s   C C;C$c                     XR                   ;   a#  U R                   U   R                  R                  $ XR                  ;   a  U R                  U   S   $ g )Nid)r3   r'   r$   blacklist_by_name)r   	test_names     r   get_test_idManager.get_test_id;   sP    ,,,''	299BBB...)))4T::r   c                    [         R                  " USSS9U l        0 U l        [	        U R                  5      nU Hk  nUR                  5       R                  5        HF  u  pE[        R                  " U5        U R                  R                  U/ 5      R                  U5        MH     Mm     0 U l        0 U l        U R                  R                  5        H.  nU H%  nX`R                  US   '   X`R                  US   '   M'     M0     g )NFr   r7   r)   )r   r   blacklists_mgr	blacklistr   r'   itemsr   check_ast_node
setdefaultextendblacklist_by_idr8   values)r   blacklist_namespacer>   itemkeyvalbs          r   r   Manager.load_blacklistsB   s    '88)  %

 ,,-	D KKM//1$$S)))#r299#> 2 
  "!#>>((*C01$$QtW-45&&qy1  +r   c                 h   US    H3  nU R                  U5      (       a  M  [        R                  SU 35        M5     US    H3  nU R                  U5      (       a  M  [        R                  SU 35        M5     [        US   5      [        US   5      -  n[	        U5      S:  a  [        SU 35      eg)z?Validate that everything in the configured profiles looks good.includezUnknown test found in profile: excluder   z)Non-exclusive include/exclude test sets: N)check_idLOGwarningsetlen
ValueError)r   profileincexcunions        r   validate_profileManager.validate_profileV   s    9%C==%%=cUCD & 9%C==%%=cUCD & GI&'#gi.@*AAu:>;E7C  r   c                 r    XR                   ;   =(       d#    XR                  ;   =(       d    XR                  ;   $ r
   )r2   rC   builtin)r   tests     r   rN   Manager.check_idf   s3    &&& $+++$||#	
r   )r>   rC   r8   r=   r    r   r   r1   r0   r2   r3   r.   N)zbandit.formatterszbandit.pluginszbandit.blacklists)__name__
__module____qualname____firstlineno__r[   r   r   r   r:   r   rX   rN   __static_attributes__ r   r   r   r      s8    hG 1*0		3;A,6( 
r   r   )loggingr*   	stevedorer   bandit.corer   	getLoggerr^   rO   r   MANAGERrc   r   r   <module>ri      s9     
  !^
 ^
J )r   