§
    £!Ìjšd  ã                  óH  — 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
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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j+        j,        › dej+        j-        › �Z.d„ Z/ G d„ d¦  «        Z0 G d„ de0e¦  «        Z1 G d„ de(¦  «        Z' G d„ de¦  «        Z2d-d „Z3d-d!„Z4d-d"„Z5e!j6        Z6e!j7        Z7d-d#„Z8d-d$„Z9d.d/d(„Z:d-d)„Z;d0d*„Z< G d+„ d,e ¦  «        Z=dS )1zUsetuptools.command.egg_info

Create a distribution's .egg-info directory and contentsé    )ÚannotationsN)ÚCallable)ÚCommand)Ú	bdist_egg)ÚsdistÚwalk_revctrl)Úedit_config)Úglobé   )Ú_entry_pointsÚ_normalization)Úmetadata)ÚSetuptoolsDeprecationWarningé   )Ú_requirestxt)Úlog)ÚDistutilsInternalError)ÚFileList)Úconvert_pathú.c                óÞ  — d} | j         t          j        j        ¦  «        }t	          j        t          j        ¦  «        }d|› d�}t          |¦  «        D �]f\  }}|t          |¦  «        dz
  k    }|dk    r|r|dz  }n|d|› d|› d	�z  }Œ7d
}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k    r|dz   }||	k     r||         dk    °||	k    r|t	          j        |
¦  «        z  }na||dz   |…         }d}|d
         dk    rd}|dd…         }|t	          j        |¦  «        z  }|d|› d�z  }|}n|t	          j        |
¦  «        z  }|dz  }||	k     �°|s||z  }�Œh|dz  }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)ÚsplitÚosÚpathÚsepÚreÚescapeÚ	enumerateÚlenÚcompileÚ	MULTILINEÚDOTALL)r
   ÚpatÚchunksr%   Ú
