HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /lib/python3/dist-packages/setuptools/config/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/setuptools/config/__pycache__/setupcfg.cpython-311.pyc
�

���c�c���dZddlZddlZddlZddlZddlmZddlmZddlmZddl	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZddlmZmZddlmZmZdd	lmZmZdd
lm Z ddl!m"Z"dd
l#m$Z$e
rddl%m&Z&ddl'm(Z(ee)ej*fZ+e
dedeffZ,	e
de,fZ-eded���Z.		d4de+de/fd�Z0ddde+ddfd�Z1		d5ddde+dee+de2dedf
d�Z3d e.d!e)fd"�Z4d#edde/fd$�Z5	d6d%dd&e-ded'fd(�Z6d)e)d*e)d+e7fd,�Z8Gd-�d.ee.��Z9Gd/�d0e9d1��Z:Gd2�d3e9d��Z;dS)7ze
Load setuptools configuration from ``setup.cfg`` files.

**API will be made private in the future**
�N)�defaultdict)�partial��wraps)�
TYPE_CHECKING�Callable�Any�Dict�Generic�Iterable�List�Optional�Set�Tuple�TypeVar�Union)�DistutilsOptionError�DistutilsFileError)�Requirement�InvalidRequirement)�Version�InvalidVersion)�SpecifierSet)�SetuptoolsDeprecationWarning�)�expand��Distribution)�DistributionMetadata�str�Target)rr)�boundF�filepath�returnc��ddlm}|��}|r|���ng}t||||��}t	|��S)a,Read given configuration file and returns options from it as a dict.

    :param str|unicode filepath: Path to configuration file
        to get options from.

    :param bool find_others: Whether to search for other configuration files
        which could be on in various places.

    :param bool ignore_option_errors: Whether to silently ignore
        options, values of which could not be resolved (e.g. due to exceptions
        in directives such as file:, attr:, etc.).
        If False exceptions are propagated as expected.

    :rtype: dict
    rr)�setuptools.distr�find_config_files�_apply�configuration_to_dict)r#�find_others�ignore_option_errorsr�dist�	filenames�handlerss       �</usr/lib/python3/dist-packages/setuptools/config/setupcfg.py�read_configurationr0(s^��(-�,�,�,�,�,��<�>�>�D�,7�?��&�&�(�(�(�R�I��d�H�i�1E�F�F�H� ��*�*�*�r,rc�N�t||��|���|S)z`Apply the configuration from a ``setup.cfg`` file into an existing
    distribution object.
    )r(�_finalize_requires)r,r#s  r/�apply_configurationr4Ds+���4������������Kr1��other_filesr+)�
ConfigHandler.c�(�ddlm}tj�|��}tj�|��st
d|z���tj��}tjtj�	|����g|�|�}	|�
||���t||j|���}|�
��tj|��n#tj|��wxYw|S)zHRead configuration from ``filepath`` and applies to the ``dist`` object.r)�
_Distributionz%Configuration file %s does not exist.)r-)r+)r&r9�os�path�abspath�isfiler�getcwd�chdir�dirname�parse_config_files�parse_configuration�command_options�_finalize_license_files)r,r#r6r+r9�current_directoryr-r.s        r/r(r(Ms��.�-�-�-�-�-��w���x�(�(�H�
�7�>�>�(�#�#�U� �!H�8�!S�T�T�T��	�����H�R�W�_�_�X�
&�
&�'�'�'�(�+�(�x�(�I�$��(�(���(�C�C�C�&��$�&�=Q�
�
�
��	
�$�$�&�&�&�
��"�#�#�#�#����"�#�#�#�#�����Os
�"AC9�9D�
target_obj�keyc��djdit����}tjt||��}t	|||��}|��S)z�
    Given a target object and option key, get that option from
    the target object, either through a get_{key} method or
    from an attribute directly.
    z	get_{key}r5)�format�locals�	functoolsr�getattr)rFrG�getter_name�by_attribute�getters     r/�_get_optionrPjsP��%�+�$�0�0�v�x�x�0�0�K��$�W�j�#�>�>�L�
