Ë
    óÇ:jï+  ã                  óT  — d dl mZ d dlZd dlZd dlZd dl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mZ ddlmZmZ erd dlmZ ddlmZ d d	lmZ d d
lmZ  G d„ ded¬«      Z G d„ de«      Z G d„ de«      Z G d„ d«      Z G d„ de«      Z G d„ de«      Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%y)é    )ÚannotationsN)ÚIterable)ÚTYPE_CHECKINGÚ	TypedDicté   )ÚmetadataÚ	resources)ÚSelf)ÚSetuptoolsWarning)Úfirst_line_re)Úget_platformc                  ó"   — e Zd ZU ded<   ded<   y)Ú
_SplitArgsÚboolÚcommentsÚposixN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úh/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/setuptools/_scripts.pyr   r      s   … ØƒNØ„Kr   r   F)Útotalc                  óÀ   — e Zd ZU dZg Zded<    e«       Zed„ «       Z	ed„ «       Z
edd„«       Zed„ «       Zedd„«       Zdd	„Zed
„ «       Zd„ Zed„ «       Zed„ «       Zy)ÚCommandSpeczm
    A command spec for a #! header, specified as a list of arguments akin to
    those passed to Popen.
    z	list[str]Úoptionsc                ó   — | S )zV
        Choose the best CommandSpec class based on environmental conditions.
        r   ©Úclss    r   ÚbestzCommandSpec.best'   s	   € ð
 ˆ
r   c                óœ   — t         j                  j                  t        j                  «      }t         j
                  j                  d|«      S )NÚ__PYVENV_LAUNCHER__)ÚosÚpathÚnormpathÚsysÚ
executableÚenvironÚget)r    Ú_defaults     r   Ú_sys_executablezCommandSpec._sys_executable.   s0   € ä—7‘7×#Ñ#¤C§N¡NÓ3ˆÜ�z‰z�~‰~Ð3°XÓ>Ð>r   c                óâ   — t        || «      r|S t        |t        «      r| j                  |«      S t        |t        «      r | |«      S |€| j	                  «       S t        dt        |«      › �«      ‚)zg
        Construct a CommandSpec from a parameter to build_scripts, which may
        be None.
        z!Argument has an unsupported type )Ú
isinstanceÚstrÚfrom_stringr   Úfrom_environmentÚ	TypeErrorÚtype)r    Úparams     r   Ú
from_paramzCommandSpec.from_param3   sk   € ô �e˜SÔ!ØˆLÜ�eœSÔ!Ø—?‘? 5Ó)Ð)Ü�eœXÔ&Ù�u“:ÐØˆ=Ø×'Ñ'Ó)Ð)ÜÐ;¼DÀ»K¸=ÐIÓJÐJr   c                ó0   —  | | j                  «       g«      S ©N)r,   r   s    r   r1   zCommandSpec.from_environmentC   s   € á�C×'Ñ'Ó)Ð*Ó+Ð+r   c                óR   — t        j                  |fi | j                  ¤Ž} | |«      S )z}
        Construct a command spec from a simple string representing a command
        line parseable by shlex.split.
        )ÚshlexÚsplitÚ
split_args)r    ÚstringÚitemss      r   r0   zCommandSpec.from_stringG   s%   € ô —‘˜FÑ5 c§n¡nÑ5ˆÙ�5‹zÐr   c                ó¸   — t        j                  | j                  |«      «      | _        t	        j
                  | «      }t        |«      sdg| j                  d d y y )Nz-xr   )r9   r:   Ú_extract_optionsr   Ú
