Ë
    ¨Õ°jIi  ã                  ó|  — 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Zddlm	Z	 ddl
mZ ddlZddl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 dd
lmZ ddlmZmZ ddlmZ ddl m!Z! ddlm"Z" ddl#Z$ddl%Z$ddl$m&Z& ddl#m'Z' ddl%m(Z) ddl*m+Z+ ejX                  jZ                  › dejX                  j\                  › �Z/ G d„ d«      Z0d„ Z1 G d„ d«      Z2 G d„ de2e«      Z3 G d„ de)«      Z( G d„ d e«      Z4d+d!„Z5d+d"„Z6d+d#„Z7e"jp                  Z8e"jr                  Z9d+d$„Z:d+d%„Z;d,d-d&„Z<d+d'„Z=d.d(„Z> G d)„ d*e!«      Z?y)/zUsetuptools.command.egg_info

Create a distribution's .egg-info directory and contentsé    )ÚannotationsN)ÚCallable)ÚClassVar)ÚCommandÚunicode_utils)Ú	bdist_egg)ÚsdistÚwalk_revctrl)Úedit_config)Úglobé   )Ú_entry_pointsÚ_normalization)Úmetadata)ÚSetuptoolsDeprecationWarningé   )Ú_requirestxt)Úlog)ÚDistutilsInternalError)ÚFileList)Úconvert_pathú.c                  ó$   — e Zd ZdZdd„Zd„ Zd„ Zy)Ú_NormalizedMatchera�  
    Wrap a compiled pattern so that matching is insensitive to Unicode
    normalization form.

    File names walked from disk (NFD on macOS APFS/HFS+) and patterns from
    ``MANIFEST.in`` (typically NFC) can denote the same file while differing
    byte-for-byte. Normalizing both sides before matching keeps an exclusion
    (or inclusion) from silently failing. See GHSA-h35f-9h28-mq5c.
    c                ó   — || _         y ©N)Ú_pattern)ÚselfÚpatterns     úQ/var/www/mission/venv/lib/python3.12/site-packages/setuptools/command/egg_info.pyÚ__init__z_NormalizedMatcher.__init__3   s	   € Øˆ�ó    c                ó^   — | j                   j                  t        j                  |«      «      S r   )r   Úmatchr   Ú	normalize©r   Úpaths     r    r$   z_NormalizedMatcher.match6   s"   € Ø�}‰}×"Ñ"¤=×#:Ñ#:¸4Ó#@ÓAÐAr"   c                ó^   — | j                   j                  t        j                  |«      «      S r   )r   Úsearchr   r%   r&   s     r    r)   z_NormalizedMatcher.search9   s"   € Ø�}‰}×#Ñ#¤M×$;Ñ$;¸DÓ$AÓBÐBr"   N)r   z
re.PatternÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   r$   r)   © r"   r    r   r   (   s   „ ñó òBóCr"   r   c                óè  — d}t        j                  | «      }  | j                  t        j                  j
                  «      }t        j                  t        j
                  «      }d|› d�}t        |«      D �]6  \  }}|t        |«      dz
  k(  }|dk(  r|r|dz  }n|d|› d|› d	�z  }Œ2d
}t        |«      }	||	k  rê||   }
|
dk(  r	||dz   z  }nÌ|
dk(  r||z  }nÁ|
dk(  r¤|dz   }||	k  r||   dk(  r|dz   }||	k  r||   dk(  r|dz   }||	k  r||   dk7  r|dz   }||	k  r	||   dk7  rŒ||	k\  r|t        j                  |
«      z  }nU||dz   | }d}|d
   dk(  rd}|dd }|t        j                  |«      z  }|d|› d�z  }|}n|t        j                  |
«      z  }|dz  }||	k  rŒê|r�Œ2||z  }�Œ9 |dz  }t        t        j                  |t        j                  t        j                  z  ¬«      «      S )zö
    Translate a file path glob like '*.txt' in to a regular expression.
    This differs from fnmatch.translate which allows wildcards to match
    directory separators. It also knows about '**/' which matches any number of
    directories.
    Ú z[^ú]r   ú**z.*z(?:ú+z)*r   Ú*ú?ú[ú!ú^Nz\Z)Úflags)r   r%   ÚsplitÚosr'   ÚsepÚreÚescapeÚ	enumerateÚlenr   ÚcompileÚ	MULTILINEÚDOTALL)r   ÚpatÚchunksr>   Ú