valid_charÚcÚchunkÚ
last_chunkÚiÚ	chunk_lenÚcharÚinner_iÚinnerÚ
char_classs                 ú�/Users/tedpeters/Documents/Projects/Claude Projects/TPC Houses/house-viewer/.venv/lib/python3.11/site-packages/setuptools/command/egg_info.pyÚtranslate_patternr:   (   s‰  € ð €Cð ˆTŒZ�œœÑ$Ô$€Få
Œ)•B”FÑ
Ô
€CØ�c���€Jå˜fÑ%Ô%ð >ñ >‰ˆˆ5Ø�#˜f™+œ+¨™/Ò)ˆ
ð �DŠ=ˆ=Øð 2à�t‘��ð Ð1˜ZÐ1Ð1¨#Ð1Ð1Ð1Ñ1�Øð ˆÝ˜‘J”Jˆ	Ø�)Šm‰mØ˜”8ˆDØ�sŠ{ˆ{à�z CÑ'Ñ'��Ø˜’�à�zÑ!��Ø˜’�à˜a™%�à˜YÒ&Ð&¨5°¬>¸SÒ+@Ð+@Ø%¨™k�GØ˜YÒ&Ð&¨5°¬>¸SÒ+@Ð+@Ø%¨™k�Gð  	Ò)Ð)¨e°G¬nÀÒ.CÐ.CØ%¨™k�Gð  	Ò)Ð)¨e°G¬nÀÒ.CÐ.Cð ˜iÒ'Ð'ð �2œ9 T™?œ?Ñ*�C�Cð " ! a¡%¨' /Ô2�EØ!#�Jð ˜Q”x 3’�Ø%(˜
Ø % a b b¤	˜à¥"¤)¨EÑ"2Ô"2Ñ2�JØÐ,˜zÐ,Ð,Ð,Ñ,�Cð  �A�Aà•r”y ‘”Ñ&�Ø�‰FˆAðU �)Šm‰mðZ ð 	Ø�3‰JˆCùàˆ5�L€CÝŒ:�c¥¤µ´	Ñ!9Ð:Ñ:Ô:Ð:ó    c                  óf   — 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dS )Ú
InfoCommonNc                óX   — t          j        | j                             ¦   «         ¦  «        S ©N)r   Ú	safe_nameÚdistributionÚget_name©Úselfs    r9   ÚnamezInfoCommon.name   s"   € åÔ'¨Ô(9×(BÒ(BÑ(DÔ(DÑEÔEÐEr;   c                ó‚   — |                       | j                             ¦   «         ¦  «        }t          j        |¦  «        S r?   )Ú
_maybe_tagrA   Úget_versionr   Úsafe_version)rD   Útaggeds     r9   Útagged_versionzInfoCommon.tagged_versionƒ   s3   € Ø—’ Ô!2×!>Ò!>Ñ!@Ô!@ÑAÔAˆÝÔ*¨6Ñ2Ô2Ð2r;   c                óR   — | j         r|                      |¦  «        r|n	|| 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©rD   Úversions     r9   rG   zInfoCommon._maybe_tag‡   s7   € ð Œzð&Ø"×2Ò2°7Ñ;Ô;ð&ˆGˆGà˜4œ:Ñ%ð	
r;   rP   ÚstrÚreturnÚboolc                ó^   — |                      | j        |                      ¦   «         f¦  «        S r?   )ÚendswithrM   Ú
_safe_tagsrO   s     r9   rN   zInfoCommon._already_tagged’   s)   € ð ×Ò ¤¨T¯_ª_Ñ->Ô->Ð ?Ñ@Ô@Ð@r;   c                óÚ   — 	 t          j        d| j        › �¦  «        dd …         S # t          j        j        $ r0 t          j        | j                             dd¦  «        ¦  «        cY S w xY w)NÚ0r   ú r   )r   rI   rM   Ú	packagingrP   ÚInvalidVersionr@   ÚreplacerC   s    r9   rV   zInfoCommon._safe_tags—   s{   € ð	JÝ!Ô.Ð/?°4´:Ð/?Ð/?Ñ@Ô@ÀÀÀÔDÐDøÝÔ Ô/ð 	Jð 	Jð 	JÝ!Ô+¨D¬J×,>Ò,>¸sÀCÑ,HÔ,HÑIÔIÐIÐIÐIð	Jøøøs   ‚#& ¦AA*Á)A*c                óh   — d}| j         r
|| j         z  }| j        r|t          j        d¦  «        z  }|S )Nr   z%Y%m%d)Ú	tag_buildÚtag_dateÚtimeÚstrftimerO   s     r9   ÚtagszInfoCommon.tagsŸ   s@   € ØˆØŒ>ð 	&Ø�t”~Ñ%ˆGØŒ=ð 	/Ø•t”} XÑ.Ô.Ñ.ˆGØˆr;   )rP   rQ   rR   rS   )rR   rQ   )Ú__name__Ú
__module__Ú__qualname__r^   r_   ÚpropertyrE   rK   rG   rN   rV   rb   rM   © r;   r9   r=   r=   {   s¥   € € € € € Ø€IØ€HàðFð Fñ „XðFð3ð 3ð 3ð	
ð 	
ð 	
ðAð Að Að Að
Jð Jð Jð Jðð ð ð ð ˆH�T‰NŒN€E€E€Er;   r=   c                  ó®   — e Zd ZdZg d¢ZdgZddiZ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dS )Ú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]rk   rn   c                óL   — d | _         d | _        d | _        d | _        d| _        d S )NF)Úegg_baseÚegg_nameri   Úegg_versionÚignore_egg_info_in_manifestrC   s    r9   Úinitialize_optionszegg_info.initialize_options¾   s-   € ØˆŒØˆŒØˆŒØˆÔØ+0ˆÔ(Ð(Ð(r;   rR   ú
int | Nonec                ó   — d S r?   rg   rC   s    r9   Útag_svn_revisionzegg_info.tag_svn_revisionÈ   ó   € àˆr;   ÚNonec                ó   — d S r?   rg   )rD   Úvalues     r9   rx   zegg_info.tag_svn_revisionÌ   ry   r;   c                óˆ   — t          |                      ¦   «         d¬¦  «        }t          |t          |¬¦  «        ¦  «         dS )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   )r^   r_   )ri   N)Údictrb   r	   )rD   Úfilenameri   s      r9   Úsave_version_infozegg_info.save_version_infoÒ   s?   € õ  $§)¢)¡+¤+¸Ð:Ñ:Ô:ˆÝ�H�d¨HÐ5Ñ5Ô5Ñ6Ô6Ð6Ð6Ð6r;   c                óZ  — | j         | _        |                      ¦   «         | _        t          j                             | j        ¦  «        }	 t          |t          j        j        ¦  «        }|rdnd}t          j         	                    || j        | j        fz  ¦  «         nB# t          $ r5}t          j                             d| j        › d| j        › �¦  «        |‚d }~ww xY w| j        €3| j        j        }|pi                      dt$          j        ¦  «        | _        |                      d¦  «         t+          j        | j        ¦  «        dz   | _        | j        t$          j        k    r/t$          j                             | j        | j        ¦  «        | _        | j        | j        j        _        d S )Nz%s==%sz%s===%sz-Invalid distribution name or version syntax: ú-r   rq   ú	.egg-info)rE   rr   rK   rs   rZ   rP   ÚVersionÚ
isinstanceÚrequirementsÚRequirementÚ
ValueErrorÚ	distutilsÚerrorsÚDistutilsOptionErrorrq   rA   Úpackage_dirÚgetr#   ÚcurdirÚensure_dirnamer   Úfilename_componentri   r$   Újoinr   )rD   Úparsed_versionÚ
is_versionÚspecrj   Údirss         r9   Úfinalize_optionszegg_info.finalize_optionsÝ   sƒ  € ð
 œ	ˆŒØ×.Ò.Ñ0Ô0ˆÔÝ"Ô*×2Ò2°4Ô3CÑDÔDˆð	Ý# NµIÔ4EÔ4MÑNÔNˆJØ)Ð8�8�8¨yˆDÝÔ"×.Ò.¨t°t´}ÀdÔFVÐ6WÑ/WÑXÔXÐXÐXøÝð 	ð 	ð 	ÝÔ"×7Ò7ØbÀÄÐbÐbÐPTÔP`ÐbÐbñô àðøøøøð	øøøð
 Œ=Ð ØÔ$Ô0ˆDØ!˜Z R×,Ò,¨Rµ´Ñ;Ô;ˆDŒMà×Ò˜JÑ'Ô'Ð'Ý&Ô9¸$¼-ÑHÔHÈ;ÑVˆŒØŒ=�BœIÒ%Ð%ÝœGŸLšL¨¬¸¼ÑFÔFˆDŒMð
 .2Ô-=ˆÔÔ"Ô*Ð*Ð*s   ÁAB Â
