ó
    áÅŸg’+  ã                  ó@  • S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSK	r	SSK
Jr  SSK
Jr  SSK
Jr  SSK
Jr  SSKJr  SS	KJr  SS
KJr  SSKJr  \R,                  " \5      r\" S5      rSSS.r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r         S&S jr!          S'S jr"        S(S jr#S)S jr$    S*S jr%      S+S jr&      S,S  jr'S-S! jr(S.S" jr)      S/S# jr*      S0S$ jr+      S1S% jr,g)2z1Functions related to finding and loading plugins.é    )ÚannotationsN)ÚAny)Ú	Generator)ÚIterable)Ú
NamedTuple)Úutils)ÚVALID_CODE_PREFIX)ÚExecutionError)ÚFailedToLoadPlugin)zflake8.extensionúflake8.reportz5.0z3.7)zflake8-colorszflake8-per-file-ignoresc                  ó8   • \ rS rSr% SrS\S'   S\S'   S\S'   Srg	)
ÚPluginé   zA plugin before loading.ÚstrÚpackageÚversionzimportlib.metadata.EntryPointÚentry_point© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Ú__static_attributes__r   ó    ÚV/var/www/blue/EV-Temp_rev04/venv/lib/python3.13/site-packages/flake8/plugins/finder.pyr   r      s   ‡ Ù"àƒLØƒLØ.Ö.r   r   c                  ó`   • \ rS rSr% SrS\S'   S\S'   S\S'   \SS	 j5       r\SS
 j5       rSr	g)ÚLoadedPluginé&   z)Represents a plugin after being imported.r   Úpluginr   Úobjúdict[str, bool]Ú
parametersc                óB   • U R                   R                  R                  $ )z0Return the name given in the packaging metadata.)r"   r   Úname©Úselfs    r   Ú
entry_nameÚLoadedPlugin.entry_name-   s   € ð �{‰{×&Ñ&×+Ñ+Ð+r   c                óN   • U R                   R                   SU R                   S3$ )z8Return the name for use in user-facing / error messages.Ú[Ú])r"   r   r*   r(   s    r   Údisplay_nameÚLoadedPlugin.display_name2   s'   € ð —+‘+×%Ñ%Ð& a¨¯©Ð'8¸Ð:Ð:r   r   N©Úreturnr   )
r   r   r   r   r   r   Úpropertyr*   r/   r   r   r   r   r    r    &   s;   ‡ Ù3àƒNØ	ƒHØÓàó,ó ð,ð ó;ó ó;r   r    c                  ó8   • \ rS rSr% SrS\S'   S\S'   S\S'   Srg)	ÚCheckersé8   z'Classified plugins needed for checking.úlist[LoadedPlugin]ÚtreeÚlogical_lineÚphysical_liner   Nr   r   r   r   r5   r5   8   s   ‡ Ù1à
ÓØ$Ó$Ø%Ö%r   r5   c                  óL   • \ rS rSr% SrS\S'   S\S'   S\S'   SS	 jrSS
 jrSrg)ÚPluginsé@   zClassified plugins.r5   Úcheckerszdict[str, LoadedPlugin]Ú	reportersr7   Údisabledc              #  ó  #   • U R                   R                   Sh  v•N   U R                   R                   Sh  v•N   U R                   R                   Sh  v•N   U R                  R                  5        Sh  v•N   g Nc NG N+ N7f)z3Return an iterator over all :class:`LoadedPlugin`s.N)r>   r8   r9   r:   r?   Úvaluesr(   s    r   Úall_pluginsÚPlugins.all_pluginsG   sb   é € à—=‘=×%Ñ%×%Ð%Ø—=‘=×-Ñ-×-Ð-Ø—=‘=×.Ñ.×.Ð.Ø—>‘>×(Ñ(Ó*×*Ñ*ñ 	&Ù-Ù.Ù*ùsC   ‚BœB �BºB»BÁBÁ!BÁ:BÁ;BÂBÂBÂBc           
     ó  • SR                  [        U R                  5        Vs1 sHN  nUR                  R                  S;  d  M  UR                  R                   SUR                  R
                   3iMP     sn5      5      $ s  snf )z0Return a user-displayed list of plugin versions.ú, >   ÚlocalÚflake8z: )ÚjoinÚsortedrC   r"   r   r   )r)   Úloadeds     r   Úversions_strÚPlugins.versions_strN   s}   € à�y‰yÜð #'×"2Ñ"2Ô"4óá"4˜Ø—}‘}×,Ñ,Ð4GÑGó H�v—}‘}×,Ñ,Ð-¨R°·±×0EÑ0EÐ/FÓGÙ"4ñóó