valid_charÚcÚchunkÚ
last_chunkÚiÚ	chunk_lenÚcharÚinner_iÚinnerÚ
char_classs                 r    Útranslate_patternrR   =   sV  € ð €Cô
 ×"Ñ" 4Ó(€Dð ˆT�Z‰ZœŸ™Ÿ™Ó$€Fä
�)‰)”B—F‘FÓ
€CØ�c�U˜!�€Jä˜fÓ%ó >‰ˆˆ5Øœ#˜f›+¨™/Ñ)ˆ
ð �DŠ=Ùà�t‘‘ð ˜˜Z˜L¨¨#¨¨bÐ1Ñ1�Øð ˆÜ˜“Jˆ	Ø�)ŠmØ˜‘8ˆDØ�sŠ{à�z CÑ'Ñ'‘Ø˜’à�zÑ!‘Ø˜’à˜a™%�à˜YÒ&¨5°©>¸SÒ+@Ø%¨™k�GØ˜YÒ&¨5°©>¸SÒ+@Ø%¨™k�Gð  	Ò)¨e°G©nÀÒ.CØ%¨™k�Gð  	Ò)¨e°G©nÀÓ.Cð ˜iÒ'ð œ2Ÿ9™9 T›?Ñ*‘Cð " ! a¡%¨'Ð2�EØ!#�Jð ˜Q‘x 3’Ø%(˜
Ø % a b 	˜à¤"§)¡)¨EÓ"2Ñ2�JØ˜Q˜z˜l¨!Ð,Ñ,�Cð  ‘Aà”r—y‘y “Ñ&�Ø�‰FˆAðU �)‹móZ Ø�3‰JŠCð}>ð@ ˆ5�L€CÜœbŸj™j¨´B·L±LÄ2Ç9Á9Ñ4LÔMÓNÐNr"   c                  óX   — e Zd ZdZdZed„ «       Zd„ Zd„ Zdd„Z	d	d„Z
d	d„Z ee«      Zy)
Ú
InfoCommonNc                ó\   — t        j                  | j                  j                  «       «      S r   )r   Ú	safe_nameÚdistributionÚget_name©r   s    r    ÚnamezInfoCommon.name™   s"   € ä×'Ñ'¨×(9Ñ(9×(BÑ(BÓ(DÓEÐEr"   c                ó~   — | j                  | j                  j                  «       «      }t        j                  |«      S r   )Ú
_maybe_tagrW   Úget_versionr   Úsafe_version)r   Útaggeds     r    Útagged_versionzInfoCommon.tagged_version�   s0   € Ø—‘ ×!2Ñ!2×!>Ñ!>Ó!@ÓAˆÜ×*Ñ*¨6Ó2Ð2r"   c                ó^   — | j                   r| j                  |«      r|S || j                   z   S )z�
        egg_info may be called more than once for a distribution,
        in which case the version string already contains all tags.
        )ÚvtagsÚ_already_tagged©r   Úversions     r    r\   zInfoCommon._maybe_tag¡   s5   € ð �zŠz˜d×2Ñ2°7Ô;ð ð	
ð ˜4Ÿ:™:Ñ%ð	
r"   c                óX   — |j                  | j                  | j                  «       f«      S r   )Úendswithrb   Ú
_safe_tagsrd   s     r    rc   zInfoCommon._already_tagged¬   s%   € ð ×Ñ §¡¨T¯_©_Ó->Ð ?Ó@Ð@r"   c                óò   — 	 t        j                  d| j                  › �«      dd  S # t        j                  j
                  $ r2 t        j                  | j                  j                  dd«      «      cY S w xY w)NÚ0r   ú r   )r   r^   rb   Ú	packagingre   ÚInvalidVersionrV   ÚreplacerY   s    r    rh   zInfoCommon._safe_tags±   sj   € ð	JÜ!×.Ñ.°°4·:±:°,Ð/?Ó@ÀÀÐDÐDøÜ× Ñ ×/Ñ/ò 	JÜ!×+Ñ+¨D¯J©J×,>Ñ,>¸sÀCÓ,HÓIÒIð	Jús   ‚$' §AA6Á5A6c                óˆ   — d}| j                   r|| j                   z  }| j                  r|t        j                  d«      z  }|S )Nr2   z%Y%m%d)Ú	tag_buildÚtag_dateÚtimeÚstrftimerd   s     r    ÚtagszInfoCommon.tags¹   s;   € ØˆØ�>Š>Ø�t—~‘~Ñ%ˆGØ�=Š=Ø”t—}‘} XÓ.Ñ.ˆGØˆr"   )re   Ústrr*   Úbool)r*   ru   )r,   r-   r.   rp   rq   ÚpropertyrZ   r`   r\   rc   rh   rt   rb   r0   r"   r    rT   rT   •   sF   „ Ø€IØ€HàñFó ðFò3ò	
óAó
Jóñ �T‹N�Er"   rT   c                  óÊ   — e Zd ZU dZg d¢Zded<   dgZded<   ddiZd	ed
<   d„ Ze	dd„«       Z
e
j                  dd„«       Z
dd„Zdd„Zedfd„Zddd„Zdd„Zdd„Zdd„Zdd„Zy)Úegg_infoz+create a distribution's .egg-info directory))z	egg-base=ÚezLdirectory containing .egg-info directories [default: top of the source tree])útag-dateÚdz0Add date stamp (e.g. 20050528) to version number)z
tag-build=Úbz-Specify explicit tag to add to version number)úno-dateÚDz"Don't include date stamp [default]zHClassVar[list[tuple[str, str, str]] | list[tuple[str, str | None, str]]]Úuser_optionsr{   zClassVar[list[str]]Úboolean_optionsr~   zClassVar[dict[str, str]]Únegative_optc                óJ   — d | _         d | _        d | _        d | _        d| _        y )NF)Úegg_baseÚegg_namery   Úegg_versionÚignore_egg_info_in_manifestrY   s    r    Úinitialize_optionszegg_info.initialize_optionsÜ   s'   € ØˆŒØˆŒØˆŒØˆÔØ+0ˆÕ(r"   c                 ó   — y r   r0   rY   s    r    Útag_svn_revisionzegg_info.tag_svn_revisionæ   ó   € àr"   c                 ó   — y r   r0   )r   Úvalues     r    rŠ   zegg_info.tag_svn_revisionê   r‹   r"   c                óf   — t        | j                  «       d¬«      }t        |t        |¬«      «       y)z³
        Materialize the value of date into the
        build tag. Install build keys in a deterministic order
        to avoid arbitrary reordering on subsequent builds.
        r   )rp   rq   )ry   N)Údictrt   r   )r   Úfilenamery   s      r    Úsave_version_infozegg_info.save_version_infoð   s%   € ô  $§)¡)£+¸Ô:ˆÜ�Hœd¨HÔ5Õ6r"   c                óú  — | j                   | _        | j                  «       | _        t        j
                  j                  | j                  «      }	 t        |t        j
                  j                  «      }|rdnd}t        j                  j                  || j                  | j                  fz  «       | j                  €?| j                  j                   }|xs i j#                  dt$        j&                  «      | _        | j)                  d«       t+        j,                  | j                  «      dz   | _        | j                  t$        j&                  k7  r9t$        j0                  j3                  | j                  | j.                  «      | _        | j                  | j                  j4                  _        y # t        $ r?}t        j                  j                  d| j                  › d| j                  › �«      |‚d }~ww xY w)Nz%s==%sz%s===%sz-Invalid distribution name or version syntax: ú-r2   r„   ú	.egg-info)rZ   r…   r`   r†   rl   re   ÚVersionÚ
