
    yIfF"              	      4   U d Z ddlmZ ddlZddlmZmZ ddlmZ ddl	m
Z
mZ ddlmZmZ ddlmZmZmZmZmZmZ dd	lmZ dd
lmZ e
rddlmZ d.dZd/dZd0dZd0dZd0dZ d0dZ!d0dZ"d0dZ#d ed!fd ed"fd e dfd e!d#fd$e"d"fd$e"d%fd$e#d&fd'Z$d(e%d)<   d1d-Z&dS )2z1Utils for arguments/options parsing and handling.    )annotationsN)CallableSequence)Path)TYPE_CHECKINGAny)
extensionsutils)_CallableArgument_ExtendArgument_StoreArgument_StoreNewNamesArgument_StoreOldNamesArgument_StoreTrueArgument)_CallbackAction)ArgumentPreprocessingError)Runoptstroptdictdict[str, Any]return{_StoreArgument | _StoreTrueArgument | _CallableArgument | _StoreOldNamesArgument | _StoreNewNamesArgument | _ExtendArgumentc                |   d|  g}d|v r|d|d          gz  }|                     dd          }|dk    ret          |||                     dd          |                     d	d
          |                     dd          |                     dd                    S t          |t                    st	          |t
                    rzt          |||                     d	d
          |                     di           |                     dd          |                     dd          |                     dd                    S |d         }|dk    rt          |||g n||d         |                     dd          |                     d	d
          |                     dd
          |                     dd          |                     dd          |                     dd          
  
        S d|v r@d|d         v rt          |||d         |                     dd          |                     d	d
          |                     dd
          |                     dd          |                     di           |                     dd          	  	        S d|d         v rt          |||d         |                     dd          |                     d	d
          |                     dd
          |                     dd          |                     di           |                     dd          	  	        S d|v rt          |||d         |                     dd          |                     d	d
          |                     dd
          |                     dd          d|d         gi|                     dd          	  	        S t          ||||d         |                     dd          |                     d	d
          |                     dd
          |                     dd          |                     dd          	  	        S )z1Convert an optdict to an Argument class instance.z--short-actionstore
store_truedefaultThelp hideFgroupN)flagsr   r    arg_help	hide_helpsectionkwargsmetavar)r%   r   r&   r)   r'   r(   r*   extendtypechoicesdest)
r%   r   r    arg_typer-   r&   r*   r'   r(   r.   	old_names)	r%   r    r/   r-   r&   r*   r'   r)   r(   	new_names)	r%   r   r    r/   r-   r&   r*   r'   r(   )getr   
isinstancer   
issubclassr   r   r   r   r   r   )r   r   r%   r   r    s        G/var/www/piapp/venv/lib/python3.11/site-packages/pylint/config/utils.py_convert_option_to_argumentr6      sQ    #ZZLE'(gg&(()) [[7++F!KK	400[[,,kk&%00KK..
 
 
 	
 fc"" 	
z&/'J'J 	
 [[,,;;x,,kk&%00KK..KK	400
 
 
 	
 i G!/BBwV_KK	400[[,,KK	2..kk&%00KK..VT**
 
 
 	
 7'(+++) It44 VR00Ir22!++fe44{{8R00GT22
 
 
 
 '(+++) It44 VR00Ir22!++fe44{{8R00GT22
 
 
 
 %V_KK	400[[,,KK	2..kk&%00'&/!23KK..

 

 

 
	
 It,,VR((Ir**++fe,,GT**
 
 
 
    valuer   c                ~   t          | t          t          f          rd                    d | D                       S t          | t          j                  rt          | j                  S t          | t                    r1d                    d | 	                                D                       S t          |           S )z%Parse rich (toml) types into strings.,c              3  4   K   | ]}t          |          V  d S )N)_parse_rich_type_value).0is     r5   	<genexpr>z)_parse_rich_type_value.<locals>.<genexpr>   s+      AAa.q11AAAAAAr7   c              3  *   K   | ]\  }}| d | V  dS ):N )r=   kvs      r5   r?   z)_parse_rich_type_value.<locals>.<genexpr>   s0      ==tq!1