ð 	
ùòs   £BÁ3Br   N)r2   z#Generator[LoadedPlugin, None, None]r1   )	r   r   r   r   r   r   rC   rL   r   r   r   r   r<   r<   @   s!   ‡ ÙàÓØ&Ó&Ø Ó ô+÷

r   r<   c                  óL   • \ rS rSr% SrS\S'   S\S'   S\S'   \SS j5       rS	rg
)ÚPluginOptionsé[   z"Options related to plugin loading.ztuple[str, ...]Úlocal_plugin_pathsúfrozenset[str]Úenable_extensionsÚrequire_pluginsc                ó2   • U " S[        5       [        5       S9$ )z2Make a blank PluginOptions, mostly used for tests.r   ©rQ   rS   rT   )Ú	frozenset)Úclss    r   ÚblankÚPluginOptions.blankb   s   € ñ Ø!Ü'›kÜ%›Kñ
ð 	
r   r   N)r2   rO   )	r   r   r   r   r   r   ÚclassmethodrY   r   r   r   r   rO   rO   [   s)   ‡ Ù,à'Ó'Ø%Ó%Ø#Ó#àó
ó ó
r   rO   c                óÄ   • Ub  [         R                  " U5      $ XR                  SS5      4 H/  nU R                  SUS S9nUc  M  [         R                  " U5      s  $    / $ )NÚ_Ú-rH   ©Úfallback)r   Úparse_comma_separated_listÚreplaceÚget)ÚcfgÚcfg_opt_nameÚoptÚopt_nameÚvals        r   Ú_parse_optionri   l   sh   € ð �Ü×/Ò/°Ó4Ð4ð &×';Ñ';¸CÀÓ'EÓFˆHØ—'‘'˜( H°t�'Ð<ˆCØ‹Ü×7Ò7¸Ó<Ò<ñ Gð
 ˆIr   c               ó  • U R                  SSSS9R                  5       n[        R                  " U5      n[        R                  " XQ5      n[        [        U5      [        [        U SU5      5      [        [        U SU5      5      S9$ )z%Parse plugin loading related options.úflake8:local-pluginsÚpathsÚ r_   rS   rT   rV   )	rc   Ústripr   ra   Únormalize_pathsrO   ÚtuplerW   ri   )rd   Úcfg_dirrS   rT   Úpaths_srl   s         r   Úparse_plugin_optionsrs      sƒ   € ð �g‰gÐ,¨gÀˆgÐC×IÑIÓK€GÜ×,Ò,¨WÓ5€EÜ×!Ò! %Ó1€EäÜ  ›<Ü#Ü˜#Ð2Ð4EÓFó
ô "Ü˜#Ð0°/ÓBó
ñð r   c              #  ó¦  #   • [         R                  R                  S5      R                  n[         R                  R                  S5      R                  nU  Hu  nUR                  [        ;  a  M  UR
                  S:X  a  [        US   US   U5      v •  M@  UR
                  S;   a  [        US   US   U5      v •  Mg  [        XU5      v •  Mw     g 7f)NÚpyflakesÚpycodestyleÚFr'   r   ÚEW)Ú	importlibÚmetadataÚdistributionÚgroupÚFLAKE8_GROUPSr'   r   )Úepsr'   r   Úpyflakes_metaÚpycodestyle_metaÚeps         r   Ú_flake8_pluginsr‚   –   s¸   é € ô
 ×&Ñ&×3Ñ3°JÓ?×HÑH€MÜ ×)Ñ)×6Ñ6°}ÓE×NÑNÐãˆØ�8‰8œ=Ó(Ùà�7‰7�c‹>Ü˜ vÑ.°¸iÑ0HÈ"ÓMÔMØ�W‰W˜‹_ô
 Ø  Ñ(Ð*:¸9Ñ*EÀróô ô ˜¨Ó+Ô+ò ùs   ‚CCc               #  ó&  #   • [        5       n [        R                  R                  5        Hß  nUR                  n[        S U 5       5      (       d  M(  UR                  nUS   U ;   a  M?  U R                  US   5        US   [        ;   a&  [        R                  SUS   [        US      5        M†  US   S:X  a  [        X#S   US   5       S h  v•N   M«  U H.  nUR                  [        ;   d  M  [        US   US   U5      v •  M0     Má     g  N?7f)Nc              3  óD   #   • U H  oR                   [        ;   v •  M     g 7f©N)r|   r}   )Ú.0r�   s     r   Ú	<genexpr>Ú*_find_importlib_plugins.<locals>.<genexpr>¸   s   é € Ð;±s°—8‘8œ}Ö,²sùs   ‚ r'   z#%s plugin is obsolete in flake8>=%srH   r   )Úsetry   rz   ÚdistributionsÚentry_pointsÚanyÚaddÚBANNED_PLUGINSÚLOGÚwarningr‚   r|   r}   r   )ÚseenÚdistr~   Úmetar�   s        r   Ú_find_importlib_pluginsr”   °   sÿ   é € ä‹5€DÜ×"Ñ"×0Ñ0Ö2ˆà×Ñˆô Ñ;±sÓ;×;Ñ;Ùð �}‰}ˆà�‰<˜4ÓÙà�H‰H�T˜&‘\Ô"à�‰<œ>Ó)Ü�K‰KØ5Ø�V‘Ü˜t F™|Ñ,ôñ
 Ø�&‰\˜XÓ%ô ' s°©L¸$¸y¹/ÓJ×JÐJÙãˆBØ�x‰xœ=Õ(Ü˜T &™\¨4°	©?¸BÓ?Ô?ó ò; 3ñ4 Kùs   ‚CDÃDÃDÃ1Dc           	   #  óz  #   • S H±  nSU 3n[         R                  " U R                  SUSS9R                  5       [         R                  S9 He  nUR                  S5      u  pEnUR                  5       UR                  5       pd[        R                  R                  XFU5      n[        SSU5      v •  Mg     M³     g 7f)	N)Ú	extensionÚreportzflake8.rk   rm   r_   )ÚregexpÚ=rG   )
r   ra   rc   rn   ÚLOCAL_PLUGIN_LIST_REÚ	partitionry   rz   Ú
EntryPointr   )rd   Úplugin_typer|   Úplugin_sr'   r]   Ú	entry_strr�   s           r   Ú_find_local_pluginsr    Õ   s©   é € ó /ˆØ˜+˜Ð'ˆÜ×8Ò8Ø�G‰GÐ*¨KÀ"ˆGÐE×KÑKÓMÜ×-Ñ-ô
ˆHð "*×!3Ñ!3°CÓ!8ÑˆD�YØ"Ÿj™j›l¨I¯O©OÓ,=�)Ü×#Ñ#×.Ñ.¨tÀÓFˆBÜ˜ '¨2Ó.Ô.ó
ò /ùs   ‚B9B;c                óŽ  • U  Vs1 sH#  n[         R                  " UR                  5      iM%     nnU Vs1 sH  n[         R                  " U5      iM     nnXS-
  nU(       a\  [        SSR	                  [        U5      5       SSR	                  [        U5      5       SSR	                  [        U5      5       35      eg s  snf s  snf )Nz2required plugins were not installed!
- installed: rF   z
- expected: z
- missing: )r   Únormalize_pypi_namer   r
   rI   rJ   )ÚpluginsÚexpectedr"   Úplugin_namesr'   Úexpected_namesÚmissing_pluginss          r   Ú_check_required_pluginsr¨   ä   sÌ   € ñ
 AHóÙ@G°fŒ×!Ò! &§.¡.Ö1Áð ð ñ CKÓKÁ(¸$”e×/Ò/°Ö5Á(€NÐKØ$Ñ3€OæÜðØ ŸI™I¤f¨\Ó&:Ó;Ð<ð =ØŸ9™9¤V¨NÓ%;Ó<Ð=ð >ØŸ)™)¤F¨?Ó$;Ó<Ð=ð?ó
ð 	
ð ùòùò Ls
   …)B=´Cc                ó~   • / [        5       Q[        U 5      QnUR                  5         [        X!R                  5        U$ )z/Discovers all plugins (but does not load them).)r”   r    Úsortr¨   rT   )rd   ÚoptsÚrets      r   Úfind_pluginsr­   ÷   s<   € ð
 BÔ#Ó%Ð
AÔ(;¸CÓ(@Ð
A€Cð ‡H�H„Jä˜C×!5Ñ!5Ô6à€Jr   c                óÈ  • [         R                  " U 5      (       + nU(       a  U R                  n [         R                  " U 5      R                  R                  5        Vs0 sH]  nUR                  [         R                  R                  L d  M,  UR                  UR                  [         R                  R                  L _M_     nnU(       a  UR                  SS5        U$ s  snf )ah  Return the parameters for the plugin.

This will inspect the plugin and return either the function parameters
if the plugin is a function or the parameters for ``__init__`` after
``self`` if the plugin is a class.

:returns:
    A dictionary mapping the parameter name to whether or not it is
    required (a.k.a., is positional only/does not have a default).
r)   N)ÚinspectÚ
isfunctionÚ__init__Ú	signaturer%   rB   ÚkindÚ	ParameterÚPOSITIONAL_OR_KEYWORDr'   ÚdefaultÚemptyÚpop)ÚfuncÚis_classÚ	parameterr%   s       r   Ú_parameters_forr¼     s¸   € ô ×%Ò% dÓ+Ô+€HÞØ�}‰}ˆô !×*Ò*¨4Ó0×;Ñ;×BÑBÔDóáDˆIØ�>‰>œW×.Ñ.×DÑDÐDó 	Eˆ	�‰˜	×)Ñ)¬W×->Ñ->×-DÑ-DÐDÒDÙDð ð ö Ø�‰�v˜tÔ$àÐùòs   Á*CÂ5Cc                ó  •  U R                   R                  5       n[        U5      (       d!  [        S5      n[        U R                  U5      e[        X[        U5      5      $ ! [         a  n[        U R                  U5      eS nAff = f)Nz%expected loaded plugin to be callable)	r   ÚloadÚ	Exceptionr   r   ÚcallableÚ	TypeErrorr    r¼   )r"   r#   ÚeÚerrs       r   Ú_load_pluginrÄ   !  sw   € ð4Ø× Ñ ×%Ñ%Ó'ˆô �C�=‰=ÜÐ?Ó@ˆÜ  §¡°Ó5Ð5ä˜¤_°SÓ%9Ó:Ð:øô ó 4Ü  §¡°Ó3Ð3ûð4ús   ‚A" Á"
BÁ,BÂBc                ó”   • [         R                  R                  UR                  5        U  Vs/ sH  n[	        U5      PM     sn$ s  snf r…   )ÚsysÚpathÚextendrQ   rÄ   )r£   r«   Úps      r   Ú_import_pluginsrÊ   .  s6   € ô ‡H�H‡O�O�D×+Ñ+Ô,Ù%,Ó-¡W ŒL˜ŽO¡WÑ-Ð-ùÒ-s   ®Ac                ó6  • / n/ n/ n0 n/ nU  GH	  n[        UR                  SS5      (       aA  UR                  R                  R                  UR
                  ;  a  UR                  U5        Ma  UR                  R                  R                  S:X  a  XuUR                  '   M•  SUR                  ;   a  UR                  U5        M¸  SUR                  ;   a  UR                  U5        MÛ  SUR                  ;   a  UR                  U5        Mþ  [        SU 35      e   [        R                  " X#U5       HQ  n[        R                  " UR                  5      (       a  M*  [        SUR                    S	[        R"                   35      e   [%        ['        UUUS
9UUS9$ )NÚoff_by_defaultFr   r8   r9   r:   zwhat plugin type? zplugin code for `z` does not match )r8   r9   r:   )r>   r?   r@   )Úgetattrr#   r"   r   r'   rS   Úappendr|   r*   r%   ÚNotImplementedErrorÚ	itertoolsÚchainr	   Úmatchr
   r/   Úpatternr<   r5   )r£   r«   r8   r9   r:   r?   r@   rK   s           r   Ú_classify_pluginsrÔ   6  sv  € ð €DØ€LØ€MØ€IØ€Häˆä�F—J‘JÐ 0°%×8Ñ8Ø—‘×)Ñ)×.Ñ.°d×6LÑ6LÓLà�O‰O˜FÖ#Ø�]‰]×&Ñ&×,Ñ,°Ó?Ø+1�f×'Ñ'Ó(Ø�v×(Ñ(Ó(Ø�K‰K˜ÖØ˜v×0Ñ0Ó0Ø×Ñ Ö'Ø × 1Ñ 1Ó1Ø× Ñ  Ö(ä%Ð(:¸6¸(Ð&CÓDÐDñ ô" —/’/ $°mÖDˆÜ ×&Ò& v×'8Ñ'8×9Ó9Ü Ø# F×$7Ñ$7Ð#8Ð8IÜ$×,Ñ,Ð-ð/óð ñ Eô ÜØØ%Ø'ñ