CÂ)0CÃCNc                ó:   — t          | j        | j        ||¦  «        S )ú0Compute filename of the output egg. Private API.)Ú_egg_basenamerr   rs   )rD   Ú
py_versionÚplatforms      r9   Ú_get_egg_basenamezegg_info._get_egg_basenameý   s   € å˜Tœ]¨DÔ,<¸jÈ(ÑSÔSÐSr;   FÚforcerS   c                óà   — |r|                       |||¦  «         dS t          j                             |¦  «        r3|€|st	          j        d||¦  «         dS |                      |¦  «         dS dS )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)rD   Úwhatr   Údatar�   s        r9   Úwrite_or_delete_filezegg_info.write_or_delete_file  s…   € ð ð 	+Ø�OŠO˜D (¨DÑ1Ô1Ð1Ð1Ð1ÝŒW�^Š^˜HÑ%Ô%ð 	+Øˆ| Eˆ|Ý”Ð?ÀÀxÑPÔPÐPØ�à× Ò  Ñ*Ô*Ð*Ð*Ð*ð	+ð 	+r;   c                óÎ   — t          j        d||¦  «         |                     d¦  «        }t          |d¦  «        }|                     |¦  «         |                     ¦   «          dS )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)rD   r£   r   r¤   Úfs        r9   rŸ   zegg_info.write_file  sY   € õ 	ŒÐ# T¨8Ñ4Ô4Ð4Ø�{Š{˜7Ñ#Ô#ˆÝ�˜4Ñ Ô ˆØ	�Š�‰ŒˆØ	�Š‰	Œ	ˆ	ˆ	ˆ	r;   c                óX   — t          j        d|¦  «         t          j        |¦  «         dS )z8Delete `filename` (if not a dry run) after announcing itzdeleting %sN)r   r©   r#   Úunlink)rD   r   s     r9   r¢   zegg_info.delete_file  s*   € åŒ� Ñ)Ô)Ð)Ý
Œ	�(ÑÔÐÐÐr;   c           	     ó°  — t          t          j        d¬¦  «        ¦  «        }|                      | j        ¦  «         	 t          j        | j        d ¦  «         n=# t          $ r0}d| j        › d�}t          j	         
                    |¦  «        |‚d }~ww xY w|D ]P}|                     ¦   «         } || |j        t
          j                             | j        |j        ¦  «        ¦  «         ŒQt
          j                             | j        d¦  «        }t
          j                             |¦  «        r|                      |¦  «         |                      ¦   «          d S )Nzegg_info.writers)Úgroupz'Cannot update time stamp of directory 'ú'znative_libs.txt)Úlistr   Úentry_pointsÚmkpathri   r#   ÚutimeÚOSErrorr‰   rŠ   ÚDistutilsFileErrorÚloadrE   r$   r‘   r    r¢   Úfind_sources)rD   Úwritersrj   ÚmsgÚepÚwriterÚnls          r9   Úrunzegg_info.run$  sH  € õ •xÔ,Ð3EÐFÑFÔFÑGÔGˆà�Š�D”MÑ"Ô"Ð"ð	BÝŒH�T”] DÑ)Ô)Ð)Ð)øÝð 	Bð 	Bð 	BØL¸D¼MÐLÐLÐLˆCÝÔ"×5Ò5°cÑ:Ô:ÀÐAøøøøð	Bøøøð ð 	Hð 	HˆBØ—W’W‘Y”YˆFØˆF�4˜œ¥"¤'§,¢,¨t¬}¸b¼gÑ"FÔ"FÑGÔGÐGÐGõ ŒW�\Š\˜$œ-Ð):Ñ;Ô;ˆÝŒ7�>Š>˜"ÑÔð 	!Ø×Ò˜RÑ Ô Ð à×ÒÑÔÐÐÐs   ¾A Á
BÁ#+BÂBc                óÞ   — t           j                             | j        d¦  «        }t	          | j        ¦  «        }| j        |_        ||_        | 	                    ¦   «          |j
        | _
        dS )z"Generate SOURCES.txt manifest filezSOURCES.txtN)r#   r$   r‘   ri   Úmanifest_makerrA   rt   Úignore_egg_info_dirÚmanifestrÁ   Úfilelist)rD   Úmanifest_filenameÚmms      r9   r»   zegg_info.find_sources:  sV   € åœGŸLšL¨¬¸ÑFÔFÐÝ˜DÔ-Ñ.Ô.ˆØ!%Ô!AˆÔØ'ˆŒØ
�Š‰ŒˆØœˆŒˆˆr;   )rR   rv   ©rR   rz   ©F©r�   rS   rR   rz   )rc   rd   re   ÚdescriptionÚuser_optionsÚboolean_optionsÚnegative_optru   rf   rx   Úsetterr€   r–   ÚPY_MAJORrœ   r¥   rŸ   r¢   rÁ   r»   rg   r;   r9   ri   ri   ª   sC  € € € € € Ø?€Kð
ð 
ð 
€Lð "�l€Oà�:ð€Lð1ð 1ð 1ð ðð ð ñ „Xðð Ôðð ð ñ Ôðð
	7ð 	7ð 	7ð 	7ð>ð >ð >ð >ð@ ,4¸dð Tð Tð Tð Tð+ð +ð +ð +ð +ð$