isinstanceÚrequirementsÚRequirementÚ
ValueErrorÚ	distutilsÚerrorsÚDistutilsOptionErrorr„   rW   Úpackage_dirÚgetr=   ÚcurdirÚensure_dirnamer   Úfilename_componentry   r'   Újoinr   )r   Úparsed_versionÚ
is_versionÚspecrz   Údirss         r    Úfinalize_optionszegg_info.finalize_optionsû   s€  € ð
 Ÿ	™	ˆŒØ×.Ñ.Ó0ˆÔÜ"×*Ñ*×2Ñ2°4×3CÑ3CÓDˆð	Ü# N´I×4EÑ4E×4MÑ4MÓNˆJÙ)‘8¨yˆDÜ×"Ñ"×.Ñ.¨t°t·}±}Àd×FVÑFVÐ6WÑ/WÔXð �=‰=Ð Ø×$Ñ$×0Ñ0ˆDØ!šZ R×,Ñ,¨R´·±Ó;ˆDŒMà×Ñ˜JÔ'Ü&×9Ñ9¸$¿-¹-ÓHÈ;ÑVˆŒØ�=‰=œBŸI™IÒ%ÜŸG™GŸL™L¨¯©¸¿¹ÓFˆDŒMð
 .2×-=Ñ-=ˆ×Ñ×"Ñ"Õ*øô# ò 	Ü×"Ñ"×7Ñ7Ø?ÀÇÁ¸ÈaÐPT×P`ÑP`ÐOaÐbóàðûð	ús   ÁA"F2 Æ2	G:Æ;:G5Ç5G:Nc                óF   — t        | j                  | j                  ||«      S )ú0Compute filename of the output egg. Private API.)Ú_egg_basenamer…   r†   )r   Ú