q

======r7   )
r3   listtuplejoinrePatternr   patterndictitems)r8   s    r5   r<   r<      s    %$'' BxxAA5AAAAAA%$$ "5=!!!% >xx==u{{}}======u::r7   runr   
str | NoneNonec                ,    |J t          |           dS )zhExecute arbitrary code from the init_hook.

    This can be used to set the 'sys.path' for example.
    N)execrM   r8   s     r5   
_init_hookrS      s    
 KKKKKr7   c                    |J || _         dS )zSet the rcfile.N)_rcfilerR   s     r5   _set_rcfilerV          CKKKr7   c                    |J || _         dS )zSet the output.N)_outputrR   s     r5   _set_outputrZ      rW   r7   c                f    |J | j                             t          j        |                     dS )z,Add plugins to the list of loadable plugins.N)_pluginsr+   r
   _splitstriprR   s     r5   _add_pluginsr^      s5    L)%0011111r7   c                    |J d| _         d S )NT)verboserR   s     r5   _set_verbose_modera      s    ===CKKKr7   c                   |J t          t          j                  j                                        D ]T}|j        dk    rG|j                            d          s-d|j         }|| j        vr| j        	                    |           UdS )zEnable all extensions.Nz.py_zpylint.extensions.)
r   r	   __file__parentiterdirsuffixstem
startswithr\   append)rM   r8   filenameextension_names       r5   _enable_all_extensionsrm      s    ===,--4<<>> 4 4?e##HM,D,DS,I,I#A(-AANS\11##N333	4 4r7   T         F   	   )z--init-hookz--rcfilez--outputz--load-pluginsz	--verbosez-vz--enable-all-extensionsz>dict[str, tuple[bool, Callable[[Run, str | None], None], int]]PREPROCESSABLE_OPTIONSargsSequence[str]	list[str]c                ,   g }d}|t          |          k     r{||         }|                    d          s|                    |           |dz  }L	 |                    dd          \  }}n# t          $ r |d}}Y nw xY wd}t
                                          D ];\  }}	|	d         }
|
dk    r	||k    r|}|                    |d|
                   r|}<||                    |           |dz  }t
          |         \  }}}|rQ|O|dz  }|t          |          k    s||                             d          rt          d| d          ||         }n|s|t          d| d	           || |           |dz  }|t          |          k     {|S )
z;Pre-process options before full config parsing has started.r   r      =Nrq   zOption z expects a valuez doesn't expect a value)lenri   rj   split
ValueErrorrs   rL   r   )rM   rt   processed_argsr>   argumentoptionr8   matched_optionoption_namedatato_matchtakeargcbrc   s                 r5   _preprocess_optionsr      s     "N	A
c$ii--7""3'' 	!!(+++FA	+$NN322MFEE 	+ 	+ 	+$dEFFF	+ !7!=!=!?!? 	- 	-KAwH1}}[((%0N"";yy#9:: -!,!!!(+++FA/?Q 	Xu}FACII~~a!3!3C!8!8~01S61S1S1STTTGEE 	XU.,-Vv-V-V-VWWW
3	QK c$ii--N s   A, ,A=<A=)r   r   r   r   r   r   )r8   r   r   r   )rM   r   r8   rN   r   rO   )rM   r   rt   ru   r   rv   )'__doc__
__future__r   rH   collections.abcr   r   pathlibr   typingr   r   pylintr	   r
   pylint.config.argumentr   r   r   r   r   r   pylint.config.callback_actionsr   pylint.config.exceptionsr   pylint.lint.runr   r6   r<   rS   rV   rZ   r^   ra   rm   rs   __annotations__r   rB   r7   r5   <module>r      sF  
 8 7 7 " " " " " " 				 . . . . . . . .       % % % % % % % % $ $ $ $ $ $ $ $                ; : : : : : ? ? ? ? ? ? $######e e e eP            2 2 2 2   
4 4 4 4* *a({A&{A&\1-*A.#Q
' %'=qA)      6, , , , , ,r7   