ð 
ð 
ð 
ðð ð ð ð
ð ð ð ð,$ð $ð $ð $ð $ð $r;   ri   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   NFrÄ   rS   rR   rz   c                óZ   •— t          ¦   «                              ||¦  «         || _        d S r?   )ÚsuperÚ__init__rÄ   )rD   r¡   Údebug_printrÄ   Ú	__class__s       €r9   rÕ   zFileList.__init__G  s-   ø€ õ 	‰Œ×Ò˜˜{Ñ+Ô+Ð+Ø#6ˆÔ Ð Ð r;   c           	     óf  — |                       |¦  «        \  }}}}| j        | j        | j        | j        t          j        | j        |¦  «        t          j        | j        |¦  «        | j	        | j
        dœ}dddddddd	dœ}	 ||         }n&# t          $ r d
|›d|›�}	t          |	¦  «        d ‚w xY w|                     d¦  «        }
|dv r|g}|
r|fnd}||         }|                      d                     |g|
r|gng z   |z   ¦  «        ¦  «         |D ] } ||¦  «        st!          j        ||g|¢R Ž  Œ!d S )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Ü   rg   rY   )Ú_parse_template_linerÙ   rÚ   Úglobal_includeÚglobal_excludeÚ	functoolsÚpartialÚrecursive_includeÚrecursive_excluderÛ   rÜ   ÚKeyErrorr   Ú
startswithrÖ   r‘   r   r¡   )rD   ÚlineÚactionÚpatternsÚdirÚdir_patternÚ
action_mapÚlog_mapÚprocess_actionr½   Úaction_is_recursiveÚextra_log_argsÚlog_tmplÚpatterns                 r9   Úprocess_template_linezFileList.process_template_lineM  sÓ  € ð 04×/HÒ/HÈÑ/NÔ/NÑ,ˆ�˜3 ð ”|Ø”|Ø"Ô1Ø"Ô1Ý!*Ô!2ØÔ&Øñ"ô "õ "+Ô!2ØÔ&Øñ"ô "ð ”ZØ”Zð+
ð +
ˆ
ð" ?ØSàPð6ð Mð2ð CØMð%
ð 
ˆð*	8Ø'¨Ô/ˆNˆNøÝð 	8ð 	8ð 	8ØO¸ÐOÐOÀtÐOÐOˆCÝ(¨Ñ-Ô-°4Ð7ð	8øøøð %×/Ò/°Ñ=Ô=ÐØÐ'Ð'Ð'Ø#�}ˆHØ#6Ð>˜#˜˜¸BˆØ˜6”?ˆà×ÒØ�HŠHØ�Ð%8Ð@˜S˜E˜E¸bÑAÀHÑLñô ñ	
ô 	
ð 	
ð
  ð 	=ð 	=ˆGØ!�> 'Ñ*Ô*ð =Ý”˜ 7Ð<¨^Ð<Ð<Ð<Ð<øð	=ð 	=s   Â B	 Â	#B,c                óâ   — d}t          t          | j        ¦  «        dz
  dd¦  «        D ]E} || j        |         ¦  «        r-|                      d| j        |         z   ¦  «         | j        |= d}ŒF|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)Úranger)   ÚfilesrÖ   )rD   Ú	predicateÚfoundr3   s       r9   Ú_remove_fileszFileList._remove_files“  s|   € ð
 ˆÝ•s˜4œ:‘”¨Ñ*¨B°Ñ3Ô3ð 	ð 	ˆAØˆy˜œ AœÑ'Ô'ð Ø× Ò  °´
¸1´Ñ!=Ñ>Ô>Ð>Ø”J˜q�MØ�øØˆr;   c                ó|   — d„ t          |¦  «        D ¦   «         }|                      |¦  «         t          |¦  «        S )z#Include files that match 'pattern'.c                óP   — g | ]#}t           j                             |¦  «        °!|‘Œ$S rg   ©r#   r$   Úisdir©Ú.0r®   s     r9   ú
<listcomp>z$FileList.include.<locals>.<listcomp>¢  s+   € ÐBÐBÐB�qµ´·²¸qÑ1AÔ1AÐB�ÐBÐBÐBr;   ©r
   ÚextendrS   )rD   rñ   rø   s      r9   rÙ   zFileList.include   s9   € àBÐB�D ™MœMÐBÑBÔBˆØ�Š�EÑÔÐÝ�E‰{Œ{Ðr;   c                óT   — t          |¦  «        }|                      |j        ¦  «        S )z#Exclude files that match 'pattern'.)r:   rù   Úmatch©rD   rñ   r  s      r9   rÚ   zFileList.exclude¦  s%   € å! 'Ñ*Ô*ˆØ×!Ò! %¤+Ñ.Ô.Ð.r;   c                óÂ   — t           j                             |d|¦  «        }d„ t          |d¬¦  «        D ¦   «         }|                      |¦  «         t          |¦  «        S )zN
        Include all files anywhere in 'dir/' that match the pattern.
        r   c                óP   — g | ]#}t           j                             |¦  «        °!|‘Œ$S rg   rü   rþ   s     r9   r   z.FileList.recursive_include.<locals>.<listcomp>°  s,   € ÐWÐWÐW�qÅbÄgÇmÂmÐTUÑFVÔFVÐW�ÐWÐWÐWr;   T)Ú	recursive)r#   r$   r‘   r
   r  rS   )rD   ré   rñ   Úfull_patternrø   s        r9   râ   zFileList.recursive_include«  sY   € õ ”w—|’| C¨¨wÑ7Ô7ˆØWÐW�D ¸Ð>Ñ>Ô>ÐWÑWÔWˆØ�Š�EÑÔÐÝ�E‰{Œ{Ðr;   c                ó’   — t          t          j                             |d|¦  «        ¦  «        }|                      |j        ¦  «        S )zM
        Exclude any file anywhere in 'dir/' that match the pattern.
        r   ©r:   r#   r$   r‘   rù   r  )rD   ré   rñ   r  s       r9   rã   zFileList.recursive_exclude´  s9   € õ "¥"¤'§,¢,¨s°D¸'Ñ"BÔ"BÑCÔCˆØ×!Ò! %¤+Ñ.Ô.Ð.r;   c                ó|   — d„ t          |¦  «        D ¦   «         }|                      |¦  «         t          |¦  «        S )zInclude all files from 'dir/'.c                óV   — g | ]&}t           j                             |¦  «        D ]}|‘ŒŒ'S rg   )r‰   rÆ   Úfindall)rÿ   Ú	match_dirÚitems      r9   r   z"FileList.graft.<locals>.<listcomp>½  sP   € ð 