py_versionÚplatforms      r    Ú_get_egg_basenamezegg_info._get_egg_basename  s   € ä˜TŸ]™]¨D×,<Ñ,<¸jÈ(ÓSÐSr"   c                óÊ   — |r| j                  |||«       yt        j                  j                  |«      r.|€|st	        j
                  d||«       y| j                  |«       yy)a¹  Write `data` to `filename` or delete if empty

        If `data` is non-empty, this routine is the same as ``write_file()``.
        If `data` is empty but not ``None``, this is the same as calling
        ``delete_file(filename)`.  If `data` is ``None``, then this is a no-op
        unless `filename` exists, in which case a warning is issued about the
        orphaned file (if `force` is false), or deleted (if `force` is true).
        Nz$%s not set in setup(), but %s exists)Ú
write_filer=   r'   Úexistsr   ÚwarnÚdelete_file)r   Úwhatr�   ÚdataÚforces        r    Úwrite_or_delete_filezegg_info.write_or_delete_file  sU   € ñ Ø�O‰O˜D (¨DÕ1Ü�W‰W�^‰^˜HÔ%Øˆ|¡EÜ—‘Ð?ÀÀxÔPØà× Ñ  Õ*ð &r"   c                ó®   — t        j                  d||«       |j                  d«      }t        |d«      }|j	                  |«       |j                  «        y)zªWrite `data` to `filename` (if not a dry run) after announcing it

        `what` is used in a log message to identify what is being written
        to the file.
        zwriting %s to %súutf-8ÚwbN)r   ÚinfoÚencodeÚopenÚwriteÚclose)r   r³   r�   r´   Úfs        r    r¯   zegg_info.write_file1  sC   € ô 	�‰Ð# T¨8Ô4Ø�{‰{˜7Ó#ˆÜ�˜4Ó ˆØ	�‰�ŒØ	�‰�	r"   c                óZ   — t        j                  d|«       t        j                  |«       y)z8Delete `filename` (if not a dry run) after announcing itzdeleting %sN)r   rº   r=   Úunlink)r   r�   s     r    r²   zegg_info.delete_file=  s   € ä�‰� Ô)Ü
�	‰	�(Õr"   c           	     óÊ  — t        t        j                  d¬«      «      }| j                  | j                  «       	 t        j                  | j                  d «       |D ]X  }|j                  «       } || |j                  t
        j                  j                  | j                  |j                  «      «       ŒZ t
        j                  j                  | j                  d«      }t
        j                  j                  |«      r| j!                  |«       | j#                  «        y # t        $ r5}d| j                  › d�}t        j                  j                  |«      |‚d }~ww xY w)Nzegg_info.writers)Úgroupz'Cannot update time stamp of directory 'ú'znative_libs.txt)Úlistr   Úentry_pointsÚmkpathry   r=   ÚutimeÚOSErrorrš   r›   ÚDistutilsFileErrorÚloadrZ   r'   r¢   r°   r²   Úfind_sources)r   Úwritersrz   ÚmsgÚepÚwriterÚnls          r    Úrunzegg_info.runB  s  € ô ”x×,Ñ,Ð3EÔFÓGˆà�‰�D—M‘MÔ"ð	BÜ�H‰H�T—]‘] DÔ)ð ò 	HˆBØ—W‘W“YˆFÙ�4˜Ÿ™¤"§'¡'§,¡,¨t¯}©}¸b¿g¹gÓ"FÕGð	Hô
 �W‰W�\‰\˜$Ÿ-™-Ð):Ó;ˆÜ�7‰7�>‰>˜"ÔØ×Ñ˜RÔ à×ÑÕøô ò 	BØ;¸D¿M¹M¸?È!ÐLˆCÜ×"Ñ"×5Ñ5°cÓ:ÀÐAûð	Bús   ¼ D$ Ä$	E"Ä-0EÅE"c                óô   — t         j                  j                  | j                  d«      }t	        | j
                  «      }| j                  |_        ||_        |j                  «        |j                  | _
        y)z"Generate SOURCES.txt manifest filezSOURCES.txtN)r=   r'   r¢   ry   Úmanifest_makerrW   r‡   Úignore_egg_info_dirÚmanifestrÒ   Úfilelist)r   Úmanifest_filenameÚmms      r    rÌ   zegg_info.find_sourcesX  sT   € äŸG™GŸL™L¨¯©¸ÓFÐÜ˜D×-Ñ-Ó.ˆØ!%×!AÑ!AˆÔØ'ˆŒØ
�‰ŒØŸ™ˆ�r"   )r*   z
int | None©r*   r+   ©F©rµ   rv   r*   r+   )r,   r-   r.   Údescriptionr€   Ú__annotations__r�   r‚   rˆ   rw   rŠ   Úsetterr‘   r§   ÚPY_MAJORr­   r¶   r¯   r²   rÒ   rÌ   r0   r"   r    ry   ry   Ä   s¢   … Ø?€Kò	ð ð ó ð  -7¨<€OÐ(Ó7à�:ð.€LÐ*ó ò1ð òó ðð ×Ñòó ðó
	7ó>ð@ ,4¸dó Tô+ó$
óó
ô,$r"   ry   c                  ó„   ‡ — e Zd Z	 d	 	 	 dˆ fd„Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zdd„Zdd„Zd„ Zd„ Zˆ xZS )r   c                ó4   •— t         ‰| �  ||«       || _        y r   )Úsuperr!   rÕ   )r   r±   Údebug_printrÕ   Ú	__class__s       €r    r!   zFileList.__init__e  s   ø€ ô 	‰Ñ˜˜{Ô+Ø#6ˆÕ r"   c           	     óˆ  — | j                  |«      \  }}}}| j                  | j                  | j                  | j                  t        j                  | j                  |«      t        j                  | j                  |«      | j                  | j                  dœ}dddddddd	dœ}	 ||   }|j                  d«      }
|dv r|g}|
r|fnd}||   }| j                  dj                  |g|
r|gng z   |z   «      «       |D ]"  } ||«      rŒt!        j"                  ||g|¢­Ž  Œ$ y # t        $ r d
|›d|›�}	t        |	«      d ‚w xY w)N)ÚincludeÚexcludezglobal-includezglobal-excludezrecursive-includezrecursive-excludeÚgraftÚprunez%warning: no files found matching '%s'z9warning: no previously-included files found matching '%s'z>warning: no files found matching '%s' anywhere in distributionzRwarning: no previously-included files matching '%s' found anywhere in distributionz:warning: no files found matching '%s' under directory '%s'zNwarning: no previously-included files matching '%s' found under directory '%s'z+warning: no directories found matching '%s'z6no previously-included directories found matching '%s'z$Invalid MANIFEST.in: unknown action z in z
recursive->   ré   rê   r0   rk   )Ú_parse_template_linerç   rè   Úglobal_includeÚglobal_excludeÚ	functoolsÚpartialÚrecursive_includeÚrecursive_excluderé   rê   ÚKeyErrorr   Ú
startswithrä   r¢   r   r±   )r   ÚlineÚactionÚpatternsÚdirÚdir_patternÚ
action_mapÚlog_mapÚprocess_actionrÎ   Úaction_is_recursiveÚextra_log_argsÚlog_tmplr   s                 r    Úprocess_template_linezFileList.process_template_linek  s‰  € ð 04×/HÑ/HÈÓ/NÑ,ˆ�˜3 ð —|‘|Ø—|‘|Ø"×1Ñ1Ø"×1Ñ1Ü!*×!2Ñ!2Ø×&Ñ&Øó"ô "+×!2Ñ!2Ø×&Ñ&Øó"ð —Z‘ZØ—Z‘Zñ+
ˆ
ð" ?ØSàPð6ð Mð2ð CØMñ%
ˆð*	8Ø'¨Ñ/ˆNð %×/Ñ/°Ó=ÐØÐ'Ñ'Ø#�}ˆHÙ#6˜#™¸BˆØ˜6‘?ˆà×ÑØ�H‰HØ�Ñ%8˜S™E¸bÑAÀHÑLóô	
ð
  ò 	=ˆGÙ! 'Õ*Ü—‘˜ 7Ð<¨^Ô<ñ	=øô' ò 	8Ø8¸¸
À$ÀtÀhÐOˆCÜ(¨Ó-°4Ð7ð	8ús   Â&D# Ä#Ec                óæ   — d}t        t        | j                  «      dz
  dd«      D ]H  } || j                  |   «      sŒ| j                  d| j                  |   z   «       | j                  |= d}ŒJ |S )z†
        Remove all files from the file list that match the predicate.
        Return True if any matching files were removed
        Fr   éÿÿÿÿz
 removing T)ÚrangerB   Úfilesrä   )r   Ú	predicateÚfoundrL   s       r    Ú_remove_fileszFileList._remove_files±  sp   € ð
 ˆÜ”s˜4Ÿ:™:“¨Ñ*¨B°Ó3ò 	ˆAÙ˜Ÿ™ A™Õ'Ø× Ñ  °·
±
¸1±Ñ!=Ô>Ø—J‘J˜q�MØ‘ð		ð
 ˆr"   c                ó´   — t        |«      D �cg c]$  }t        j                  j                  |«      rŒ#|‘Œ& }}| j	                  |«       t        |«      S c c}w )z#Include files that match 'pattern'.)r   r=   r'   ÚisdirÚextendrv   )r   r   r¿   r  s       r    rç   zFileList.include¾  sD   € ä  ›MÖB�q´·±·±¸qÕ1A’ÐBˆÐBØ�‰�EÔÜ�E‹{Ðùò Cs
   Ž$A³Ac                óN   — t        |«      }| j                  |j                  «      S )z#Exclude files that match 'pattern'.)rR   r  r$   ©r   r   r$   s      r    rè   zFileList.excludeÄ  s!   € ä! 'Ó*ˆØ×!Ñ! %§+¡+Ó.Ð.r"   c                óú   — t         j                  j                  |d|«      }t        |d¬«      D �cg c]$  }t         j                  j	                  |«      rŒ#|‘Œ& }}| j                  |«       t        |«      S c c}w )zN
        Include all files anywhere in 'dir/' that match the pattern.
        r4   T)Ú	recursive)r=   r'   r¢   r   r  r	  rv   )r   r÷   r   Úfull_patternr¿   r  s         r    rð   zFileList.recursive_includeÉ  s`   € ô —w‘w—|‘| C¨¨wÓ7ˆÜ  ¸Ô>ÖW�qÄbÇgÁgÇmÁmÐTUÕFV’ÐWˆÐWØ�‰�EÔÜ�E‹{Ðùò Xs   ±$A8ÁA8c                óŒ   — t        t        j                  j                  |d|«      «      }| j	                  |j
                  «      S )zM
        Exclude any file anywhere in 'dir/' that match the pattern.
        r4   ©rR   r=   r'   r¢   r  r$   )r   r÷   r   r$   s       r    rñ   zFileList.recursive_excludeÒ  s4   € ô "¤"§'¡'§,¡,¨s°D¸'Ó"BÓCˆØ×!Ñ! %§+¡+Ó.Ð.r"   c                óÂ   — t        |«      D ��cg c](  }t        j                  j                  |«      D ]  }|‘Œ Œ* }}}| j	                  |«       t        |«      S c c}}w )zInclude all files from 'dir/'.)r   rš   r×   Úfindallr	  rv   )r   r÷   Ú	match_dirÚitemr  s        r    ré   zFileList.graftÙ  sh   € ô " #›Y÷
