� ,�Re�h�� �dZddlmZddlmZddlmZddlm Z ddlZddlZddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlmZdd lmZdd lmZdd lmZdd 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||} | d kr ||d zz }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 ��/builddir/build/BUILDROOT/alt-python311-setuptools-65.6.3-2.el8.x86_64/opt/alt/python311/lib/python3.11/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�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�%��-�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�m�Z� � �3�J�C���5�L�C� �:�c���� �!9� :� :� :�:�c�v�eZdZdZdZed���Zd�Zd�Zde de fd�Z de 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�Z d �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�L�L���� �F�F�D�M� �$�-� � � � &� &� (� (� (� .2�-=���"�*� � � ,�� �>�b�f�� �(;�(;�(=�(=�=�=��*�B�K�!.�t�/?�!@�!@�B� �.2�D� � +� +� +� �>�=�=s�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 itz deleting %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 filez SOURCES.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� %� %��'�,�,�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 �Z d �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|jt j|j|��t j|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;� z$FileList.include..�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..�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..�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..�s(���<�<�<�q�U�[�[��^�^�<��<�<��>��<�<�<�<�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���Z d �Z d �Z d �Zd �Zd S)r�z MANIFEST.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..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_warningr r�)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)r r*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..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..�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��sl���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.sdistr r �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;�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=