ð 
ð 
àÝ!Ô*×2Ò2°9Ñ=Ô=ð
ð 
ð ð ð
ð 
ð 
ð 
r;   r  )rD   ré   rø   s      r9   rÛ   zFileList.graft»  sF   € ð
ð 
å! #™YœYð
ñ 
ô 
ˆð
 	�Š�EÑÔÐÝ�E‰{Œ{Ðr;   c                ó�   — t          t          j                             |d¦  «        ¦  «        }|                      |j        ¦  «        S )zFilter out files from 'dir/'.r   r  )rD   ré   r  s      r9   rÜ   zFileList.pruneÅ  s5   € å!¥"¤'§,¢,¨s°DÑ"9Ô"9Ñ:Ô:ˆØ×!Ò! %¤+Ñ.Ô.Ð.r;   c                ó  ‡— | j         €|                      ¦   «          t          t          j                             d|¦  «        ¦  «        Šˆfd„| j         D ¦   «         }|                      |¦  «         t          |¦  «        S )z“
        Include all files anywhere in the current directory that match the
        pattern. This is very inefficient on large file trees.
        Nr   c                ó>   •— g | ]}‰                      |¦  «        ¯|‘ŒS rg   )r  )rÿ   r®   r  s     €r9   r   z+FileList.global_include.<locals>.<listcomp>Ò  s(   ø€ Ð<Ð<Ð<�q¨U¯[ª[¸©^¬^Ð<�Ð<Ð<Ð<r;   )Úallfilesr  r:   r#   r$   r‘   r  rS   )rD   rñ   rø   r  s      @r9   rÞ   zFileList.global_includeÊ  sp   ø€ ð
 Œ=Ð Ø�LŠL‰NŒNˆNÝ!¥"¤'§,¢,¨t°WÑ"=Ô"=Ñ>Ô>ˆØ<Ð<Ð<Ð<˜DœMÐ<Ñ<Ô<ˆØ�Š�EÑÔÐÝ�E‰{Œ{Ðr;   c                ó�   — t          t          j                             d|¦  «        ¦  «        }|                      |j        ¦  «        S )zD
        Exclude all files anywhere that match the pattern.
        r   r  r  s      r9   rß   zFileList.global_excludeÖ  s7   € õ "¥"¤'§,¢,¨t°WÑ"=Ô"=Ñ>Ô>ˆØ×!Ò! %¤+Ñ.Ô.Ð.r;   c                ó°   — |                      d¦  «        }t          |¦  «        }|                      |¦  «        r| j                             |¦  «         d S d S )Nú)Úremovesuffixr   Ú
_safe_pathrö   Úappend)rD   r  r$   s      r9   r  zFileList.appendÝ  s\   € Ø× Ò  Ñ&Ô&ˆÝ˜DÑ!Ô!ˆà�?Š?˜4Ñ Ô ð 	$ØŒJ×Ò˜dÑ#Ô#Ð#Ð#Ð#ð	$ð 	$r;   c                ó`   — | j                              t          | j        |¦  «        ¦  «         d S r?   )rö   r  Úfilterr  )rD   Úpathss     r9   r  zFileList.extendä  s*   € ØŒ
×Ò�& ¤°%Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9r;   c                ó^   — t          t          | j        | j        ¦  «        ¦  «        | _        dS )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ö   rC   s    r9   Ú_repairzFileList._repairç  s%   € õ �& ¤°$´*Ñ=Ô=Ñ>Ô>ˆŒ
ˆ
ˆ
r;   c                óà  — d}t          j        |¦  «        }|€t          j        d|› d�¦  «         dS t          j        |d¦  «        }|€t          j        ||d¦  «         dS 	 d|v pd|v }| j        r|rdS t          j                             |¦  «        st          j                             |¦  «        rdS d S # t          $ r+ t          j        ||t          j        ¦   «         ¦  «         Y d S w xY w)	Nz!'%s' not %s encodable -- skippingr³   z$' in unexpected encoding -- skippingFr§   rƒ   s	   .egg-infoT)Úunicode_utilsÚfilesys_decoder   r¡   Ú
try_encoderÄ   r#   r$   r    ÚUnicodeEncodeErrorÚsysÚgetfilesystemencoding)rD   r$   Úenc_warnÚu_pathÚ	utf8_pathÚis_egg_infos         r9   r  zFileList._safe_pathñ  s$  € Ø6ˆõ Ô-¨dÑ3Ô3ˆØˆ>ÝŒHÐC˜ÐCÐCÐCÑDÔDÐDØ�5õ "Ô,¨V°WÑ=Ô=ˆ	ØÐÝŒH�X˜t WÑ-Ô-Ð-Ø�5ð
	Bà%¨Ð/ÐL°<À9Ð3LˆKØÔ'ð ¨Kð Ø�uåŒw�~Š~˜fÑ%Ô%ð ­¬¯ª¸	Ñ)BÔ)Bð Ø�tðð øõ "ð 	Bð 	Bð 	BÝŒH�X˜t¥SÔ%>Ñ%@Ô%@ÑAÔAÐAÐAÐAÐAð	Bøøøs   Á#B8 Á6>B8 Â81C-Ã,C-)NNF)rÄ   rS   rR   rz   rÉ   )rc   rd   re   rÕ   rò   rù   rÙ   rÚ   râ   rã   rÛ   rÜ   rÞ   rß   r  r  r  r  Ú__classcell__)r×   s   @r9   r   r   D  s6  ø€ € € € € ð HMð7ð 7ð 7ð 7ð 7ð 7ð 7ðD=ð D=ð D=ð D=ðLð ð ðð ð ð/ð /ð /ð