àÜ!×*Ñ*×2Ñ2°9Ó=ò
ð ò ð
Øð
ˆñ 
ð
 	�‰�EÔÜ�E‹{Ðùó
s   �-Ac                óŠ   — t        t        j                  j                  |d«      «      }| j	                  |j
                  «      S )zFilter out files from 'dir/'.r4   r  )r   r÷   r$   s      r    rê   zFileList.pruneã  s0   € ä!¤"§'¡'§,¡,¨s°DÓ"9Ó:ˆØ×!Ñ! %§+¡+Ó.Ð.r"   c                ó$  — | j                   €| j                  «        t        t        j                  j                  d|«      «      }| j                   D �cg c]  }|j                  |«      sŒ|‘Œ }}| j                  |«       t        |«      S c c}w )z“
        Include all files anywhere in the current directory that match the
        pattern. This is very inefficient on large file trees.
        r4   )	Úallfilesr  rR   r=   r'   r¢   r$   r	  rv   )r   r   r$   r¿   r  s        r    rì   zFileList.global_includeè  sl   € ð
 �=‰=Ð Ø�L‰LŒNÜ!¤"§'¡'§,¡,¨t°WÓ"=Ó>ˆØ ŸM™MÖ<�q¨U¯[©[¸­^’Ð<ˆÐ<Ø�‰�EÔÜ�E‹{Ðùò =s   ÁBÁ+Bc                óŠ   — t        t        j                  j                  d|«      «      }| j	                  |j
                  «      S )zD
        Exclude all files anywhere that match the pattern.
        r4   r  r  s      r    rí   zFileList.global_excludeô  s2   € ô "¤"§'¡'§,¡,¨t°WÓ"=Ó>ˆØ×!Ñ! %§+¡+Ó.Ð.r"   c                ó–   — |j                  d«      }t        |«      }| j                  |«      r| j                  j	                  |«       y y )Nú)Úremovesuffixr   Ú
