§
    ÷yIfà9  ã                  ó˜  — U d Z ddlmZ ddlZddlZddlZddlZddlmZ ddl	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 dd	lmZ dd
lmZmZ eeeeeee         ee         eee                  eedf         f         Z	 d5d„Zd5d„Z h d£Z!h d£Z"d6d„Z#d7d„Z$d7d„Z%d5d„Z&d8d„Z'd9d„Z(d:d„Z)d:d„Z*ee eeee$e%e&e'e(e)e*ej+        e#d œZ,d!e-d"<   	  G d#„ d$¦  «        Z. G d%„ d&e.¦  «        Z/ G d'„ d(e/¦  «        Z0 G d)„ d*e/¦  «        Z1 G d+„ d,e.¦  «        Z2 G d-„ d.e2¦  «        Z3 G d/„ d0e2¦  «        Z4 G d1„ d2e2¦  «        Z5 G d3„ d4e.¦  «        Z6dS );zªDefinition of an Argument class and transformers for various argument types.

An Argument instance represents a pylint option to be handled by an argparse.ArgumentParser
é    )ÚannotationsN)ÚCallable)Úglob)ÚAnyÚLiteralÚPatternÚSequenceÚTupleÚUnion)Ú
interfaces)Úutils)Ú_CallbackAction)Ú_NewNamesActionÚ_OldNamesAction.ÚvalueÚstrÚreturnúSequence[str]c                ó¼   — | st           j        S t          j        | ¦  «        }|D ]6}|t           j        vr&t	          j        | › dg t           j        ¢R › �¦  «        ‚Œ7|S )z9Transforms a comma separated string of confidence values.z should be in )r   ÚCONFIDENCE_LEVEL_NAMESÚpylint_utilsÚ
_check_csvÚargparseÚArgumentTypeError)r   ÚvaluesÚ
confidences      úJ/var/www/piapp/venv/lib/python3.11/site-packages/pylint/config/argument.pyÚ_confidence_transformerr   &   s~   € àð 1ÝÔ0Ð0ÝÔ$ UÑ+Ô+€FØð ð ˆ
Ø�ZÔ>Ð>Ð>ÝÔ,ØÐMÐMÐ'L­Ô)JÐ'LÐ'LÐMÐMñô ð ð ?ð €Mó    c                ó*   — t          j        | ¦  «        S )z$Transforms a comma separated string.)r   r   ©r   s    r   Ú_csv_transformerr"   3   s   € åÔ" 5Ñ)Ô)Ð)r   >   ÚyÚyesÚtrue>   ÚnÚnoÚfalseÚboolc                óª   — |                       ¦   «         } | t          v rdS | t          v rdS t          j        dd| › dg t          ¢t          ¢R › �¦  «        ‚)z4Transforms a yes/no or stringified bool into a bool.TFNzInvalid yn value 'z', should be in )ÚlowerÚ
YES_VALUESÚ	NO_VALUESr   r   r!   s    r   Ú_yn_transformerr.   <   sh   € à�KŠK‰MŒM€EØ•
ÐÐØˆtØ•	ÐÐØˆuÝ
Ô
$ØÐS 5ÐSÐSÐ9R½:Ð9RÍ	Ð9RÐ9RÐSÐSñô ð r   c                óV   — | st          j        d¦  «        ‚t          j        | ¦  «        S )z3Check that a string is not empty and remove quotes.z!Option cannot be an empty string.)r   r   r   Ú_unquoter!   s    r   Ú_non_empty_string_transformerr1   H   s.   € àð NÝÔ(Ð)LÑMÔMÐMÝÔ  Ñ'Ô'Ð'r   c                óz   — t           j                             t           j                             | ¦  «        ¦  «        S )z$Expand user and variables in a path.)ÚosÚpathÚ
expandvarsÚ
expanduserr!   s    r   Ú_path_transformerr7   O   s(   € åŒ7×Ò�bœg×0Ò0°Ñ7Ô7Ñ8Ô8Ð8r   c                ó�   — g }t          | ¦  «        D ]3}|                     t          t          |¦  «        d¬¦  «        ¦  «         Œ4|S )ziTransforms a comma separated list of paths while expanding user and
    variables and glob patterns.
    T)Ú	recursive)r"   Úextendr   r7   )r   Úpathsr4   s      r   Ú_glob_paths_csv_transformerr<   T   sR   € ð €EÝ  Ñ'Ô'ð Dð DˆØ�Š•TÕ+¨DÑ1Ô1¸TÐBÑBÔBÑCÔCÐCÐCØ€Lr   útuple[int, ...]c                óÖ   — 	 t          d„ |                      dd¦  «                             d¦  «        D ¦   «         ¦  «        }n&# t          $ r t	          j        | › d�¦  «        d‚w xY w|S )z1Transforms a version string into a version tuple.c              3  ó4   K  — | ]}t          |¦  «        V — Œd S )N)Úint)Ú.0Úvals     r   ú	<genexpr>z*_py_version_transformer.<locals>.<genexpr>a   s(   è è € ÐOÐO S�˜C™œÐOÐOÐOÐOÐOÐOr   ú,ú.z? has an invalid format, should be a version string. E.g., '3.8'N)ÚtupleÚreplaceÚsplitÚ