subprocessÚlist2cmdlineÚisascii)ÚselfÚscript_textÚcmdlines      r   Úinstall_optionszCommandSpec.install_optionsP   sL   € Ü—{‘{ 4×#8Ñ#8¸Ó#EÓFˆŒÜ×)Ñ)¨$Ó/ˆÜ�wÔØ $˜vˆD�L‰L˜˜!Ñð  r   c                ó²   — | dz   j                  «       d   }t        «       j                  |«      }|r|j                  d«      xs dnd}|j	                  «       S )zH
        Extract any options from the first line of the script.
        ú
r   r   Ú )Ú
splitlinesÚ_first_line_reÚmatchÚgroupÚstrip)Úorig_scriptÚfirstrL   r   s       r   r?   zCommandSpec._extract_optionsV   sQ   € ð
 ˜tÑ#×/Ñ/Ó1°!Ñ4ˆÜÓ ×&Ñ& uÓ-ˆÙ*/�%—+‘+˜a“.Ò&¡B°RˆØ�}‰}‹Ðr   c                óP   — | j                  | t        | j                  «      z   «      S r7   )Ú_renderÚlistr   )rC   s    r   Ú	as_headerzCommandSpec.as_header`   s   € Ø�|‰|˜D¤4¨¯©Ó#5Ñ5Ó6Ð6r   c                ól   — d}|D ],  }| j                  |«      sŒ| j                  |«      sŒ'| dd c S  | S )Nz"'r   éÿÿÿÿ)Ú