ð
 Øñð r   c                ó,   • [        [        X5      U5      $ )zÜLoad and classify all flake8 plugins.

- first: extends ``sys.path`` with ``paths`` (to import local plugins)
- next: converts the ``Plugin``s to ``LoadedPlugins``
- finally: classifies plugins into their specific types
)rÔ   rÊ   )r£   r«   s     r   Úload_pluginsrÖ   c  s   € ô œ_¨WÓ;¸TÓBÐBr   )rd   úconfigparser.RawConfigParserre   r   rf   ú
str | Noner2   z	list[str])
rd   r×   rq   r   rS   rØ   rT   rØ   r2   rO   )r~   z'Iterable[importlib.metadata.EntryPoint]r'   r   r   r   r2   úGenerator[Plugin, None, None])r2   rÙ   )rd   r×   r2   rÙ   )r£   úlist[Plugin]r¤   rR   r2   ÚNone)rd   r×   r«   rO   r2   rÚ   )r¹   r   r2   r$   )r"   r   r2   r    )r£   rÚ   r«   rO   r2   r7   )r£   r7   r«   rO   r2   r<   )r£   rÚ   r«   rO   r2   r<   )-r   Ú
__future__r   ÚconfigparserÚimportlib.metadatary   r¯   rÐ   ÚloggingrÆ   Útypingr   r   r   r   rH   r   Úflake8.defaultsr	   Úflake8.exceptionsr
   r   Ú	getLoggerr   r�   rW   r}   rŽ   r   r    r5   r<   rO   ri   rs   r‚   r”   r    r¨   r­   r¼   rÄ   rÊ   rÔ   rÖ   r   r   r   Ú<module>rä      sæ  ðÙ 7Ý "ã Û Û Û Û Û 
Ý Ý Ý Ý å Ý -Ý ,Ý 0à×Ò˜Ó!€áÐ?Ó@€ð Ø$ñ€ô/ˆZô /ô;�:ô ;ô$&ˆzô &ô
ˆjô 
ô6
�Jô 
ð"Ø	%ðàðð 
ðð ô	ð&Ø	%ðàðð "ð	ð
  ðð ôð.,Ø	0ð,à
ð,ð ð,ð #ô	,ô4"@ðJ/Ø	%ð/à"ô/ð
Øð
àð
ð 
ô
ð&Ø	%ðà
ðð ôôô6
;ð.Øð.à
ð.ð ô.ð*Øð*à
ð*ð ô*ðZ
CØð
Cà
ð
Cð õ
Cr   