ValueErrorr   r   )r   Úversions     r   Ú_py_version_transformerrK   ^   s‡   € ðÝÐOÐO¨E¯MªM¸#¸sÑ,CÔ,C×,IÒ,IÈ#Ñ,NÔ,NÐOÑOÔOÑOÔOˆˆøÝð ð ð ÝÔ(ØÐUÐUÐUñ
ô 
àð	ðøøøð €Ns   ‚A A Á#A&úPattern[str]c                ó®   — 	 t          j        | ¦  «        S # t           j        $ r/}d| › d|j        › d|j        › �}t          j        |¦  «        |‚d}~ww xY w)zReturn `re.compile(value)`.z&Error in provided regular expression: z beginning at index z: N)ÚreÚcompileÚerrorÚposÚmsgr   r   )r   ÚerR   s      r   Ú_regex_transformerrT   i   sp   € ð5ÝŒz˜%Ñ Ô Ð øÝŒ8ð 5ð 5ð 5Øb°uÐbÐbÐRSÔRWÐbÐbÐ[\Ô[`ÐbÐbˆÝÔ(¨Ñ-Ô-°1Ð4øøøøð5øøøs   ‚ –A¥*AÁAúSequence[Pattern[str]]c                ó|   — g }t          j        | ¦  «        D ]$}|                     t          |¦  «        ¦  «         Œ%|S )z9Transforms a comma separated list of regular expressions.)r   Ú_check_regexp_csvÚappendrT   ©r   ÚpatternsÚpatterns      r   Ú_regexp_csv_transfomerr\   r   sD   € à#%€HÝÔ1°%Ñ8Ô8ð 5ð 5ˆØ�ŠÕ*¨7Ñ3Ô3Ñ4Ô4Ð4Ð4Ø€Or   c           
     ó6  — g }t          | ¦  «        D ]†}|                     t          j        t	          t          j        |¦  «        ¦  «                             dd¦  «        dz   t          j        |¦  «                             ¦   «         z   ¦  «        ¦  «         Œ‡|S )z?Transforms a comma separated list of regular expressions paths.ú\z\\ú|)	r"   rX   rN   rO   r   ÚpathlibÚPureWindowsPathrG   Úas_posixrY   s      r   Ú_regexp_paths_csv_transfomerrc   z   sœ   € à#%€HÝ# EÑ*Ô*ð 
ð 
ˆØ�ŠÝŒJÝ•GÔ+¨GÑ4Ô4Ñ5Ô5×=Ò=¸dÀFÑKÔKØñåÔ)¨'Ñ2Ô2×;Ò;Ñ=Ô=ñ>ñô ñ	
ô 	
ð 	
ð 	
ð €Or   )ÚchoiceÚcsvÚfloatr@   r   Únon_empty_stringr4   Úglob_paths_csvÚ
py_versionÚregexpÚ
regexp_csvÚregexp_paths_csvÚstringÚynz*dict[str, Callable[[str], _ArgumentTypes]]Ú_TYPE_TRANSFORMERSc                  ó   — e Zd ZdZdd„ZdS )Ú	_Argumenta  Class representing an argument to be parsed by an argparse.ArgumentsParser.

    This is based on the parameters passed to argparse.ArgumentsParser.add_message.
    See:
    https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument
    Úflagsú	list[str]Úarg_helpr   Ú	hide_helpr)   Úsectionú
