HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/site-packages/setuptools/command/__pycache__/egg_info.cpython-311.pyc
�

�nc�h���dZddlmZddlmZddlmZddlm	Z	ddlZddlZddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlm Z m!Z!m"Z"m#Z#m$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*ddl+m,Z,ddlm-Z-d�Z.Gd�d��Z/Gd�de/e��Z0Gd�de��ZGd�de��Z1d�Z2d�Z3d�Z4d �Z5d!�Z6d"�Z7d#�Z8d$�Z9d+d&�Z:d'�Z;d(�Z<Gd)�d*e-��Z=dS),zUsetuptools.command.egg_info

Create a distribution's .egg-info directory and contents�)�FileList)�DistutilsInternalError)�convert_path)�logN�)�metadata)�
_entry_points)�Command)�sdist)�walk_revctrl)�edit_config)�	bdist_egg)�Requirement�	safe_name�
parse_version�safe_version�to_filename)�glob)�	packaging)�yield_lines)�SetuptoolsDeprecationWarningc���d}|jtjj��}t	jtj��}d|�d�}t
|��D�]f\}}|t|��dz
k}|dkr|r|dz
}n|d|�d|�d	�z
}�7d
}t|��}	||	k�r||}
|
dkr	||dzz
}n�|
dkr||z
}n�|
d
kr�|dz}||	kr||dkr|dz}||	kr||dkr|dz}||	kr#||dkr|dz}||	kr||dk�||	kr|t	j|
��z
}na||dz|�}d}
|d
dkrd}
|dd�}|
t	j|��z
}
|d
|
�d�z
}|}n|t	j|
��z
}|dz
}||	k��|s||z
}��h|dz
}t	j|tj	tj
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[^�]��**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              �=D:\Python311\Lib\site-packages\setuptools/command/egg_info.py�translate_patternr<'s���
�C��T�Z����
$�
$�F�
�)�B�F�
�
�C�C��C�C�!�J��f�%�%�>�>���5��#�f�+�+��/�)�
��D�=�	��
8��t������z�z�z�3�3�3�7�7���
����J�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�T�?�?�*�C�C�"�!�a�%��-�0�E�!#�J��Q�x�3��*�%(�
� %�a�b�b�	���"�)�E�"2�"2�2�J��C�Z�Z�Z�1�1�C� �A�A��r�y����&��
��F�A�U�)�m�*	�Z�	��3�J�C���5�L�C�
�:�c����	�!9�:�:�:�:�c�v�eZdZdZdZed���Zd�Zd�Zde	de
fd�Zde	fd�Zde	fd	�Z
ee
��ZdS)
�
InfoCommonNc�N�t|j�����S�N)r�distribution�get_name��selfs r;�namezInfoCommon.name~s����*�3�3�5�5�6�6�6r=c�t�t|�|j�������SrA)r�
_maybe_tagrB�get_versionrDs r;�tagged_versionzInfoCommon.tagged_version�s+���D�O�O�D�,=�,I�,I�,K�,K�L�L�M�M�Mr=c�R�|jr|�|��r|n	||jzS)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�rE�versions  r;rHzInfoCommon._maybe_tag�s6���z�
&�d�&:�&:�7�&C�&C�
&�G�G��4�:�%�	
r=rO�returnc��|�|j��p&|�|�����SrA)�endswithrL�
_safe_tagsrNs  r;rMzInfoCommon._already_tagged�s7������
�+�+�R�w�/?�/?����@Q�@Q�/R�/R�Rr=c�@�td|j����dd�S)N�0r)rrLrDs r;rSzInfoCommon._safe_tags�s&���,��
�,�,�-�-�a�b�b�1�1r=c�h�d}|jr
||jz
}|jr|tjd��z
}|S)Nrz-%Y%m%d)�	tag_build�tag_date�time�strftimerNs  r;�tagszInfoCommon.tags�s@�����>�	&��t�~�%�G��=�	0��t�}�Y�/�/�/�G��r=)�__name__�
__module__�__qualname__rWrX�propertyrFrJrH�str�boolrMrSr[rL�r=r;r?r?zs��������I��H�
�7�7��X�7�N�N�N�
�
�
�S�s�S�t�S�S�S�S�
2�C�2�2�2�2�
�c�����
�H�T�N�N�E�E�Er=r?c��eZdZdZgd�ZdgZddiZd�Zed���Z	e	j
d���Z	d�Zd	�Zdd�Z
d�Zd
�Zd�Zd�Zd�ZdS)�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]rfric�Z�d|_d|_d|_d|_d|_d|_dS)NF)�egg_base�egg_namerd�egg_version�broken_egg_info�ignore_egg_info_in_manifestrDs r;�initialize_optionszegg_info.initialize_options�s5����
���
���
����$���+0��(�(�(r=c��dSrArbrDs r;�tag_svn_revisionzegg_info.tag_svn_revision�����r=c��dSrArb)rE�values  r;rszegg_info.tag_svn_revision�rtr=c��tj��}|���|d<d|d<t|t	|�����dS)z�
        Materialize the value of date into the
        build tag. Install build keys in a deterministic order
        to avoid arbitrary reordering on subsequent builds.
        rWrrX)rdN)�collections�OrderedDictr[r
�dict)rE�filenamerds   r;�save_version_infozegg_info.save_version_info�sQ���*�,�,��!%�	�	������ �����H�d�H�5�5�5�6�6�6�6�6r=c��|j|_|���|_t	|j��}	t|tjj��}|rdnd}t||j|jfz��nB#t$r5}tj�
d|j�d|j����|�d}~wwxYw|j�3|jj}|pi�dt$j��|_|�d��t+|j��dz|_|jt$jkr/t$j�|j|j��|_d|jvr|���|j|jj_|jj}|�U|j|j���kr5|j|_t	|j��|_d|j_dSdSdS)Nz%s==%sz%s===%sz-Invalid distribution name or version syntax: �-rrl�	.egg-info) rFrmrJrnr�
isinstancerrO�Versionr�
ValueError�	distutils�errors�DistutilsOptionErrorrlrB�package_dir�getr%�curdir�ensure_dirnamerrdr&�join�check_broken_egg_infor�
_patched_dist�key�lower�_version�_parsed_version)rE�parsed_version�
is_version�specre�dirs�pds       r;�finalize_optionszegg_info.finalize_options�s��
�	��
��.�.�0�0���&�t�'7�8�8��	�#�N�I�4E�4M�N�N�J�)�8�8�8�y�D����
�t�/?�@�@�A�A�A�A���	�	�	��"�7�7�7������ 0� 0�2����
�����	�����=�	<��$�0�D�!�Z�R�,�,�R���;�;�D�M����J�'�'�'�#�D�M�2�2�[�@��
��=�B�I�%�	G��G�L�L����
�F�F�D�M��$�-��	)��&�&�(�(�(�
.2�-=���"�*��
�
,��
�	3�b�f��
�(;�(;�(=�(=�=�	3��*�B�K�!.�t�/?�!@�!@�B��.2�D��+�+�+�	3�	3�	3�	3s�AA?�?
B>�	0B9�9B>Fc���|r|�|||��dStj�|��r3|�|st	jd||��dS|�|��dSdS)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)rE�whatr{�data�forces     r;�write_or_delete_filezegg_info.write_or_delete_files����		+��O�O�D�(�D�1�1�1�1�1�
�W�^�^�H�
%�
%�	+��
+�E�
+���:�D�(������� � ��*�*�*�*�*�	+�	+r=c���tjd||��|�d��}|js;t	|d��}|�|��|���dSdS)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.
        zwriting %s to %s�utf-8�wbN)r�info�encode�dry_run�open�write�close)rEr�r{r��fs     r;r�zegg_info.write_filesm��	��#�T�8�4�4�4��{�{�7�#�#���|�	��X�t�$�$�A�
�G�G�D�M�M�M�
�G�G�I�I�I�I�I�	�	r=c�j�tjd|��|jstj|��dSdS)z8Delete `filename` (if not a dry run) after announcing itzdeleting %sN)rr�r�r%�unlink)rEr{s  r;r�zegg_info.delete_file"s>������)�)�)��|�	 ��I�h������	 �	 r=c	��|�|j��tj|jd��t	jd���D]P}|���}|||jtj�	|j|j�����Qtj�	|jd��}tj�
|��r|�|��|���dS)Nzegg_info.writers)�groupznative_libs.txt)
�mkpathrdr%�utimer�entry_points�loadrFr&r�r�r��find_sources)rE�ep�writer�nls    r;�runzegg_info.run(s������D�M�"�"�"�
�����%�%�%��'�.@�A�A�A�	H�	H�B��W�W�Y�Y�F��F�4���"�'�,�,�t�}�b�g�"F�"F�G�G�G�G��W�\�\�$�-�):�
;�
;��
�7�>�>�"���	!����R� � � ��������r=c���tj�|jd��}t	|j��}|j|_||_|�	��|j
|_
dS)z"Generate SOURCES.txt manifest filezSOURCES.txtN)r%r&r�rd�manifest_makerrBrp�ignore_egg_info_dir�manifestr��filelist)rE�manifest_filename�mms   r;r�zegg_info.find_sources6sV���G�L�L���
�F�F��
�D�-�
.�
.��!%�!A���'���
���������
�
�
r=c�,�|jdz}|jtjkr%tj�|j|��}tj�|��r0tjd||j	��|j	|_
||_	dSdS)NraB------------------------------------------------------------------------------
Note: Your current .egg-info directory has a '-' in its name;
this will not work correctly with "setup.py develop".