ð ð ð/ð /ð /ðð ð ð/ð /ð /ð

ð 
ð 
ð/ð /ð /ð$ð $ð $ð $ð:ð :ð :ð :ð?ð ?ð ?ðBð Bð Bð Bð Bð Bð Br;   r   c                  ór   — 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dS )rÃ   zMANIFEST.inrR   rz   c                óL   — d| _         d| _        d| _        d| _        d| _        d S )NTF)Úuse_defaultsrÜ   Úmanifest_onlyÚforce_manifestrÄ   rC   s    r9   ru   z!manifest_maker.initialize_options  s/   € Ø ˆÔØˆŒ
Ø!ˆÔØ"ˆÔØ#(ˆÔ Ð Ð r;   c                ó   — d S r?   rg   rC   s    r9   r–   zmanifest_maker.finalize_options  s   € Øˆr;   c                óF  — t          | j        ¬¦  «        | _        t          j                             | j        ¦  «        s|                      ¦   «          |                      ¦   «          t          j                             | j	        ¦  «        r|  
                    ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          | j                             ¦   «          | j                             ¦   «          |                      ¦   «          d S )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_duplicatesrC   s    r9   rÁ   zmanifest_maker.run  só   € Ý °TÔ5MÐNÑNÔNˆŒÝŒw�~Š~˜dœmÑ,Ô,ð 	"Ø×ÒÑ!Ô!Ð!Ø×ÒÑÔÐÝŒ7�>Š>˜$œ-Ñ(Ô(ð 	!Ø×ÒÑ Ô Ð Ø×ÒÑ Ô Ð Ø×"Ò"Ñ$Ô$Ð$Ø×ÒÑÔÐØŒ×ÒÑÔÐØŒ×'Ò'Ñ)Ô)Ð)Ø×ÒÑÔÐÐÐr;   c                ój   — t          j        |¦  «        }|                     t          j        d¦  «        S )Nú/)r!  r"  r\   r#   r%   )rD   r$   s     r9   Ú_manifest_normalizez"manifest_maker._manifest_normalize(  s(   € ÝÔ+¨DÑ1Ô1ˆØ�|Š|�BœF CÑ(Ô(Ð(r;   c                óÆ   ‡ — ‰ j                              ¦   «          ˆ fd„‰ j         j        D ¦   «         }d‰ j        › d�}‰                      t
          ‰ j        |f|¦  «         dS )zo
        Write the file list in 'self.filelist' to the manifest file
        named by 'self.manifest'.
        c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS rg   )r>  )rÿ   r®   rD   s     €r9   r   z1manifest_maker.write_manifest.<locals>.<listcomp>4  s'   ø€ ÐJÐJÐJ°�×)Ò)¨!Ñ,Ô,ÐJÐJÐJr;   zwriting manifest file 'r³   N)rÆ   r  rö   rÅ   ÚexecuterŸ   )rD   rö   r½   s   `  r9   r3  zmanifest_maker.write_manifest,  so   ø€ ð
 	Œ×ÒÑÔÐð KÐJÐJÐJ°d´mÔ6IÐJÑJÔJˆØ8¨¬Ð8Ð8Ð8ˆØ�Š•Z $¤-°Ð!7¸Ñ=Ô=Ð=Ð=Ð=r;   c                ó^   — |                       |¦  «        st          j        | |¦  «         d S d S r?   )Ú_should_suppress_warningr   r¡   )rD   r½   s     r9   r¡   zmanifest_maker.warn8  s:   € Ø×,Ò,¨SÑ1Ô1ð 	"ÝŒJ�t˜SÑ!Ô!Ð!Ð!Ð!ð	"ð 	"r;   c                ó,   — t          j        d| ¦  «        S )z;
        suppress missing-file warnings from sdist
        zstandard file .*not found)r&   r  )r½   s    r9   rC  z'manifest_maker._should_suppress_warning<  s   € õ
 ŒxÐ4°cÑ:Ô:Ð:r;   c                ód  — t          j        | ¦  «         | j                             | j        ¦  «         | j                             | j        ¦  «         t          t          ¦   «         ¦  «        }|r| j                             |¦  «         n8t          j
                             | j        ¦  «        r|                      ¦   «          t          j
                             d¦  «        r| j                             d¦  «         |                      d¦  «        }| j                             |j        ¦  «         d S )Nzsetup.pyri   )r   r4  rÆ   r  r5  rÅ   r´   r   r  r#   r$   r    Úread_manifestÚget_finalized_commandrÛ   ri   )rD   ÚrcfilesÚei_cmds      r9   r4  zmanifest_maker.add_defaultsC  sþ   € ÝÔ˜4Ñ Ô Ð ØŒ×Ò˜Tœ]Ñ+Ô+Ð+ØŒ×Ò˜Tœ]Ñ+Ô+Ð+Ý•|‘~”~Ñ&Ô&ˆØð 	!ØŒM× Ò  Ñ)Ô)Ð)Ð)ÝŒW�^Š^˜DœMÑ*Ô*ð 	!Ø×ÒÑ Ô Ð åŒ7�>Š>˜*Ñ%Ô%ð 	-ð ŒM× Ò  Ñ,Ô,Ð,à×+Ò+¨JÑ7Ô7ˆØŒ×Ò˜FœOÑ,Ô,Ð,Ð,Ð,r;   c                ó”   — | j         j        j        pg }|D ]}t          j        d|¦  «         Œ| j                             |¦  «         d S )Nzadding license file '%s')rA   r   Úlicense_filesr   r©   rÆ   r  )rD   rK  Úlfs      r9   r7  z manifest_maker.add_license_filesU  sV   € ØÔ)Ô2Ô@ÐFÀBˆØð 	5ð 	5ˆBÝŒHÐ/°Ñ4Ô4Ð4Ð4ØŒ×Ò˜]Ñ+Ô+Ð+Ð+Ð+r;   c                óš   — t          | j        dg ¦  «        }|D ]}t          j        d|¦  «         Œ| j                             |¦  «         dS )zGAdd files referenced by the config (e.g. `file:` directive) to filelistÚ_referenced_filesz%adding file referenced by config '%s'N)ÚgetattrrA   r   ÚdebugrÆ   r  )rD   Ú
referencedÚrfs      r9   r8  z$manifest_maker._add_referenced_files[  sZ   € å˜TÔ.Ð0CÀRÑHÔHˆ
àð 	Cð 	CˆBÝŒIÐ=¸rÑBÔBÐBÐBØŒ×Ò˜ZÑ(Ô(Ð(Ð(Ð(r;   c                ó    — t          |d¦  «        r|                     ¦   «         S t          j        ddd¬¦  «         |                     ¦   «         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)ÚhasattrrT  r   ÚemitÚget_data_files)rD   Úbuild_pys     r9   Ú_safe_data_fileszmanifest_maker._safe_data_filesc  sd   € õ �8Ð>Ñ?Ô?ð 	>Ø×;Ò;Ñ=Ô=Ð=å$Ô)ØNðð 8ð	
ñ 	
ô 	
ð 	
ð ×&Ò&Ñ(Ô(Ð(r;   NrÉ   )rc   rd   re   r5  ru   r–   rÁ   r>  r3  r¡   ÚstaticmethodrC  r4  r7  r8  rZ  rg   r;   r9   rÃ   rÃ     sí   € € € € € Ø€Hð)ð )ð )ð )ðð ð ð ðð ð ð ð)ð )ð )ð
>ð 
>ð 
>ð 
>ð"ð "ð "ð "ð ð;ð ;ñ „\ð;ð-ð -ð -ð -ð$,ð ,ð ,ð ,ð)ð )ð )ð)ð )ð )ð )ð )r;   rÃ   rR   rz   c                óÖ   — d                      |¦  «        }|                     d¦  «        }t          | d¦  «        5 }|                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )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      r9   rŸ   rŸ   |  s«   € ð �yŠy˜Ñ"Ô"€Hð �Š˜wÑ'Ô'€Hå	ˆh˜Ñ	Ô	ð  Ø	�Š�ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   »AÁA"Á%A"c                ól  — t          j        d|¦  «         | j        j        }| j        |j        c|_        }| j        |j        c|_        }	  |j        | j	        ¦  «         ||c|_        |_        n# ||c|_        |_        w xY wt          | j        dd ¦  «        }t          j        | j	        |¦  «         d S )Nz
writing %sÚzip_safe)r   r©   rA   r   rs   rP   rr   rE   Úwrite_pkg_infori   rO  r   Úwrite_safety_flag)ÚcmdÚbasenamer   r   ÚoldverÚoldnameÚsafes          r9   ra  ra  ‰  s¿   € Ý„Hˆ\˜8Ñ$Ô$Ð$ØÔÔ(€HØ"œ°Ô0@Ð€HÔ�fØ œ\¨8¬=Ð€H„M�7ð:ØˆÔ ¤Ñ-Ô-Ð-à*1°6Ð'ˆŒ�xÔ'Ð'ø¨'°6Ð'ˆŒ�xÔ'Ð9Ð9Ð9Ð9å�3Ô# Z°Ñ6Ô6€DåÔ ¤¨dÑ3Ô3Ð3Ð3Ð3s   ÁA0 Á0Bc                ó   — dS )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.
    Nrg   ©rc  rd  r   s      r9   Úwarn_depends_obsoleterj  ™  s   € € € r;   c           	     óð   — t                                d„ | j                             ¦   «         D ¦   «         ¦  «        }|                      d|d                     t          |¦  «        ¦  «        dz   ¦  «         d S )Nc                óF   — g | ]}|                      d d¦  «        d         ‘ŒS )r   r   r   )r"   )rÿ   Úks     r9   r   z(write_toplevel_names.<locals>.<listcomp>©  s6   € ð ð ð Ø ˆ�Š��Q‰Œ˜Ôðð ð r;   ztop-level namesr]  )r~   ÚfromkeysrA   Úiter_distribution_namesrŸ   r‘   Úsorted)rc  rd  r   Úpkgss       r9   Úwrite_toplevel_namesrr  ¨  sv   € Ý�=Š=ð ð Ø$'Ô$4×$LÒ$LÑ$NÔ$Nðñ ô ñ ô €Dð ‡N‚NÐ$ h°·	²	½&À¹,¼,Ñ0GÔ0GÈ$Ñ0NÑOÔOÐOÐOÐOr;   c                ó*   — t          | ||d¦  «         d S )NT)Ú	write_argri  s      r9   Úoverwrite_argru  ¯  s   € Ýˆc�8˜X tÑ,Ô,Ð,Ð,Ð,r;   Fr�   rS   c                óà   — t           j                             |¦  «        d         }t          | j        |d ¦  «        }|�d                     |¦  «        dz   }|                      ||||¦  «         d S )Nr   r]  )r#   r$   ÚsplitextrO  rA   r‘   r¥   )rc  rd  r   r�   Úargnamer|   s         r9   rt  rt  ³  sl   € ÝŒg×Ò˜xÑ(Ô(¨Ô+€GÝ�CÔ$ g¨tÑ4Ô4€EØÐØ—	’	˜%Ñ Ô  4Ñ'ˆØ×Ò˜W h°°uÑ=Ô=Ð=Ð=Ð=r;   c                óš   — t          j        | j        j        ¦  «        }t          j        |¦  «        }|                      d||d¦  «         d S )Nzentry pointsT)r   rº   rA   rµ   Úrenderr¥   )rc  rd  r   ÚepsÚdefns        r9   Úwrite_entriesr}  »  sH   € Ý
Ô
˜SÔ-Ô:Ñ
;Ô
;€CÝÔ Ñ$Ô$€DØ×Ò˜^¨X°t¸TÑBÔBÐBÐBÐBr;   c                óŒ   — t          j        | ¦  «        }t          j        |¦  «        }|› d|› d|pt          › �}|r|d|› �z  }|S )r˜   r‚   z-py)r   r�   rÑ   )rr   rs   rš   r›   rE   rP   Úeggs          r9   r™   r™   Á  s_   € åÔ,¨XÑ6Ô6€DÝÔ/°Ñ<Ô<€GØÐ
8Ð
8�GÐ
8Ð
8 
Ð 6­hÐ
8Ð
8€CØð Øˆ~�8ˆ~ˆ~ÑˆØ€Jr;   c                  ó   — e Zd ZdZdS )ÚEggInfoDeprecationWarningz?Deprecated behavior warning for EggInfo, bypassing suppression.N)rc   rd   re   Ú__doc__rg   r;   r9   r�  r�  Ë  s   € € € € € ØIÐIÐIÐIr;   r�  rÉ   rÊ   rË   )NN)>r‚  Ú
__future__r   rà   r#   r&   r%  r`   Úcollections.abcr   rZ   Úpackaging.requirementsÚpackaging.versionÚsetuptools.unicode_utilsr!  Ú
setuptoolsr   Úsetuptools.commandr   Úsetuptools.command.sdistr   r   Úsetuptools.command.setoptr	   Úsetuptools.globr
   r   r   r   Ú