_safe_pathr  Úappend)r   r  r'   s      r    r  zFileList.appendû  s?   € Ø× Ñ  Ó&ˆÜ˜DÓ!ˆà�?‰?˜4Ô Ø�J‰J×Ñ˜dÕ#ð !r"   c                ób   — | j                   j                  t        | j                  |«      «       y r   )r  r	  Úfilterr  )r   Úpathss     r    r	  zFileList.extend  s   € Ø�
‰
×Ñœ& §¡°%Ó8Õ9r"   c                ó`   — t        t        | j                  | j                  «      «      | _        y)zÜ
        Replace self.files with only safe paths

        Because some owners of FileList manipulate the underlying
        ``files`` attribute directly, this method must be called to
        repair those paths.
        N)rÅ   r  r  r  rY   s    r    Ú_repairzFileList._repair  s   € ô œ& §¡°$·*±*Ó=Ó>ˆ�
r"   c                óì  — d}t        j                  |«      }|€t        j                  d|› d�«       yt        j                  |d«      }|€t        j                  ||d«       y	 d|v xs d|v }| j
                  r|ryt        j                  j                  |«      st        j                  j                  |«      ryy # t        $ r, t        j                  ||t        j                  «       «       Y y w xY w)	Nz!'%s' not %s encodable -- skippingrÄ   z$' in unexpected encoding -- skippingFr¸   r”   s	   .egg-infoT)r   Úfilesys_decoder   r±   Ú
try_encoderÕ   r=   r'   r°   ÚUnicodeEncodeErrorÚsysÚgetfilesystemencoding)r   r'   Úenc_warnÚu_pathÚ	utf8_pathÚis_egg_infos         r    r  zFileList._safe_path  sà   € Ø6ˆô ×-Ñ-¨dÓ3ˆØˆ>Ü�H‰H�q˜˜ÐBÐCÔDØô "×,Ñ,¨V°WÓ=ˆ	ØÐÜ�H‰H�X˜t WÔ-Øð
	Bà%¨Ð/ÒL°<À9Ð3LˆKØ×'Ò'©KØä�w‰w�~‰~˜fÔ%¬¯©¯©¸	Ô)BØð *Cøô "ò 	BÜ�H‰H�X˜t¤S×%>Ñ%>Ó%@ÖAð	Bús   Á%B> Á>>B> Â>2C3Ã2C3)NNF)rÕ   rv   r*   r+   rÚ   )r,   r-   r.   r!   rÿ   r  rç   rè   rð   rñ   ré   rê   rì   rí   r  r	  r"  r  Ú__classcell__)rå   s   @r    r   r   b  sh   ø„ ð HMð7Ø@Dð7à	õ7óD=òLòò/ò
ò/òò/ò