str | Noner   ÚNonec               ó’   — || _         	 || _        	 |                     dd¦  «        | _        	 |rt          j        | _        || _        d S )Nú%z%%)rr   ru   rG   Úhelpr   ÚSUPPRESSrv   )Úselfrr   rt   ru   rv   s        r   Ú__init__z_Argument.__init__©   sS   € ð ˆŒ
Ø'à"ˆŒØ@ð ×$Ò$ S¨$Ñ/Ô/ˆŒ	Ø.àð 	*Ý Ô)ˆDŒIàˆŒØ2Ð2r   N)
rr   rs   rt   r   ru   r)   rv   rw   r   rx   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r~   © r   r   rq   rq   ¡   s2   € € € € € ðð ð3ð 3ð 3ð 3ð 3ð 3r   rq   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )Ú_BaseStoreArgumenta  Base class for store arguments to be parsed by an argparse.ArgumentsParser.

    This is based on the parameters passed to argparse.ArgumentsParser.add_message.
    See:
    https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument
    rr   rs   Úactionr   ÚdefaultÚ_ArgumentTypesrt   ru   r)   rv   rw   r   rx   c               óp   •— t          ¦   «                              ||||¬¦  «         || _        	 || _        d S ©N)rr   rt   ru   rv   )Úsuperr~   r†   r‡   ©r}   rr   r†   r‡   rt   ru   rv   Ú	__class__s          €r   r~   z_BaseStoreArgument.__init__Ê   sH   ø€ õ 	‰Œ×ÒØ (°iÈð 	ñ 	
ô 	
ð 	
ð ˆŒØ6àˆŒØ0Ð0r   )rr   rs   r†   r   r‡   rˆ   rt   r   ru   r)   rv   rw   r   rx   ©r   r€   r�   r‚   r~   Ú__classcell__©r�   s   @r   r…   r…   Â   sG   ø€ € € € € ðð ð1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1r   r…   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )Ú_StoreArgumenta  Class representing a store argument to be parsed by an argparse.ArgumentsParser.

    This is based on the parameters passed to argparse.ArgumentsParser.add_message.
    See:
    https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument
    rr   rs   r†   r   r‡   rˆ   Úarg_typeÚchoicesúlist[str] | Nonert   Úmetavarru   r)   rv   rw   r   rx   c       	        óš   •— t          ¦   «                              ||||||	¬¦  «         t          |         | _        	 || _        	 || _        d S ©N)rr   r†   r‡   rt   ru   rv   )r‹   r~   ro   Útyper”   r–   ©r}   rr   r†   r‡   r“   r”   rt   r–   ru   rv   r�   s             €r   r~   z_StoreArgument.__init__è   sh   ø€ õ 	‰Œ×ÒØØØØØØð 	ñ 	