_importlibr   Úwarningsr   r   Údistutils.errorsr‰   Údistutils.filelistr   r   r   Ú	_FileListÚdistutils.utilr   Úversion_infoÚmajorÚminorrÑ   r:   r=   ri   rÃ   rŸ   ra  rj  Úwrite_requirementsÚwrite_setup_requirementsrr  ru  rt  r}  r™   r�  rg   r;   r9   ú<module>r˜     s§  ðð<ð <ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø  Ð  Ð  Ð  Ð  Ð  à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø !Ð !Ð !Ð !Ð !Ð !Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'àÔÔ$Ð?Ð? sÔ'7Ô'=Ð?Ð?€ðP;ð P;ð P;ðf,ð ,ð ,ð ,ð ,ñ ,ô ,ð ,ð^W$ð W$ð W$ð W$ð W$ˆz˜7ñ W$ô W$ð W$ðtFBð FBð FBð FBð FBˆyñ FBô FBð FBðRl)ð l)ð l)ð l)ð l)�Uñ l)ô l)ð l)ð^
ð 
ð 
ð 
ð4ð 4ð 4ð 4ð ð ð ð ð "Ô4Ð Ø'Ô@Ð ðPð Pð Pð Pð-ð -ð -ð -ð>ð >ð >ð >ð >ðCð Cð Cð Cðð ð ð ðJð Jð Jð Jð JÐ <ñ Jô Jð Jð Jð Jr;   