�Z��l�
;�
;�F��6�8�8�Or1r.c��tt��}|D]1}|jD]'}t|j|��}|||j|<�(�2|S)z�Returns configuration data gathered by given handlers as a dict.

    :param list[ConfigHandler] handlers: Handlers list,
        usually from parse_configuration()

    :rtype: dict
    )r�dict�set_optionsrPrF�section_prefix)r.�config_dict�handler�option�values     r/r)r)vsk��$�D�)�)�K��@�@���)�	@�	@�F��� 2�F�;�;�E�:?�K��.�/��7�7�	@��r1�distributionrC)�ConfigMetadataHandler�ConfigOptionsHandlerc	��tj|��5}t||||��}|���|js|j|_t|j||||j|j��}|���|j�	|j|j��ddd��n#1swxYwY||fS)a�Performs additional parsing of configuration options
    for a distribution.

    Returns a list of used option handlers.

    :param Distribution distribution:
    :param dict command_options:
    :param bool ignore_option_errors: Whether to silently ignore
        options, values of which could not be resolved (e.g. due to exceptions
        in directives such as file:, attr:, etc.).
        If False exceptions are propagated as expected.
    :rtype: list
    N)
r�EnsurePackagesDiscoveredr[�parse�package_dirrZ�metadata�src_root�_referenced_files�update)rYrCr+�ensure_discovered�options�metas      r/rBrB�s��$
�	(��	6�	6�
�:K�&��� ��	
�
��	�
�
�����'�	;�'.�':�L�$�$��!�� ���$��!�

�
��	
�
�
�����&�-�-��%�t�'=�	
�	
�	
�+
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�2��=�s�BB7�7B;�>B;�label�
orig_value�parsedc�D�d|vst|��dkrdStjt��5d�|��}t|��}|j�)d|�d|d�d�}tj|t��ddd��dS#1swxYwYdS)	amBecause users sometimes misinterpret this configuration:

    [options.extras_require]
    foo = bar;python_version<"4"

    It looks like one requirement with an environment marker
    but because there is no newline, it's parsed as two requirements
    with a semicolon as separator.

    Therefore, if:
        * input string does not contain a newline AND
        * parsed result contains two requirements AND
        * parsing of the two parts from the result ("<first>;<second>")
        leads in a valid Requirement with a valid marker
    a UserWarning is shown to inform the user about the possible problem.
    �
�N�;z#One of the parsed requirements in `z*` looks like a valid environment marker: 'rz}'
Make sure that the config is correct and check https://setuptools.pypa.io/en/latest/userguide/declarative_config.html#opt-2)
�len�
contextlib�suppressr�joinr�marker�warnings�warn�UserWarning)rgrhri�original_requirements_str�req�msgs      r/�%_warn_accidental_env_marker_misconfigry�s��"�z���S��[�[�A�-�-���	�	�/�	0�	0�
,�
,�$'�H�H�V�$4�$4�!��3�4�4���:�!�_�e�_�_�;A�!�9�_�_�_�
�
�M�#�{�+�+�+�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,�
,�
,s�AB�B�Bc�B�eZdZUdZeed<	iZeeefed<	dede	de
jfd�Ze
d���Zd	�Zedd���Zed���Zed
���Zed���Zdefd�Zdefd�Zed���Zed���Zedd���Zd�Zd�Zd�ZdS)r7z1Handles metadata supplied in configuration files.rT�aliasesrFrerdc�@�i}|j}|���D]I\}}|�|��s�|�|d���d��}|||<�J||_||_||_g|_||_	t��|_dS)N��.)rT�items�
startswith�replace�stripr+rF�sectionsrSrd�setrb)	�selfrFrer+rdr�rT�section_name�section_optionss	         r/�__init__zConfigHandler.__init__�s���')���,��-4�]�]�_�_�	5�	5�)�L�/��*�*�>�:�:�
��'�/�/���C�C�I�I�#�N�N�L�%4�H�\�"�"�$8��!�$��� ��
�&(���!2���+.�5�5���	�	r1c�:�td|jjz���)�.Metadata item name to parser function mapping.z!%s must provide .parsers property)�NotImplementedError�	__class__�__name__)r�s r/�parserszConfigHandler.parserss#��"�/�$�.�2I�I�
�
�	
r1c���t��}|j}|j�||��}t	|||��}||urt|���|rdSd}|j�|��}|r'	||��}n#t$r
d}|js�YnwxYw|rdSt	|d|zd��}|�t|||��n||��|j
�|��dS)NFTzset_%s)�tuplerFr{�getrL�KeyErrorr��	Exceptionr+�setattrrS�append)	r��option_namerX�unknownrF�
current_value�skip_option�parser�setters	         r/�__setitem__zConfigHandler.__setitem__	s9���'�'���_�
��l�&�&�{�K�@�@���
�K��A�A�
��G�#�#��;�'�'�'��	��F�����!�!�+�.�.���	�
���u�
�
�����
�
�
�"���0�����
����
�	��F���X��%;�T�B�B���>��J��U�3�3�3�3��F�5�M�M�M������,�,�,�,�,s�8B�B�B�,c��t|t��r|Sd|vr|���}n|�|��}d�|D��S)z�Represents value as a list.

        Value is split either by separator (defaults to comma) or by lines.

        :param value:
        :param separator: List items separator character.
        :rtype: list
        rkc�^�g|]*}|����|�����+Sr5�r�)�.0�chunks  r/�
<listcomp>z-ConfigHandler._parse_list.<locals>.<listcomp>As-��B�B�B�%�E�K�K�M�M�B����
�
�B�B�Br1)�
isinstance�list�
splitlines�split)�clsrX�	separators   r/�_parse_listzConfigHandler._parse_list/s\���e�T�"�"�	��L��5�=�=��$�$�&�&�E�E��K�K�	�*�*�E�B�B�5�B�B�B�Br1c���d}i}|�|��D]\}|�|��\}}}||krtd|z���|���||���<�]|S)zPRepresents value as a dict.

        :param value:
        :rtype: dict
        �=z(Unable to parse option value to dict: %s)r��	partitionrr�)r�rXr��result�linerG�sep�vals        r/�_parse_dictzConfigHandler._parse_dictCs����	����O�O�E�*�*�	.�	.�D� �N�N�9�5�5�M�C��c��i���*�>��F����#&�)�)�+�+�F�3�9�9�;�;����
r1c�2�|���}|dvS)zQRepresents value as boolean.

        :param value:
        :rtype: bool
        )�1�true�yes)�lower�r�rXs  r/�_parse_boolzConfigHandler._parse_boolVs�����
�
���,�,�,r1c����fd�}|S)z�Returns a parser function to make sure field inputs
        are not files.

        Parses a value after getting the key so error messages are
        more informative.

        :param key:
        :rtype: callable
        c�z��d}|�|��r"td�������|S)N�file:zCOnly strings are accepted for the {0} field, files are not accepted)r��
ValueErrorrI)rX�exclude_directiverGs  �r/r�z3ConfigHandler._exclude_files_parser.<locals>.parserlsI��� '����� 1�2�2�
� �-�-3�V�C�[�[�����Lr1r5)r�rGr�s ` r/�_exclude_files_parserz#ConfigHandler._exclude_files_parser`s#���	�	�	�	�	��
r1�root_dirc�,�d}t|t��s|S|�|��s|S|t|��d�}d�|�d��D��}|j�|��tj||��S)aORepresents value as a string, allowing including text
        from nearest files using `file:` directive.

        Directive is sandboxed and won't reach anything outside
        directory with setup.py.

        Examples:
            file: README.rst, CHANGELOG.md, src/file.txt

        :param str value:
        :rtype: str
        r�Nc�6�g|]}|�����Sr5r�)r�r;s  r/r�z-ConfigHandler._parse_file.<locals>.<listcomp>�s ��>�>�>�d�T�Z�Z�\�\�>�>�>r1r�)	r�r r�rnr�rbrcr�
read_files)r�rXr��include_directive�spec�	filepathss      r/�_parse_filezConfigHandler._parse_filews���$���%��%�%�	��L���� 1�2�2�	��L��S�*�+�+�-�-�.��>�>�d�j�j��o�o�>�>�>�	���%�%�i�0�0�0�� ��H�5�5�5r1c���d}|�|��s|S|�|d��}|�|jj��tj|||��S)z�Represents value as a module attribute.

        Examples:
            attr: package.attr
            attr: package.module.attr

        :param str value:
        :rtype: str
        zattr:r})r�r�rcrdr_r�	read_attr)r�rXr_r��attr_directive�	attr_descs      r/�_parse_attrzConfigHandler._parse_attr�sh��!������/�/�	��L��M�M�.�"�5�5�	�	���4�1�=�>�>�>���	�;��A�A�Ar1c����fd�}|S)z�Returns parser function to represents value as a list.

        Parses a value applying given methods one after another.

        :param parse_methods:
        :rtype: callable
        c�,��|}�D]
}||��}�|S�Nr5)rXri�method�
parse_methodss   �r/r^z1ConfigHandler._get_parser_compound.<locals>.parse�s+����F�'�
(�
(����������Mr1r5)r�r�r^s ` r/�_get_parser_compoundz"ConfigHandler._get_parser_compound�s#���	�	�	�	�	��r1c�b�i}|���D]\}\}}|||��||<�|S)aParses section options into a dictionary.

        Applies a given parser to each option in a section.

        :param dict section_options:
        :param callable values_parser: function with 2 args corresponding to key, value
        :rtype: dict
        )r)r�r��
values_parserrXrG�_r�s       r/�_parse_section_to_dict_with_keyz-ConfigHandler._parse_section_to_dict_with_key�sH����,�2�2�4�4�	1�	1�M�C��!�S�&��s�C�0�0�E�#�J�J��r1Nc�D���r�fd�nd�}|�||��S)aParses section options into a dictionary.

        Optionally applies a given parser to each value.

        :param dict section_options:
        :param callable values_parser: function with 1 arg corresponding to option value
        :rtype: dict
        c����|��Sr�r5)r��vr�s  �r/�<lambda>z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>�s���}�}�Q�/�/�r1c��|Sr�r5)r�r�s  r/r�z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>�s��UV�r1�r�)r�r�r�r�s  ` r/�_parse_section_to_dictz$ConfigHandler._parse_section_to_dict�s7���5B�W�/�/�/�/�/�����2�2�?�F�K�K�Kr1c��|���D]>\}\}}tjt��5|||<ddd��n#1swxYwY�?dS)zQParses configuration file section.

        :param dict section_options:
        N)rrorpr�)r�r��namer�rXs     r/�
parse_sectionzConfigHandler.parse_section�s���
#2�"7�"7�"9�"9�	#�	#��T�:�A�u��$�X�.�.�
#�
#�"��T�
�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#��	#�	#s�A�A	�A	c��|j���D]^\}}d}|rd|z}t|d|z�dd��d��}|�t	d|j�d|�d����||���_dS)	zTParses configuration file items from one
        or more related sections.

        r}z_%szparse_section%sr~�__Nz*Unsupported distribution option section: [�])r�rrLr�rrT)r�r�r��method_postfix�section_parser_methods     r/r^zConfigHandler.parse�s���
.2�]�-@�-@�-B�-B�	3�	3�)�L�/��N��
6�!&��!5��8?��"�^�3�<�<�S�$�G�G��	9�9�!�%�,�*�*��*�*�*�L�L�L�:����

"�!�/�2�2�2�2�'	3�	3r1c�D����t������fd���}|S)z�this function will wrap around parameters that are deprecated

        :param msg: deprecation message
        :param warning_class: class of warning exception to be raised
        :param func: function to be wrapped around
        c�>��tj�����|i|��Sr�)rsrt)�args�kwargs�funcrx�
warning_classs  ���r/�config_handlerz@ConfigHandler._deprecated_config_handler.<locals>.config_handlers*����M�#�}�-�-�-��4��(��(�(�(r1r)r�r�rxr�r�s ``` r/�_deprecated_config_handlerz(ConfigHandler._deprecated_config_handler�sB�����
�t���	)�	)�	)�	)�	)�	)�
��	)��r1)r�r�)r��
__module__�__qualname__�__doc__r �__annotations__r{r
r!�AllCommandOptionsrr]r��propertyr�r��classmethodr�r�r�r��_Pathr�r�r�r�r�r�r^r�r5r1r/r7r7�s��������;�;������
!�G�T�#�s�(�^� � � �����#��
"�:�����6�
�
��X�
�$-�$-�$-�L�C�C�C��[�C�&����[��$�-�-��[�-�����[��,6�5�6�6�6�6�4B��B�B�B�B�(����[��&����[���
L�
L�
L��[�
L�#�#�#�3�3�3�4
�
�
�
�
r1r7c
���eZdZdZddddd�ZdZ	dejfd	d
dede	d
e
jdee
def�fd�
Zed���Zd�Z�xZS)rZr`�url�description�classifiers�	platforms)�	home_page�summary�
classifier�platformFNrFrrer+rdr_r�c�l��t���||||��||_||_dSr�)�superr�r_r�)r�rFrer+rdr_r�r�s       �r/r�zConfigMetadataHandler.__init__s8���	������W�.B�DU�V�V�V�&��� ��
�
�
r1c�@�|j}t|j|j���}|j}|j}||||�|dt��||�||��|d��|�|d��dt��||||j	|d�
S)r��r�z[The requires parameter is deprecated, please use install_requires for runtime dependencies.�license�license_filezDThe license_file parameter is deprecated, use license_files instead.)
r��keywords�provides�requires�	obsoletesr�rr�
license_filesr��long_description�version�project_urls)
r�rr�r�r�r�r�rr��_parse_version)r��
parse_list�
parse_file�
parse_dict�exclude_files_parsers     r/r�zConfigMetadataHandler.parsers's����%�
��T�-��
�F�F�F�
��%�
�#�9��$�"�"��7�7��=�,�	��$��4�4�Z��L�L�+�+�I�6�6� �;�;�$�$�^�4�4�-�,�	��(�%� *��*�&�/
�
�	
r1c	�d�|�||j��}||kr]|���}	t|��n6#t$r)d}t|jdit�������wxYw|Stj	|�
||j|j����S)zSParses `version` option value.

        :param value:
        :rtype: str

        zCVersion loaded from {value} does not comply with PEP 440: {version}r5)r�r�r�rrrrIrJrrr�r_)r�rXr�tmpls    r/r
z$ConfigMetadataHandler._parse_versionIs����"�"�5�$�-�8�8���e����m�m�o�o�G�
D��� � � � ��!�
D�
D�
D�5��+�;�4�;�+B�+B����+B�+B�C�C�C�
D�����N��~�d�.�.�u�d�6F��
�V�V�W�W�Ws�A�3A:)r�r�r�rTr{�strict_moder:�curdirr��boolrr]rrRr�r�r�r�r
�
__classcell__�r�s@r/rZrZ	s���������N�� �#��	��G��K��'+��)�!�!�*�!�#�!�#�	!�
"�:�!��d�^�
!��!�!�!�!�!�!��
�
��X�
�BX�X�X�X�X�X�Xr1rZrc���eZdZdZdddededejf�fd�Ze	d���Z
d�Zd	ed
efd�Z
ed���Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z�xZS)r[rerFrr+rdc�v��t���||||��|j|_i|_dSr�)rr�rar�r_)r�rFrer+rdr�s     �r/r�zConfigOptionsHandler.__init__hs=���	������W�.B�DU�V�V�V�"�+��
�+-����r1c�0�|�|d���S)Nrm)r�)r�r�s  r/�_parse_list_semicolonz*ConfigOptionsHandler._parse_list_semicolonss�����u���4�4�4r1c�:�|�||j���S)Nr)r�r�)r�rXs  r/�_parse_file_in_rootz(ConfigOptionsHandler._parse_file_in_rootws�������
��>�>�>r1rgrXc��|�|�|����}t|||��d�|D��S)Nc�<�g|]}|�d���|��S)�#)r�)r�r�s  r/r�zAConfigOptionsHandler._parse_requirements_list.<locals>.<listcomp>�s)��D�D�D��t���s�/C�/C�D��D�D�Dr1)rrry)r�rgrXris    r/�_parse_requirements_listz-ConfigOptionsHandler._parse_requirements_listzsL���+�+�D�,D�,D�U�,K�,K�L�L��-�e�U�F�C�C�C�E�D��D�D�D�Dr1c���|j}|j}|j}|j}|||||||�|dt
��t
|jd��|j|j|j	|j
|t|d�S)r�zeThe namespace_packages parameter is deprecated, consider using implicit namespaces instead (PEP 420).�install_requires)�zip_safe�include_package_datar_�scripts�eager_resources�dependency_links�namespace_packagesr$�setup_requires�
tests_require�packages�entry_points�
py_modules�python_requires�cmdclass)r�r�r��_parse_cmdclassr�rrr"r�_parse_packagesrr)r�r�
parse_boolr�parse_cmdclasss     r/r�zConfigOptionsHandler.parsers�s����%�
��%�
��%�
��-��#�$.�%�!�)� *�"&�"A�"A��H�,�	#�#�!(��-�/A�!�!�#�8�!�7��,� �4�$�+�&�-
�
�	
r1c�v�|jj}tj|�|��||j��Sr�)rdr_rr1r�r�)r�rXr_s   r/r2z$ConfigOptionsHandler._parse_cmdclass�s1���,�8����t�/�/��6�6��T�]�S�S�Sr1c�:�ddg}|���}||vr|�|��S|�|j�di����}|�||dk|j|j���tj	di|��S)zTParses `packages` option value.

        :param value:
        :rtype: list
        zfind:zfind_namespace:z
packages.findr)�
namespacesr��fill_package_dirr5)
r�r��parse_section_packages__findr�r�rcr�r_r�
find_packages)r�rX�find_directives�
trimmed_value�find_kwargss     r/r3z$ConfigOptionsHandler._parse_packages�s���#�$5�6�����
�
�
���/�/��#�#�E�*�*�*��7�7��M���o�r�2�2�
�
��	���%���);�;��]�!�-�	�	
�	
�	
��#�2�2�k�2�2�2r1c����|�||j��}gd��t�fd�|���D����}|�d��}|�|d|d<|S)z�Parses `packages.find` configuration file section.

        To be used in conjunction with _parse_packages().

        :param dict section_options:
        )�where�include�excludec�*��g|]\}}|�v�	|�||f��Sr5r5)r��kr��
valid_keyss   �r/r�zEConfigOptionsHandler.parse_section_packages__find.<locals>.<listcomp>�s*���N�N�N���1��Z���A��a��V���r1r@Nr)r�r�rRrr�)r�r��section_datar>r@rEs     @r/r:z1ConfigOptionsHandler.parse_section_packages__find�s�����2�2�?�D�DT�U�U��4�4�4�
��N�N�N�N�� 2� 2� 4� 4�N�N�N�
�
������(�(����#(��8�K�� ��r1c�F�|�||j��}||d<dS)z`Parses `entry_points` configuration file section.

        :param dict section_options:
        r.N)r�r��r�r�ris   r/�parse_section_entry_pointsz/ConfigOptionsHandler.parse_section_entry_points�s,��
�,�,�_�d�>N�O�O��%��^���r1c�`�|�||j��}tj|��Sr�)r�r�r�canonic_package_data)r�r��package_datas   r/�_parse_package_dataz(ConfigOptionsHandler._parse_package_data�s+���2�2�?�D�DT�U�U���*�<�8�8�8r1c�6�|�|��|d<dS)z`Parses `package_data` configuration file section.

        :param dict section_options:
        rLN�rM�r�r�s  r/�parse_section_package_dataz/ConfigOptionsHandler.parse_section_package_data�s"��
 $�7�7��H�H��^���r1c�6�|�|��|d<dS)zhParses `exclude_package_data` configuration file section.

        :param dict section_options:
        �exclude_package_dataNrOrPs  r/�"parse_section_exclude_package_dataz7ConfigOptionsHandler.parse_section_exclude_package_data�s#��
(,�'?�'?��'P�'P��
#�$�$�$r1c�D����|�fd���}|�d<dS)zbParses `extras_require` configuration file section.

        :param dict section_options:
        c�8����d|�d�|��S)Nzextras_require[r�)r")rDr�r�s  �r/r�zCConfigOptionsHandler.parse_section_extras_require.<locals>.<lambda>�s#����6�6�7M��7M�7M�7M�q�Q�Q�r1�extras_requireNr�rHs`  r/�parse_section_extras_requirez1ConfigOptionsHandler.parse_section_extras_require�s<���
�5�5��Q�Q�Q�Q�
�
��
"(��
���r1c�v�|�||j��}tj||j��|d<dS)z^Parses `data_files` configuration file section.

        :param dict section_options:
        �
data_filesN)r�r�r�canonic_data_filesr�rHs   r/�parse_section_data_filesz-ConfigOptionsHandler.parse_section_data_files�s;��
�,�,�_�d�>N�O�O��#�6�v�t�}�M�M��\���r1)r�r�r�rTr�rrr]r�r�rrr r"r�r�r2r3r:rIrMrQrTrXr\rrs@r/r[r[dsp��������N�	.�"�	.�#�	.�#�		.�
"�:�	.�	.�	.�	.�	.�	.��5�5��[�5�?�?�?�E�c�E�#�E�E�E�E��
�
��X�
�@T�T�T�3�3�3�2���*&�&�&�9�9�9�I�I�I�Q�Q�Q�
(�
(�
(�N�N�N�N�N�N�Nr1r[)FF)r5F)F)<r�r:rorKrs�collectionsrrr�typingrrr	r
rrr
rrrrr�distutils.errorsrr�(setuptools.extern.packaging.requirementsrr�#setuptools.extern.packaging.versionrr�&setuptools.extern.packaging.specifiersr�setuptools._deprecation_warningrr}rr&r�distutils.distrr �PathLiker��SingleCommandOptionsr�r!rRr0r4rr(rPr)rBr�ryr7rZr[r5r1r/�<module>rgs1����

�	�	�	�������������#�#�#�#�#�#�������������:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�F�E�E�E�E�E�E�E�T�T�T�T�T�T�T�T�G�G�G�G�G�G�G�G�?�?�?�?�?�?�H�H�H�H�H�H��������4�,�,�,�,�,�,�3�3�3�3�3�3�
�c�2�;�����E�5����#4�4�5���
�� 4�4�5��	����'M�!N�	O�	O�	O��
��+�+��+�
�	+�+�+�+�8�n����.�����$&�!&���
��$)���%������� �	����:	�F�	��	�	�	�	��E�*>�$?��D�����*�+�+� �+�&�+��:�;�	+�+�+�+�\,��,�#�,�t�,�,�,�,�Bo�o�o�o�o�G�F�O�o�o�o�d	XX�XX�XX�XX�XX�M�*@�A�XX�XX�XX�v]N�]N�]N�]N�]N�=��8�]N�]N�]N�]N�]Nr1