ô 	
ð 	
õ ' xÔ0ˆŒ	ØUàˆŒð	ð
 ˆŒð	ð 	r   )rr   rs   r†   r   r‡   rˆ   r“   r   r”   r•   rt   r   r–   r   ru   r)   rv   rw   r   rx   rŽ   r�   s   @r   r’   r’   ß   sG   ø€ € € € € ðð ð$ð $ð $ð $ð $ð $ð $ð $ð $ð $r   r’   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )Ú_StoreTrueArgumenta  Class representing a 'store_true' argument to be parsed by an
    argparse.ArgumentsParser.

    This is based on the parameters passed to argparse.ArgumentsParser.add_message.
    See:
    https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument
    rr   rs   r†   úLiteral['store_true']r‡   rˆ   rt   r   ru   r)   rv   rw   r   rx   c               óV   •— t          ¦   «                              ||||||¬¦  «         d S r˜   )r‹   r~   rŒ   s          €r   r~   z_StoreTrueArgument.__init__  sB   ø€ õ 	‰Œ×ÒØØØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   )rr   rs   r†   r�   r‡   rˆ   rt   r   ru   r)   rv   rw   r   rx   rŽ   r�   s   @r   rœ   rœ     sG   ø€ € € € € ðð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   rœ   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )Ú_DeprecationArgumenta  Store arguments while also handling deprecation warnings for old and new names.

    This is based on the parameters passed to argparse.ArgumentsParser.add_message.
    See:
    https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument
    rr   rs   r†   útype[argparse.Action]r‡   rˆ   r“   r   r”   r•   rt   r–   ru   r)   rv   rw   r   rx   c       	        ó¶   •— t          ¦   «                              ||||	¬¦  «         || _        	 || _        	 t          |         | _        	 || _        	 || _        d S rŠ   )r‹   r~   r†   r‡   ro   r™   r”   r–   rš   s             €r   r~   z_DeprecationArgument.__init__6  ss   ø€ õ 	‰Œ×ÒØ (°iÈð 	ñ 	
ô 	
ð 	
ð ˆŒØ6àˆŒØ0å& xÔ0ˆŒ	ØUàˆŒð	ð
 ˆŒð	ð 	r   )rr   rs   r†   r¡   r‡   rˆ   r“   r   r”   r•   rt   r   r–   r   ru   r)   rv   rw   r   rx   rŽ   r�   s   @r   r    r    -  sG   ø€ € € € € ðð ð%ð %ð %ð %ð %ð %ð %ð %ð %ð %r   r    c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )Ú_ExtendArgumenta  Class for extend arguments to be parsed by an argparse.ArgumentsParser.

    This is based on the parameters passed to argparse.ArgumentsParser.add_message.
    See:
    https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument
    rr   rs   r†   úLiteral['extend']r‡   rˆ   r“   r   r–   rt   ru   r)   rv   rw   r”   r•   Údestr   rx   c       
        ó„   •— t           j        }|
| _        	 t          ¦   «                              |||||	||||¬¦	  «	         d S ©N)	rr   r†   r‡   r“   r”   rt   r–   ru   rv   )r   Ú_ExtendActionr¦   r‹   r~   )r}   rr   r†   r‡   r“   r–   rt   ru   rv   r”   r¦   Úaction_classr�   s               €r   r~   z_ExtendArgument.__init__g  s]   ø€ õ  Ô-ˆàˆŒ	Ø.å‰Œ×ÒØØØØØØØØØð 	ñ 
	
ô 
	
ð 
	
ð 
	
ð 
	
r   )rr   rs   r†   r¥   r‡   rˆ   r“   r   r–   r   rt   r   ru   r)   rv   rw   r”   r•   r¦   rw   r   rx   rŽ   r�   s   @r   r¤   r¤   ^  sG   ø€ € € € € ðð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   r¤   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )Ú_StoreOldNamesArgumentzêStore arguments while also handling old names.

    This is based on the parameters passed to argparse.ArgumentsParser.add_message.
    See:
    https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument
    rr   rs   r‡   rˆ   r“   r   r”   r•   rt   r–   ru   r)   Úkwargsúdict[str, Any]rv   rw   r   rx   c       	        ót   •— t          ¦   «                              |t          |||||||	¬¦	  «	         || _        d S r¨   )r‹   r~   r   r­   ©r}   rr   r‡   r“   r”   rt   r–   ru   r­   rv   r�   s             €r   r~   z_StoreOldNamesArgument.__init__�  óP   ø€ õ 	‰Œ×ÒØÝ"ØØØØØØØð 	ñ 
	
ô 
	
ð 
	