ò/ó$ó:ò?öBr"   r   c                  ój   — e Zd ZdZdd„Zdd„Zdd„Zd„ Zdd„Zdd„Z	e
d„ «       Zdd	„Zdd
„Zd„ Zd„ Zy)rÔ   zMANIFEST.inc                óJ   — d| _         d| _        d| _        d| _        d| _        y )NTF)Úuse_defaultsrê   Úmanifest_onlyÚforce_manifestrÕ   rY   s    r    rˆ   z!manifest_maker.initialize_options.  s)   € Ø ˆÔØˆŒ
Ø!ˆÔØ"ˆÔØ#(ˆÕ r"   c                 ó   — y r   r0   rY   s    r    r§   zmanifest_maker.finalize_options5  s   € Ør"   c                ó&  — t        | j                  ¬«      | _        t        j                  j                  | j                  «      s| j                  «        | j                  «        t        j                  j                  | j                  «      r| j                  «        | j                  «        | j                  «        | j                  «        | j                  j                  «        | j                  j                  «        | j                  «        y )N)rÕ   )r   rÕ   r×   r=   r'   r°   rÖ   Úwrite_manifestÚadd_defaultsÚtemplateÚread_templateÚadd_license_filesÚ_add_referenced_filesÚprune_file_listÚsortÚremove_duplicatesrY   s    r    rÒ   zmanifest_maker.run8  s°   € Ü °T×5MÑ5MÔNˆŒÜ�w‰w�~‰~˜dŸm™mÔ,Ø×ÑÔ!Ø×ÑÔÜ�7‰7�>‰>˜$Ÿ-™-Ô(Ø×ÑÔ Ø×ÑÔ Ø×"Ñ"Ô$Ø×ÑÔØ�‰×ÑÔØ�‰×'Ñ'Ô)Ø×ÑÕr"   c                ól   — t        j                  |«      }|j                  t        j                  d«      S )Nú/)r   r$  rn   r=   r>   r&   s     r    Ú_manifest_normalizez"manifest_maker._manifest_normalizeF  s'   € Ü×+Ñ+¨DÓ1ˆØ�|‰|œBŸF™F CÓ(Ð(r"   c                ó  — | j                   j                  «        | j                   j                  D �cg c]  }| j                  |«      ‘Œ }}d| j                  › d�}| j                  t        | j                  |f|«       yc c}w )zo
        Write the file list in 'self.filelist' to the manifest file
        named by 'self.manifest'.
        zwriting manifest file 'rÄ   N)r×   r"  r  r@  rÖ   Úexecuter¯   )r   r¿   r  rÎ   s       r    r5  zmanifest_maker.write_manifestJ  so   € ð
 	�‰×ÑÔð 7;·m±m×6IÑ6IÖJ°�×)Ñ)¨!Õ,ÐJˆÐJØ'¨¯© °aÐ8ˆØ�‰”Z $§-¡-°Ð!7¸Õ=ùò Ks   ³Bc                óT   — | j                  |«      st        j                  | |«       y y r   )Ú_should_suppress_warningr	   r±   )r   rÎ   s     r    r±   zmanifest_maker.warnV  s#   € Ø×,Ñ,¨SÔ1Ü�J‰J�t˜SÕ!ð 2r"   c                ó.   — t        j                  d| «      S )z;
        suppress missing-file warnings from sdist
        zstandard file .*not found)r?   r$   )rÎ   s    r    rD  z'manifest_maker._should_suppress_warningZ  s   € ô
 �x‰xÐ4°cÓ:Ð:r"   c                óv  — t        j                  | «       | j                  j                  | j                  «       | j                  j                  | j
                  «       t        t        «       «      }|r| j                  j                  |«       n9t        j                  j                  | j
                  «      r| j                  «        t        j                  j                  d«      r| j                  j                  d«       | j                  d«      }| j                  j                  |j                  «       y )Nzsetup.pyry   )r	   r6  r×   r  r7  rÖ   rÅ   r
   r	  r=   r'   r°   Úread_manifestÚget_finalized_commandré   ry   )r   ÚrcfilesÚei_cmds      r    r6  zmanifest_maker.add_defaultsa  sÇ   € Ü×Ñ˜4Ô Ø�‰×Ñ˜TŸ]™]Ô+Ø�‰×Ñ˜TŸ]™]Ô+Ü”|“~Ó&ˆÙØ�M‰M× Ñ  Õ)Ü�W‰W�^‰^˜DŸM™MÔ*Ø×ÑÔ ä�7‰7�>‰>˜*Ô%ð �M‰M× Ñ  Ô,à×+Ñ+¨JÓ7ˆØ�‰×Ñ˜FŸO™OÕ,r"   c                ó¼   — | j                   j                  j                  xs g }|D ]  }t        j                  d|«       Œ | j
                  j                  |«       y )Nzadding license file '%s')rW   r   Úlicense_filesr   rº   r×   r	  )r   rL  Úlfs      r    r9  z manifest_maker.add_license_filess  sN   € Ø×)Ñ)×2Ñ2×@Ñ@ÒFÀBˆØò 	5ˆBÜ�H‰HÐ/°Õ4ð	5à�‰×Ñ˜]Õ+r"   c                ó¢   — t        | j                  dg «      }|D ]  }t        j                  d|«       Œ | j                  j                  |«       y)zGAdd files referenced by the config (e.g. `file:` directive) to filelistÚ_referenced_filesz%adding file referenced by config '%s'N)ÚgetattrrW   r   Údebugr×   r	  )r   Ú
referencedÚrfs      r    r:  z$manifest_maker._add_referenced_filesy  sI   € ä˜T×.Ñ.Ð0CÀRÓHˆ
àò 	CˆBÜ�I‰IÐ=¸rÕBð	Cà�‰×Ñ˜ZÕ(r"   c                óŠ   — t        |d«      r|j                  «       S t        j                  ddd¬«       |j	                  «       S )a0  
        The parent class implementation of this method
        (``sdist``) will try to include data files, which
        might cause recursion problems when
        ``include_package_data=True``.

        Therefore, avoid triggering any attempt of
        analyzing/building the manifest again.
        Úget_data_files_without_manifestz@`build_py` command does not inherit from setuptools' `build_py`.z±
            Custom 'build_py' does not implement 'get_data_files_without_manifest'.
            Please extend command classes from setuptools instead of distutils.
            z!https://peps.python.org/pep-0632/)Úsee_url)ÚhasattrrU  r   ÚemitÚget_data_files)r   Úbuild_pys     r    Ú_safe_data_fileszmanifest_maker._safe_data_files�  sJ   € ô �8Ð>Ô?Ø×;Ñ;Ó=Ð=ä$×)Ñ)ØNðð 8õ	
ð ×&Ñ&Ó(Ð(r"   NrÚ   )r,   r-   r.   r7  rˆ   r§   rÒ   r@  r5  r±   ÚstaticmethodrD  r6  r9  r:  r[  r0   r"   r    rÔ   rÔ   +  sM   „ Ø€Hó)óóò)ó
>ó"ð ñ;ó ð;ó-ó$,ò)ó)r"   rÔ   c                ó¬   — dj                  |«      }|j                  d«      }t        | d«      5 }|j                  |«       ddd«       y# 1 sw Y   yxY w)z{Create a file with the specified name and write 'contents' (a
    sequence of strings without line terminators) to it.
    ú
r¸   r¹   N)r¢   r»   r¼   r½   )r�   Úcontentsr¿   s      r    r¯   r¯   š  sO   € ð �y‰y˜Ó"€Hð �‰˜wÓ'€Hä	ˆh˜Ó	ð  Ø	�‰�Ô÷÷ ñ ús   ¯A
Á
Ac                óÂ  — t        j                  d|«       | j                  j                  }| j                  |j
                  c|_        }| j                  |j                  c|_        }	  |j                  | j                  «       ||c|_        |_        t        | j                  dd «      }t        j                  | j                  |«       y # ||c|_        |_        w xY w)Nz
