ó
    Ñ]j±	  ã                  ó¦   • S SK Jr  S SKrS SKJr  S SKJr  S SKJ	r	   " S S\
5      rSS jrSS	.     SS
 jjrSS	.SS jjrSS	.     SS jjrg)é    )ÚannotationsN)ÚMapping)ÚNoReturn)Úparse_shebang_from_filec                  ó   • \ rS rSrSS jrSrg)ÚExecutableNotFoundErroré
   c                óB   • SU R                   S   R                  5       S 4$ )Né   r   )ÚargsÚencode)Úselfs    ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pre_commit/parse_shebang.pyÚ	to_outputÚ!ExecutableNotFoundError.to_output   s    € Ø�4—9‘9˜Q‘<×&Ñ&Ó(¨$Ð/Ð/ó    © N)Úreturnztuple[int, bytes, None])Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__static_attributes__r   r   r   r   r   
   s   † ÷0r   r   c                ób   • [         R                  R                  U 5      (       d  g[        U 5      $ )Nr   )ÚosÚpathÚexistsr   )Úfilenames    r   Úparse_filenamer      s#   € Ü�7‰7�>‰>˜(×#Ñ#Øä& xÓ0Ð0r   ©Úenvc               óŒ  ^ • [         R                  R                  T 5      m [         R                  T ;   a  T $ Ub  UO[         R                  nSU;   a<  US   R                  [         R                  5      n[        U 4S jU 5       5      T 4-   nOT 4nUR                  SS5      R                  [         R                  5       H�  nU Hx  n[         R                  R                  XV5      n[         R                  R                  U5      (       d  MH  [         R                  " U[         R                  5      (       d  Mt  Us  s  $    Mƒ     g )NÚPATHEXTc              3  ó0   >#   • U  H  nT U 3v •  M     g 7f)Nr   )Ú.0ÚextÚexes     €r   Ú	<genexpr>Ú"find_executable.<locals>.<genexpr>!   s   øé € Ð"AºD°S c U¨3¨%¥=ºDùs   ƒÚPATHÚ )r   r   ÚnormpathÚsepÚenvironÚsplitÚpathsepÚtupleÚgetÚjoinÚisfileÚaccessÚX_OK)r'   r!   r.   ÚextsÚpossible_exe_namesr   Úpossible_exe_nameÚjoineds   `       r   Úfind_executabler;      së   ø€ ô �'‰'×
Ñ
˜3Ó
€CÜ	‡v�v�ƒ}Øˆ
à‘_‰c¬"¯*©*€Gà�GÓØ�yÑ!×'Ñ'¬¯
©
Ó3ˆÜ"Ô"A¹DÓ"AÓAÀSÀFÑJÑà!˜VÐà—‘˜F BÓ'×-Ñ-¬b¯j©jÖ9ˆÛ!3ÐÜ—W‘W—\‘\ $Ó:ˆFÜ�w‰w�~‰~˜f×%Ó%¬"¯)ª)°F¼B¿G¹G×*DÓ*DØ”ó "4ñ :ð r   c               óÚ  ^ • SU 4S jjn[         R                  T ;  a@  [         R                  (       a  [         R                  T ;  a  [        T US9nUc  U" S5        U$ [         R                  R                  T 5      (       a	  U" S5        g [         R                  R                  T 5      (       d	  U" S5        g [         R                  " T [         R                  5      (       d	  U" S5        g T $ )Nc                ó&   >• [        ST SU  35      e)NzExecutable `z` )r   )ÚmsgÚorigs    €r   Ú_errorÚnormexe.<locals>._error/   s   ø€ Ü%¨°T°F¸"¸S¸EÐ&BÓCÐCr   r    z	not foundzis a directoryzis not executable)r>   Ústrr   r   )	r   r-   Úaltsepr;   r   Úisdirr4   r5   r6   )r?   r!   r@   r'   s   `   r   ÚnormexerE   .   s    ø€ ÷Dô 
‡v�v�TÓ¤2§9§9´·	±	ÀÓ0EÜ˜d¨Ñ,ˆØ‰;Ù�;ÔØˆ
Ü	�‰�‰�t×	Ñ	ÙÐÕ Ü�W‰W�^‰^˜D×!Ñ!Ùˆ{ÕÜ�YŠY�tœRŸW™W×%Ñ%ÙÐ"Õ#àˆr   c               ór   • [        U S   US9n[        U5      U4-   U SS -   n [        U S   US9nU4U SS -   $ )z¬Fixes for the following issues on windows
- https://bugs.python.org/issue8557
- windows does not parse shebangs

This function also makes deep-path shebangs work just fine
r   r    r   N)rE   r   )Úcmdr!   r'   s      r   Únormalize_cmdrH   A   sW   € ô �#�a‘&˜cÑ
"€Cô ˜Ó
  Ñ
&¨¨Q¨R¨Ñ
0€Cô �#�a‘&˜cÑ
"€Càˆ6�C˜˜�GÑÐr   )r   rB   r   útuple[str, ...])r'   rB   r!   úMapping[str, str] | Noner   z
str | None)r?   rB   r!   rJ   r   rB   )rG   rI   r!   rJ   r   rI   )Ú
__future__r   Úos.pathr   Úcollections.abcr   Útypingr   Úidentify.identifyr   ÚOSErrorr   r   r;   rE   rH   r   r   r   Ú<module>rQ      sw   ðÝ "ã Ý #Ý å 5ô0˜gô 0ô
1ð 6:ñØðØ2ðàõð0 ;?÷ ð, )-ñØðð &ðð ö	r   