ð ˆŒØ<Ð<r   ©rr   rs   r‡   rˆ   r“   r   r”   r•   rt   r   r–   r   ru   r)   r­   r®   rv   rw   r   rx   rŽ   r�   s   @r   r¬   r¬   ‡  óG   ø€ € € € € ðð ð=ð =ð =ð =ð =ð =ð =ð =ð =ð =r   r¬   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )Ú_StoreNewNamesArgumentzõStore arguments while also emitting deprecation warnings.

    This is based on the parameters passed to argparse.ArgumentsParser.add_message.
    See:
    https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument
    rr   rs   r‡   rˆ   r“   r   r”   r•   rt   r–   ru   r)   r­   r®   rv   rw   r   rx   c       	        ót   •— t          ¦   «                              |t          |||||||	¬¦	  «	         || _        d S r¨   )r‹   r~   r   r­   r°   s             €r   r~   z_StoreNewNamesArgument.__init__¶  r±   r   r²   rŽ   r�   s   @r   rµ   rµ   ­  r³   r   rµ   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )Ú_CallableArgumenta  Class representing an callable argument to be parsed by an
    argparse.ArgumentsParser.

    This is based on the parameters passed to argparse.ArgumentsParser.add_message.
    See:
    https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument
    rr   rs   r†   útype[_CallbackAction]rt   r   r­   r®   ru   r)   rv   rw   r–   r   rx   c               ó€   •— t          ¦   «                              ||||¬¦  «         || _        	 || _        	 || _        d S rŠ   )r‹   r~   r†   r­   r–   )	r}   rr   r†   rt   r­   ru   rv   r–   r�   s	           €r   r~   z_CallableArgument.__init__Ü  sV   ø€ õ 	‰Œ×ÒØ (°iÈð 	ñ 	
ô 	
ð 	
ð ˆŒØ6àˆŒØ<àˆŒð	ð 	r   )rr   rs   r†   r¹   rt   r   r­   r®   ru   r)   rv   rw   r–   r   r   rx   rŽ   r�   s   @r   r¸   r¸   Ó  sG   ø€ € € € € ðð ðð ð ð ð ð ð ð ð ð r   r¸   )r   r   r   r   )r   r   r   r)   )r   r   r   r   )r   r   r   r=   )r   r   r   rL   )r   r   r   rU   )7r‚   Ú
__future__r   r   r3   r`   rN   Úcollections.abcr   r   Útypingr   r   r   r	   r
   r   Úpylintr   r   r   Úpylint.config.callback_actionsr   Ú!pylint.config.deprecation_actionsr   r   r   r@   rf   r)   rˆ   r   r"   r,   r-   r.   r1   r7   r<   rK   rT   r\   rc   r0   ro   Ú__annotations__rq   r…   r’   rœ   r    r¤   r¬   rµ   r¸   rƒ   r   r   ú<module>rÂ      s÷  ðð
ð ð ð
 #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @à Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø :Ð :Ð :Ð :Ð :Ð :Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NàØØØ	ØØˆC„LØˆS„MØˆW�SŒ\ÔØ	ˆ#ˆsˆ(„Oðô	€ð 'ð
ð 
ð 
ð 
ð*ð *ð *ð *ð
 "Ð!Ð!€
Ø Ð Ð €	ð	ð 	ð 	ð 	ð(ð (ð (ð (ð9ð 9ð 9ð 9ð
ð ð ð ðð ð ð ð5ð 5ð 5ð 5ðð ð ð ðð ð ð ð ØØØØ)Ø5ØØ1Ø)Ø Ø(Ø4ØÔ#Ø
ðBð BÐ ð ð ð ñ ð ð3ð 3ð 3ð 3ð 3ñ 3ô 3ð 3ðB1ð 1ð 1ð 1ð 1˜ñ 1ô 1ð 1ð:-ð -ð -ð -ð -Ð'ñ -ô -ð -ð`
ð 
ð 
ð 
ð 
Ð+ñ 
ô 
ð 
ð<.ð .ð .ð .ð .˜9ñ .ô .ð .ðb&
ð &
ð &
ð &
ð &
Ð*ñ &
ô &
ð &
ðR#=ð #=ð #=ð #=ð #=Ð1ñ #=ô #=ð #=ðL#=ð #=ð #=ð #=ð #=Ð1ñ #=ô #=ð #=ðL#ð #ð #ð #ð #˜	ñ #ô #ð #ð #ð #r   