startswithÚendswith)ÚitemÚ_QUOTESÚqs      r   Ú_strip_quoteszCommandSpec._strip_quotesc   s@   € àˆØò 	"ˆAØ�‰˜qÕ! d§m¡m°AÕ&6Ø˜A˜b�zÒ!ð	"ð ˆr   c                óJ   — t        j                  d„ | D «       «      }d|z   dz   S )Nc              3  ób   K  — | ]'  }t         j                  |j                  «       «      –— Œ) y ­wr7   )r   r\   rN   )Ú.0rY   s     r   ú	<genexpr>z&CommandSpec._render.<locals>.<genexpr>m   s&   è ø€ ò *
Ø8<ŒK×%Ñ% d§j¡j£l×3ñ*
ùs   ‚-/z#!rH   )r@   rA   )r=   rE   s     r   rR   zCommandSpec._renderk   s0   € ä×)Ñ)ñ *
Ø@Eô*
ó 
ˆð �g‰~ Ñ$Ð$r   N)r4   z!Self | str | Iterable[str] | NoneÚreturnr
   )r<   r/   ra   r
   )rD   r/   )r   r   r   Ú__doc__r   r   r   r;   Úclassmethodr!   r,   r5   r1   r0   rF   Ústaticmethodr?   rT   r\   rR   r   r   r   r   r      sÄ   … ñð
 €GˆYÓÙ“€Jàñó ðð ñ?ó ð?ð òKó ðKð ñ,ó ð,ð òó ðó&ð ñó ðò7ð ñó ðð ñ%ó ñ%r   r   c                  ó   — e Zd Z ed¬«      Zy)ÚWindowsCommandSpecF)r   N)r   r   r   r   r;   r   r   r   rf   rf   s   s   „ Ù %Ô(�Jr   rf   c                  ó¸   — e Zd ZdZ ej
                  d«      j                  «       ZeZ	e
d	d„«       Zed„ «       Ze
d„ «       Ze
d„ «       Ze
	 	 d
	 	 	 	 	 dd„«       Zy)ÚScriptWriterz`
    Encapsulates behavior around writing entry point scripts for console and
    gui apps.
    aJ  
        # EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group)r,%(name)r
        import re
        import sys

        # for compatibility with easy_install; see #2198
        __requires__ = %(spec)r

        try:
            from importlib.metadata import distribution
        except ImportError:
            try:
                from importlib_metadata import distribution
            except ImportError:
                from pkg_resources import load_entry_point


        def importlib_load_entry_point(spec, group, name):
            dist_name, _, _ = spec.partition('==')
            matches = (
                entry_point
                for entry_point in distribution(dist_name).entry_points
                if entry_point.group == group and entry_point.name == name
            )
            return next(matches).load()


        globals().setdefault('load_entry_point', importlib_load_entry_point)


        if __name__ == '__main__':
            sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
            sys.exit(load_entry_point(%(spec)r, %(group)r, %(name)r)())
        Nc              #  ó$  K  — t        |d«      s>t        j                  d«       t        j                  j                  |j                  «      }|€| j                  «       }|j                  › d|j                  › �}dD ]Ž  }|› d�}|j                  j                  |¬«      D ]h  }|j                  }| j                  |j                  «       | j                  t        «       z  }| j                  ||j                  ||«      }	|	E d{  –—†  Œj Œ� y7 Œ	­w)z�
        Yield write_script() argument tuples for a distribution's
        console_scripts and gui_scripts entry points.
        Úentry_pointsz%Unsupported distribution encountered.Nz==©ÚconsoleÚguiÚ_scripts)rM   )Úhasattrr   Úemitr   ÚDistributionÚatÚegg_infoÚ
get_headerÚnameÚversionrj   ÚselectÚ_ensure_safe_nameÚtemplateÚlocalsÚ_get_script_args)
r    ÚdistÚheaderÚspecÚtype_rM   Úepru   rD   Úargss
             r   Úget_argszScriptWriter.get_args¤   só   è ø€ ô �t˜^Ô,Ü×"Ñ"Ð#JÔKÜ×(Ñ(×+Ñ+¨D¯M©MÓ:ˆDàˆ>Ø—^‘^Ó%ˆFØ—)‘)�˜B˜tŸ|™|˜nÐ-ˆØ%ò 	 ˆEØ�g˜XÐ&ˆEØ×'Ñ'×.Ñ.°UÐ.Ó;ò  �Ø—w‘w�Ø×%Ñ% b§g¡gÔ.Ø!Ÿl™l¬V«XÑ5�Ø×+Ñ+¨E°2·7±7¸FÀKÓP�Ø—‘ñ ñ	 ð  ús   ‚DDÄDÄ
Dc                óJ   — t        j                  d| «      }|rt        d«      ‚y)z?
        Prevent paths in *_scripts entry point names.
        z[\\/]z+Path separators not allowed in script namesN)ÚreÚsearchÚ
ValueError)ru   Úhas_path_seps     r   rx   zScriptWriter._ensure_safe_name½   s(   € ô
 —y‘y ¨4Ó0ˆÙÜÐJÓKÐKð r   c                ó    — t         j                  dk(  s&t        j                  dk(  r't        j                  dk(  rt
        j                  «       S | S )zD
        Select the best ScriptWriter for this environment.
        Úwin32ÚjavaÚnt)r'   Úplatformr$   ru   Ú_nameÚWindowsScriptWriterr!   r   s    r   r!   zScriptWriter.bestÆ   s:   € ô
 �<‰<˜7Ò"¤r§w¡w°&Ò'8¼R¿X¹XÈÒ=MÜ&×+Ñ+Ó-Ð-àˆJr   c              #  ó   K  — |||z   f–— y ­wr7   r   )r    r   ru   r}   rD   s        r   r{   zScriptWriter._get_script_argsÐ   s   è ø€ ð �V˜kÑ)Ð*Ó*ùs   ‚c                ó–   — | j                   j                  «       j                  |«      }|j                  |«       |j	                  «       S )z;Create a #! line, getting options (if any) from script_text)Úcommand_spec_classr!   r5   rF   rT   )r    rD   r(   Úcmds       r   rt   zScriptWriter.get_headerÕ   s=   € ð ×$Ñ$×)Ñ)Ó+×6Ñ6°zÓBˆØ×Ñ˜KÔ(Ø�}‰}‹Ðr   r7   )rI   N)rD   r/   r(   z(str | CommandSpec | Iterable[str] | Nonera   r/   )r   r   r   rb   ÚtextwrapÚdedentÚlstripry   r   r‘   rc   r‚   rd   rx   r!   r{   rt   r   r   r   rh   rh   w   s½   „ ñð
 ˆx�‰ð!	ó#÷F �fƒhðG ðJ %Ðàò ó ð ð0 ñLó ðLð ñó ðð ñ+ó ð+ð ð Ø?Cðàðð =ðð 
ò	ó ñr   rh   c                  óP   — e Zd ZeZed„ «       Zed„ «       Zed„ «       Ze	d„ «       Z
y)rŽ   c                ón   — t        t        | ¬«      }t        j                  j	                  dd«      }||   S )zC
        Select the best ScriptWriter suitable for Windows
        )r(   ÚnaturalÚSETUPTOOLS_LAUNCHERr(   )ÚdictÚWindowsExecutableLauncherWriterr$   r)   r*   )r    Úwriter_lookupÚlaunchers      r   r!   zWindowsScriptWriter.bestä   s6   € ô
 Ü6Øô
ˆô
 —:‘:—>‘>Ð"7¸ÓFˆØ˜XÑ&Ð&r   c              #  ó†  K  — t        dd¬«      |   }|t        j                  d   j                  «       j	                  d«      vr/ dj
                  d
i t        «       ¤Ž}t        j                  |«       g d¢}|j                  |«       | j                  ||«      }|D �cg c]  }||z   ‘Œ	 }	}||z   ||z   d|	f–— y	c c}w ­w)z For Windows, add a .py extensionú.pyaú.pywrk   ÚPATHEXTú;zK{ext} not listed in PATHEXT; scripts will not be recognized as executables.)rŸ   ú.pyú
-script.pyú.pycú.pyor    ú.exeÚtNr   )rš   r$   r)   Úlowerr:   Úformatrz   r   rp   ÚremoveÚ_adjust_header)
r    r   ru   r}   rD   ÚextÚmsgÚoldÚxÚblockerss
             r   r{   z$WindowsScriptWriter._get_script_argsñ   sÆ   è ø€ ô ˜6 vÔ.¨uÑ5ˆØ”b—j‘j Ñ+×1Ñ1Ó3×9Ñ9¸#Ó>Ñ>ðð-ç‰fñ!ô “xñ!ˆCô ×"Ñ" 3Ô'ÚKˆØ�
‰
�3ŒØ×#Ñ# E¨6Ó2ˆØ&)Ö* �D˜1“HÐ*ˆÐ*Ø�S‰j˜& ;Ñ.°°XÐ=Ó=ùò +ùs   ‚BCÂB<Â+Cc                óÚ   — d}d}|dk(  r||}}t        j                  t        j                  |«      t         j                  «      }|j	                  ||¬«      }| j                  |«      r|S |S )z†
        Make sure 'pythonw' is used for gui and 'python' is used for
        console (regardless of what sys.executable is).
        zpythonw.exez
python.exerm   )r<   Úrepl)r„   ÚcompileÚescapeÚ
IGNORECASEÚsubÚ_use_header)r    r   Úorig_headerÚpatternr³   Ú
pattern_obÚ
new_headers          r   r¬   z"WindowsScriptWriter._adjust_header  sc   € ð  ˆØˆØ�EŠ>Ø  '�TˆGÜ—Z‘Z¤§	¡	¨'Ó 2´B·M±MÓBˆ
Ø—^‘^¨;¸T�^ÓBˆ
Ø Ÿ_™_¨ZÔ8ˆzÐI¸kÐIr   c                ó~   — | dd j                  d«      }t        j                  dk7  xs t        j                  |«      S )zÝ
        Should _adjust_header use the replaced header?

        On non-windows systems, always use. On
        Windows systems, only use the replaced header if it resolves
        to an executable on the system.
        é   rV   ú"r‰   )rN   r'   rŒ   ÚshutilÚwhich)r¼   Úclean_headers     r   r¸   zWindowsScriptWriter._use_header  s8   € ð " ! BÐ'×-Ñ-¨cÓ2ˆÜ�|‰|˜wÑ&ÒD¬&¯,©,°|Ó*DÐDr   N)r   r   r   rf   r‘   rc   r!   r{   r¬   rd   r¸   r   r   r   rŽ   rŽ   á   sZ   „ Ø+Ðàñ
'ó ð
'ð ñ>ó ð>ð ñJó ðJð ñ	Eó ñ	Er   rŽ   c                  ó   — e Zd Zed„ «       Zy)r›   c              #  ó
  K  — |dk(  rd}d}dg}nd}d}g d¢}| j                  ||«      }|D �	cg c]  }	||	z   ‘Œ	 }
}	||z   ||z   d|
f–— |dz   t        |«      d	f–— t        «       s|d
z   }|t        |«      df–— yyc c}	w ­w)zG
        For Windows, add a .py extension and an .exe launcher
        rm   z-script.pywr    Úclir¤   )r£   r¥   r¦   r¨   r§   Úbz.exe.manifestN)r¬   Úget_win_launcherÚis_64bitÚload_launcher_manifest)r    r   ru   r}   rD   Úlauncher_typer­   r¯   Úhdrr°   r±   Úm_names               r   r{   z0WindowsExecutableLauncherWriter._get_script_args  s¼   è ø€ ð
 �EŠ>Ø!ˆMØˆCØ�(‰Cà!ˆMØˆCÚ)ˆCØ× Ñ  ¨Ó/ˆØ&)Ö* �D˜1“HÐ*ˆÐ*Ø�c‰z˜3 Ñ,¨c°8Ð<Ò<à�6‰MÜ˜]Ó+Øð
ò 	
ô
 Œzð ˜OÑ+ˆFØÔ1°$Ó7¸Ð=Ó=ð ùò +ùs   ‚,B®A>ºA	BN)r   r   r   rc   r{   r   r   r   r›   r›     s   „ Øñ>ó ñ>r   r›   c                ó  — | › d�}t        «       r3t        «       dk(  r|j                  dd«      }n%|j                  dd«      }n|j                  dd«      }t        j                  d«      j                  |«      j                  «       S )z«
    Load the Windows launcher (executable) suitable for launching a script.

    `type` should be either 'cli' or 'gui'

    Returns the executable as a byte string.
    r§   z	win-arm64ú.z-arm64.z-64.z-32.Ú
setuptools)rÈ   r   Úreplacer	   ÚfilesÚjoinpathÚ
read_bytes)r3   Úlauncher_fns     r   rÇ   rÇ   <  sw   € ð �F˜$�-€KÜ„zÜ‹>˜[Ò(Ø%×-Ñ-¨c°9Ó=‰Kà%×-Ñ-¨c°6Ó:‰Kà!×)Ñ)¨#¨vÓ6ˆÜ�?‰?˜<Ó(×1Ñ1°+Ó>×IÑIÓKÐKr   c                óŒ   — t        j                  t        «      j                  d«      }|j	                  d¬«      t        «       z  S )Nzlauncher manifest.xmlzutf-8)Úencoding)r	   rÑ   r   rÒ   Ú	read_textÚvars)ru   Úress     r   rÉ   rÉ   O  s4   € Ü
�/‰/œ(Ó
#×
,Ñ
,Ð-DÓ
E€CØ�=‰= 'ˆ=Ó*¬T«VÑ3Ð3r   c                 ó¬   — t        t        j                  t        «      rt        S t	        j
                  t        j                  j                  «       «      S )z_
    Return a regular expression based on first_line_re suitable for matching
    strings.
    )r.   r   rº   r/   r„   r´   Údecoder   r   r   rK   rK   T  s:   € ô
 ”-×'Ñ'¬Ô-ÜÐô �:‰:”m×+Ñ+×2Ñ2Ó4Ó5Ð5r   c                 ó2   — t        j                  d«      dk(  S )NÚPé   )ÚstructÚcalcsizer   r   r   rÈ   rÈ   `  s   € Ü�?‰?˜3Ó 1Ñ$Ð$r   c                óF   — 	 | j                  d«       y# t        $ r Y yw xY w)NÚasciiFT)ÚencodeÚUnicodeError)Úss    r   rB   rB   d  s,   € ðØ	�‰�Ôð øô ò Ùðús   ‚ ”	 Ÿ )&Ú
__future__r   r$   r„   r9   rÀ   rß   r@   r'   r“   Úcollections.abcr   Útypingr   r   Ú
_importlibr   r	   Útyping_extensionsr
   Úwarningsr   Údistutils.command.build_scriptsr   Údistutils.utilr   r   rS   r   rf   rh   rŽ   r›   rÇ   rÉ   rK   rÈ   rB   r   r   r   ú<module>rî      s¥   ðÝ "ã 	Û 	Û Û Û Û Û 
Û Ý $ß +ç +áÝ&å 'å 9Ý 'ô� %õ ô
R%�$ô R%ôj)˜ô )÷gñ gôT8E˜,ô 8Eôv>Ð&9ô >ò@Lò&4ò
	6ò%ór   