Please rename %s to %s to correct this problem.
------------------------------------------------------------------------------)rmrlr%r�r&r�r�rr�rdro)rE�beis  r;r�zegg_info.check_broken_egg_info?s����m�k�)���=�B�I�%�	3��'�,�,�t�}�c�2�2�C�
�7�>�>�#���		 ��H�O��T�]�
�
�
�$(�=�D� ��D�M�M�M�		 �		 r=N�F)r\r]r^�description�user_options�boolean_options�negative_optrqr_rs�setterr|r�r�r�r�r�r�r�rbr=r;rdrd�s������?�K����L�"�l�O��:��L�1�1�1��
�
��X�
���
�
���
�7�7�7�+3�+3�+3�Z+�+�+�+�(��� � � ����$�$�$�
 �
 �
 �
 �
 r=rdc�t��eZdZd�fd�	Zd�Zd�Zd�Zd�Zd�Zd	�Z	d
�Z
d�Zd�Zd
�Z
d�Zd�Zd�Zd�Z�xZS)rNFc�Z��t���||��||_dSrA)�super�__init__r�)rEr��debug_printr��	__class__s    �r;r�zFileList.__init__Rs+���
������{�+�+�+�#6�� � � r=c	�|�|�|��\}}}}|j|j|j|jtj|j|��tj|j|��|j	|j
d�}dddddddd	d�}	||}n1#t$r$td
�
|������wxYw|�d��}	|d
vr|g}|	r|fnd}
||}|�d�|g|	r|gngz|z����|D] }||��st#j||g|
�R��!dS)N)�include�excludezglobal-includezglobal-excludezrecursive-includezrecursive-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/this cannot happen: invalid action '{action!s}')�actionz
recursive->r�r�rb� )�_parse_template_liner�r��global_include�global_exclude�	functools�partial�recursive_include�recursive_excluder�r��KeyErrorr�format�
startswithr�r�rr�)
rE�liner��patterns�dir�dir_pattern�
action_map�log_map�process_action�action_is_recursive�extra_log_args�log_tmpl�patterns
             r;�process_template_linezFileList.process_template_lineVs���04�/H�/H��/N�/N�,���3���|��|�"�1�"�1�!*�!2��&��"�"�"+�!2��&��"�"��Z��Z�

�

�
�?� �+�6�'�2�C�M�/
�
��4	�'��/�N�N���	�	�	�(�A���f��%�%���
�	����%�/�/��=�=���'�'�	%�#�}�H�$7�?�#���R���6�?������H�H���-�5�#���2�7���
�
�	
�	
�	
� �	=�	=�G�!�>�'�*�*�
=����7�<�^�<�<�<�<��	=�	=s�B	�	.B7c���d}tt|j��dz
dd��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�)rE�	predicate�foundr5s    r;�
_remove_fileszFileList._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|]#}tj�|���!|��$Srb�r%r&�isdir��.0r�s  r;�
<listcomp>z$FileList.include.<locals>.<listcomp>�s+��B�B�B�q�����q�1A�1A�B��B�B�Br=�r�extendra)rEr�r�s   r;r�zFileList.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�rEr�r�s   r;r�zFileList.exclude�s%��!�'�*�*���!�!�%�+�.�.�.r=c���tj�|d|��}d�t|d���D��}|�|��t|��S)zN
        Include all files anywhere in 'dir/' that match the pattern.
        rc�P�g|]#}tj�|���!|��$Srbr�r�s  r;r�z.FileList.recursive_include.<locals>.<listcomp>�s:��*�*�*�q���
�
�a�(�(�*��*�*�*r=T)�	recursive)r%r&r�rr�ra)rEr�r��full_patternr�s     r;r�zFileList.recursive_include�sc���w�|�|�C��w�7�7��*�*�D���>�>�>�*�*�*�����E�����E�{�{�r=c��ttj�|d|����}|�|j��S)zM
        Exclude any file anywhere in 'dir/' that match the pattern.
        r�r<r%r&r�r�r�)rEr�r�r�s    r;r�zFileList.recursive_exclude�s9��"�"�'�,�,�s�D�'�"B�"B�C�C���!�!�%�+�.�.�.r=c�|�d�t|��D��}|�|��t|��S)zInclude all files from 'dir/'.c�V�g|]&}tj�|��D]}|���'Srb)r�r��findall)r��	match_dir�items   r;r�z"FileList.graft.<locals>.<listcomp>�sP��
�
�
��!�*�2�2�9�=�=�
�
��
�
�
�
�
r=r�)rEr�r�s   r;r�zFileList.graft�sF��
�
�!�#�Y�Y�
�
�
��
	
���E�����E�{�{�r=c��ttj�|d����}|�|j��S)zFilter out files from 'dir/'.rr)rEr�r�s   r;r�zFileList.prune�s5��!�"�'�,�,�s�D�"9�"9�:�:���!�!�%�+�.�.�.r=c���|j�|���ttj�d|������fd�|jD��}|�|��t|��S)z�
        Include all files anywhere in the current directory that match the
        pattern. This is very inefficient on large file trees.
        Nrc�>��g|]}��|���|��Srb)r�)r�r�r�s  �r;r�z+FileList.global_include.<locals>.<listcomp>�s(���<�<�<�q�U�[�[��^�^�<��<�<�<r=)�allfilesrr<r%r&r�r�ra)rEr�r�r�s   @r;r�zFileList.global_include�sr���
�=�	��L�L�N�N�N�!�"�'�,�,�t�W�"=�"=�>�>��<�<�<�<�D�M�<�<�<�����E�����E�{�{�r=c��ttj�d|����}|�|j��S)zD
        Exclude all files anywhere that match the pattern.
        rrr�s   r;r�zFileList.global_exclude�s7��"�"�'�,�,�t�W�"=�"=�>�>���!�!�%�+�.�.�.r=c���|�d��r
|dd�}t|��}|�|��r|j�|��dSdS)N�
r�)rRr�
_safe_pathr��append)rErr&s   r;rzFileList.append�sj���=�=����	�����9�D��D�!�!���?�?�4� � �	$��J���d�#�#�#�#�#�	$�	$r=c�`�|j�t|j|����dSrA)r�r��filterr)rE�pathss  r;r�zFileList.extend�s*���
���&���%�8�8�9�9�9�9�9r=c�^�tt|j|j����|_dS)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)�listrrr�rDs r;�_repairzFileList._repair�s%���&���$�*�=�=�>�>��
�
�
r=c���d}tj|��}|�tjd|z��dStj|d��}|�tj||d��dS	d|vpd|v}|jr|rdStj�|��stj�|��rdSdS#t$r+tj||tj����YdSwxYw)Nz!'%s' not %s encodable -- skippingz''%s' in unexpected encoding -- skippingFr�rs	.egg-infoT)�
unicode_utils�filesys_decoderr��
try_encoder�r%r&r��UnicodeEncodeError�sys�getfilesystemencoding)rEr&�enc_warn�u_path�	utf8_path�is_egg_infos      r;rzFileList._safe_paths#��6���-�d�3�3���	��H�>��E�F�F�F��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�"B7�5>B7�71C,�+C,)NNF)r\r]r^r�r�r�r�r�r�r�r�r�r�r�rr�rr�
__classcell__)r�s@r;rrOs�������7�7�7�7�7�7�K=�K=�K=�Z������/�/�/�
���/�/�/����/�/�/�

�
�
�/�/�/�$�$�$�:�:�:�?�?�?�B�B�B�B�B�B�Br=rc�d�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	e
d���Zd	�Zd
�Z
d�Zd�Zd
S)r�zMANIFEST.inc�L�d|_d|_d|_d|_d|_dS)NrF)�use_defaultsr��
manifest_only�force_manifestr�rDs r;rqz!manifest_maker.initialize_options"s/�������
�������#(�� � � r=c��dSrArbrDs r;r�zmanifest_maker.finalize_options)s���r=c��t|j���|_tj�|j��s|���|���tj�|j	��r|�
��|���|���|j�
��|j���|���dS)N)r�)rr�r�r%r&r�r��write_manifest�add_defaults�template�
read_template�add_license_files�prune_file_list�sort�remove_duplicatesrDs r;r�zmanifest_maker.run,s��� �T�5M�N�N�N��
��w�~�~�d�m�,�,�	"����!�!�!�������
�7�>�>�$�-�(�(�	!���� � � ���� � � ��������
�������
�'�'�)�)�)��������r=c�j�tj|��}|�tjd��S)N�/)rr�replacer%r')rEr&s  r;�_manifest_normalizez"manifest_maker._manifest_normalize9s(���+�D�1�1���|�|�B�F�C�(�(�(r=c�����j����fd��jjD��}d�jz}��t
�j|f|��dS)zo
        Write the file list in 'self.filelist' to the manifest file
        named by 'self.manifest'.
        c�:��g|]}��|����Srb)r4)r�r�rEs  �r;r�z1manifest_maker.write_manifest.<locals>.<listcomp>Es'���J�J�J���)�)�!�,�,�J�J�Jr=zwriting manifest file '%s'N)r�rr�r��executer�)rEr��msgs`  r;r)zmanifest_maker.write_manifest=si���
	
�
������K�J�J�J�d�m�6I�J�J�J��*�T�]�:�����Z�$�-��!7��=�=�=�=�=r=c�^�|�|��stj||��dSdSrA)�_should_suppress_warningrr�)rEr8s  r;r�zmanifest_maker.warnIs:���,�,�S�1�1�	"��J�t�S�!�!�!�!�!�	"�	"r=c�,�tjd|��S)z;
        suppress missing-file warnings from sdist
        zstandard file .*not found)r(r�)r8s r;r:z'manifest_maker._should_suppress_warningMs��
�x�4�c�:�:�:r=c�d�tj|��|j�|j��|j�|j��t
t����}|r|j�|��n8tj
�|j��r|���tj
�d��r|j�d��|�
d��}|j�|j��dS)Nzsetup.pyrd)rr*r�rr+r�rrr�r%r&r��
read_manifest�get_finalized_commandr�rd)rE�rcfiles�ei_cmds   r;r*zmanifest_maker.add_defaultsTs���
��4� � � ��
���T�]�+�+�+��
���T�]�+�+�+��|�~�~�&�&���	!��M� � ��)�)�)�)�
�W�^�^�D�M�
*�
*�	!���� � � �
�7�>�>�*�%�%�	-�
�M� � ��,�,�,��+�+�J�7�7���
���F�O�,�,�,�,�,r=c��|jjjpg}|D]}tjd|���|j�|��dS)Nzadding license file '%s')rBr�
license_filesrr�r�r�)rErB�lfs   r;r-z manifest_maker.add_license_filesfsV���)�2�@�F�B�
��	�	�B��H�/��4�4�4���
���]�+�+�+�+�+r=c�Z�|�d��}|j���}|j�|j��|j�|��t
jtj	��}|j�
d|zdz|zd���dS)N�buildz(^|z)(RCS|CVS|\.svn)r)�is_regex)r>rB�get_fullnamer�r��
build_baser(r)r%r'�exclude_pattern)rErE�base_dirr's    r;r.zmanifest_maker.prune_file_listms����*�*�7�3�3���$�1�1�3�3���
���E�,�-�-�-��
���H�%�%�%��i�������
�%�%�f�s�l�5H�&H�3�&N�/0�	&�	2�	2�	2�	2�	2r=c��t|d��r|���Stjdt��|���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�Custom 'build_py' does not implement 'get_data_files_without_manifest'.
Please extend command classes from setuptools instead of distutils.)�hasattrrL�warningsr�r�get_data_files)rE�build_pys  r;�_safe_data_fileszmanifest_maker._safe_data_filesvs[���8�>�?�?�	>��;�;�=�=�=��
�
5�
)�		
�	
�	
��&�&�(�(�(r=N)r\r]r^r+rqr�r�r4r)r��staticmethodr:r*r-r.rQrbr=r;r�r�s��������H�)�)�)�
�
�
����)�)�)�
>�
>�
>�"�"�"��;�;��\�;�-�-�-�$,�,�,�2�2�2�)�)�)�)�)r=r�c���d�|��}|�d��}t|d��5}|�|��ddd��dS#1swxYwYdS)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��s����y�y��"�"�H����w�'�'�H�	
�h��	�	���	���������������������������s�A�A"�%A"c�~�tjd|��|js�|jj}|j|jc|_}|j|jc|_}	|j	|j
��||c|_|_n#||c|_|_wxYwt|jdd��}tj
|j
|��dSdS)Nz
writing %s�zip_safe)rr�r�rBrrnrOrmrF�write_pkg_inford�getattrr�write_safety_flag)�cmd�basenamer{r�oldver�oldname�safes       r;rXrX�s����H�\�8�$�$�$��;�8��#�,��#&�?�H�4D� ���&�!$��x�}���
�w�	>�
$�H�#�C�L�1�1�1�.5�v�+�H�M�8�+�+��g�v�+�H�M�8�+�=�=�=�=��s�'��T�:�:���#�C�L�$�7�7�7�7�7�8�8s�A7�7Bc�p�tj�|��rtjd��dSdS)NzsWARNING: 'depends.txt' is not used by setuptools 0.6!
Use the install_requires/extras_require setup() args instead.)r%r&r�rr��r[r\r{s   r;�warn_depends_obsoleterb�sF��	�w�~�~�h���
���
L�	
�	
�	
�	
�	
�
�
r=c�x�t|pd��}d�}t||��}|�|��dS)Nrbc��|dzS)NrTrb)r�s r;�	append_crz&_write_requirements.<locals>.append_cr�s���d�{�r=)r�map�
writelines)�stream�reqs�linesres    r;�_write_requirementsrk�sK����
��#�#�E�����	�5�!�!�E�
���e�����r=c	�p�|j}tj��}t||j��|jpi}t
|��D]D}|�djdit������t|||���E|�
d||�����dS)Nz
[{extra}]
�requirementsrb)rB�io�StringIOrk�install_requires�extras_require�sortedr�r��varsr��getvalue)r[r\r{�distr�rq�extras       r;�write_requirementsrw�s�����D�
�;�=�=�D���d�3�4�4�4��(�.�B�N���'�'�9�9���
�
�)�?�)�3�3�D�F�F�3�3�4�4�4��D�.��"7�8�8�8�8����^�X�t�}�}���G�G�G�G�Gr=c��tj��}t||jj��|�d||�����dS)Nzsetup-requirements)rnrorkrB�setup_requiresr�rt)r[r\r{r�s    r;�write_setup_requirementsrz�sJ��
�;�=�=�D���c�.�=�>�>�>����1�8�T�]�]�_�_�M�M�M�M�Mr=c	���t�d�|j���D����}|�d|d�t
|����dz��dS)Nc�F�g|]}|�dd��d��S)�.rr)r$)r��ks  r;r�z(write_toplevel_names.<locals>.<listcomp>�s9��	
�	
�	
��
�G�G�C��O�O�A��	
�	
�	
r=ztop-level namesrT)rz�fromkeysrB�iter_distribution_namesr�r�rr)r[r\r{�pkgss    r;�write_toplevel_namesr��sv���=�=�	
�	
��%�=�=�?�?�	
�	
�	
���D��N�N�$�h��	�	�&��,�,�0G�0G�$�0N�O�O�O�O�Or=c�*�t|||d��dS)NT)�	write_argras   r;�
overwrite_argr��s��
�c�8�X�t�,�,�,�,�,r=Fc���tj�|��d}t|j|d��}|�d�|��dz}|�||||��dS)NrrT)r%r&�splitextrYrBr�r�)r[r\r{r��argnamervs      r;r�r��sn���g���x�(�(��+�G��C�$�g�t�4�4�E��(��	�	�%� � �4�'�����W�h��u�=�=�=�=�=r=c��tj|jj��}tj|��}|�d||d��dS)Nzentry pointsT)r	r�rBr��renderr�)r[r\r{�eps�defns     r;�
write_entriesr��sH��
�
�S�-�:�
;�
;�C����$�$�D����^�X�t�T�B�B�B�B�Br=c�j�tjdt��tj�d��ryt
jd��5}|D]I}tj	d|��}|r0t|�d����ccddd��S�J	ddd��n#1swxYwYdS)zd
    Get a -r### off of PKG-INFO Version in case this is an sdist of
    a subversion revision.
    z$get_pkg_info_revision is deprecated.zPKG-INFOzVersion:.*-r(\d+)\s*$rNr)rNr��EggInfoDeprecationWarningr%r&r�rnr�r(r��intr�)r�r�r�s   r;�get_pkg_info_revisionr��s��

�M�.�0I�K�K�K�	�w�~�~�j�!�!�/�
�W�Z�
 �
 �	/�A��
/�
/����!9�4�@�@���/��u�{�{�1�~�~�.�.�.�.�		/�	/�	/�	/�	/�	/�	/�	/�/�
/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�

�1s�?B(�B(�(B,�/B,c��eZdZdZdS)r�z?Deprecated behavior warning for EggInfo, bypassing suppression.N)r\r]r^�__doc__rbr=r;r�r��s������I�I�I�Ir=r�r�)>r��distutils.filelistr�	_FileList�distutils.errorsr�distutils.utilrr�rr�r%r(rrnrNrYrx�
_importlibrrr	�
setuptoolsr
�setuptools.command.sdistrr�setuptools.command.setoptr
�setuptools.commandr�
pkg_resourcesrrrrr�setuptools.unicode_utilsr�setuptools.globr�setuptools.externr�setuptools.extern.jaraco.textrrr<r?rdr�r�rXrbrkrwrzr�r�r�r�r�r�rbr=r;�<module>r�s���<�<�5�4�4�4�4�4�3�3�3�3�3�3�'�'�'�'�'�'�������������������	�	�	�	�	�	�	�	�
�
�
�
�	�	�	�	�������������!�!�!�!�!�!�������������*�*�*�*�*�*�1�1�1�1�1�1�1�1�1�1�1�1�(�(�(�(�(�(���������������1�0�0�0�0�0� � � � � � �'�'�'�'�'�'�5�5�5�5�5�5�3�3�3�3�3�3�P;�P;�P;�f&�&�&�&�&�&�&�&�Ri �i �i �i �i �z�7�i �i �i �XMB�MB�MB�MB�MB�y�MB�MB�MB�`j)�j)�j)�j)�j)�U�j)�j)�j)�Z
�
�
�8�8�8�&
�
�
����H�H�H�N�N�N�P�P�P�-�-�-�>�>�>�>�C�C�C�

�

�

� J�J�J�J�J� <�J�J�J�J�Jr=