writing %sÚzip_safe)r   rº   rW   r   r†   re   r…   rZ   Úwrite_pkg_infory   rP  r   Úwrite_safety_flag)ÚcmdÚbasenamer�   r   ÚoldverÚoldnameÚsafes          r    rb  rb  §  s·   € Ü‡H�Hˆ\˜8Ô$Ø×Ñ×(Ñ(€HØ"Ÿ™°×0@Ñ0@Ð€HÔ�fØ Ÿ\™\¨8¯=©=Ð€H„M�7ð:Øˆ×Ñ §¡Ô-à*1°6Ð'ˆŒ�xÔ'ä�3×#Ñ# Z°Ó6€Dä×Ñ §¡¨dÕ3øð	 +2°6Ð'ˆŒ�xÕ'ús   Á*C ÃCc                 ó   — y)aj  
    Unused: left to avoid errors when updating (from source) from <= 67.8.
    Old installations have a .dist-info directory with the entry-point
    ``depends.txt = setuptools.command.egg_info:warn_depends_obsolete``.
    This may trigger errors when running the first egg_info in build_meta.
    TODO: Remove this function in a version sufficiently > 68.
    Nr0   ©rd  re  r�   s      r    Úwarn_depends_obsoleterk  ·  s   � r"   c           	     ó  — t         j                  | j                  j                  «       D �cg c]  }|j	                  dd«      d   ‘Œ c}«      }| j                  d|dj                  t        |«      «      dz   «       y c c}w )Nr   r   r   ztop-level namesr^  )r�   ÚfromkeysrW   Úiter_distribution_namesr<   r¯   r¢   Úsorted)rd  re  r�   ÚkÚpkgss        r    Úwrite_toplevel_namesrr  Æ  sk   € Ü�=‰=Ø$'×$4Ñ$4×$LÑ$LÓ$NöØ ˆ�‰��Q‹˜Óòó €Dð ‡N�NÐ$ h°·	±	¼&À»,Ó0GÈ$Ñ0NÕOùòs   ¬A>c                ó    — t        | ||d«       y )NT)Ú	write_argrj  s      r    Úoverwrite_argru  Í  s   € Üˆc�8˜X tÕ,r"   c                óÊ   — t         j                  j                  |«      d   }t        | j                  |d «      }|�dj                  |«      dz   }| j                  ||||«       y )Nr   r^  )r=   r'   ÚsplitextrP  rW   r¢   r¶   )rd  re  r�   rµ   Úargnamer�   s         r    rt  rt  Ñ  s\   € Ü�g‰g×Ñ˜xÓ(¨Ñ+€GÜ�C×$Ñ$ g¨tÓ4€EØÐØ—	‘	˜%Ó  4Ñ'ˆØ×Ñ˜W h°°uÕ=r"   c                ó¨   — t        j                  | j                  j                  «      }t        j                  |«      }| j                  d||d«       y )Nzentry pointsT)r   rË   rW   rÆ   Úrenderr¶   )rd  re  r�   ÚepsÚdefns        r    Úwrite_entriesr}  Ù  sB   € Ü
×
Ñ
˜S×-Ñ-×:Ñ:Ó
;€CÜ×Ñ Ó$€DØ×Ñ˜^¨X°t¸TÕBr"   c                ó’   — t        j                  | «      }t        j                  |«      }|› d|› d|xs t        › �}|r|d|› �z  }|S )r©   r“   z-py)r   r¡   rà   )r…   r†   r«   r¬   rZ   re   Úeggs          r    rª   rª   ß  sV   € ä×,Ñ,¨XÓ6€DÜ×/Ñ/°Ó<€GØˆF�!�G�9˜C 
Ò 6¬hÐ7Ð
8€CÙØ��8�*ˆ~ÑˆØ€Jr"   c                  ó   — e Zd ZdZy)ÚEggInfoDeprecationWarningz?Deprecated behavior warning for EggInfo, bypassing suppression.N)r,   r-   r.   r/   r0   r"   r    r�  r�  é  s   „ ÚIr"   r�  rÚ   rÛ   rÜ   )NN)@r/   Ú
__future__r   rî   r=   r?   r'  rr   Úcollections.abcr   Útypingr   rl   Úpackaging.requirementsÚpackaging.versionÚ
setuptoolsr   r   Úsetuptools.commandr   Úsetuptools.command.sdistr	   r
   Úsetuptools.command.setoptr   Úsetuptools.globr   r2   r   r   Ú
_importlibr   Úwarningsr   r   Údistutils.errorsrš   Údistutils.filelistr   r   r   Ú	_FileListÚdistutils.utilr   Úversion_infoÚmajorÚminorrà   r   rR   rT   ry   rÔ   r¯   rb  rk  Úwrite_requirementsÚwrite_setup_requirementsrr  ru  rt  r}  rª   r�  r0   r"   r    ú<module>r—     s'  ðñ<õ #ã Û 	Û 	Û 
Û Ý $Ý ã Û Û ç -Ý (ß 8Ý 1Ý  ç ,Ý !Ý 3Ý ã Û Ý Ý 3Ý 4Ý 'à×Ñ×$Ñ$Ð% Q s×'7Ñ'7×'=Ñ'=Ð&>Ð?€÷Cñ Cò*UO÷p,ñ ,ô^[$ˆz˜7ô [$ô|FBˆyô FBôRl)�Uô l)ó^
ó4ó ð "×4Ñ4Ð Ø'×@Ñ@Ð óPó-ô>óCóôJÐ <õ Jr"   