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/config/__pycache__/setupcfg.cpython-311.pyc
�

�ncnb���dZddlZddlZddlZddlZddlmZddlmZddlmZddl	m
Z
mZmZm
Z
mZmZmZmZmZmZmZddlmZmZddlmZmZdd	lmZmZdd
lmZddl 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�Z/ddde*ddfd�Z0		d5ddde*dee*de1dedf
d�Z2d e-d!e(fd"�Z3d#edde.fd$�Z4	d6d%dd&e,ded'fd(�Z5d)e(d*e(d+e6fd,�Z7Gd-�d.ee-��Z8Gd/�d0e8d1��Z9Gd2�d3e8d��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�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       �<D:\Python311\Lib\site-packages\setuptools/config/setupcfg.py�read_configurationr/(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_configurationr3Ds+���4������������Kr0��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%r8�os�path�abspath�isfiler�getcwd�chdir�dirname�parse_config_files�parse_configuration�command_options�_finalize_license_files)r+r"r5r*r8�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}r4)�format�locals�	functoolsr�getattr)rErF�getter_name�by_attribute�getters     r.�_get_optionrOjsP��%�+�$�0�0�v�x�x�0�0�K��$�W�j�#�>�>�L�
�Z��l�
;�
;�F��6�8�8�Or0r-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_optionsrOrE�section_prefix)r-�config_dict�handler�option�values     r.r(r(vsk��$�D�)�)�K��@�@���)�	@�	@�F��� 2�F�;�;�E�:?�K��.�/��7�7�	@��r0�distributionrB)�ConfigMetadataHandler�ConfigOptionsHandlerc	�B�tj|��5}t||||��}|���|js|j|_t|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�EnsurePackagesDiscoveredrZ�parse�package_dirrY�metadata�src_root)rXrBr*�ensure_discovered�options�metas      r.rArA�s���$
�	(��	6�	6��:K�&��� ��	
�
��	�
�
�����'�	;�'.�':�L�$�$��!�� ���$��!�

�
��	
�
�
����)������������������,��=�s�A1B�B�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)rdrerf�original_requirements_str�req�msgs      r.�%_warn_accidental_env_marker_misconfigrv�s��"�z���S��[�[�A�-����	�	�/�	0�	0�
,�
,�$'�H�H�V�$4�$4�!��3�4�4���:�	,�_�e�_�_�;A�!�9�_�_�_�
�
�M�#�{�+�+�+�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,�
,�
,s�AB�B�Bc�R�eZdZUdZeed<	iZeeefed<	dede	de
jfd�Ze
d���Zd	�Zedd���Zed���Zed
���Zed���Zedefd���Zdefd�Zed���Zed���Zedd���Zd�Zd�Zd�ZdS)r6z1Handles metadata supplied in configuration files.rS�aliasesrErbrac��i}|j}|���D]I\}}|�|��s�|�|d���d��}|||<�J||_||_||_g|_||_	dS)N��.)
rS�items�
startswith�replace�stripr*rE�sectionsrRra)	�selfrErbr*rar�rS�section_name�section_optionss	         r.�__init__zConfigHandler.__init__�s���')���,��-4�]�]�_�_�	5�	5�)�L�/��*�*�>�:�:�
��'�/�/���C�C�I�I�#�N�N�L�%4�H�\�"�"�$8��!�$��� ��
�&(���!2����r0c�:�td|jjz���)�.Metadata item name to parser function mapping.z!%s must provide .parsers property)�NotImplementedError�	__class__�__name__)r�s r.�parserszConfigHandler.parsers�s#��"�/�$�.�2I�I�
�
�	
r0c���t��}|j}|j�||��}t	|||��}||urt|���|rdSd}|j�|��}|r'	||��}n#t$r
d}|js�YnwxYw|rdSt	|d|zd��}|�t|||��n||��|j
�|��dS)NFTzset_%s)�tuplerErx�getrK�KeyErrorr��	Exceptionr*�setattrrR�append)	r��option_namerW�unknownrE�
current_value�skip_option�parser�setters	         r.�__setitem__zConfigHandler.__setitem__s>���'�'���_�
��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
        rhc�^�g|]*}|����|�����+Sr4�r)�.0�chunks  r.�
<listcomp>z-ConfigHandler._parse_list.<locals>.<listcomp>:s-��B�B�B�%�E�K�K�M�M�B����
�
�B�B�Br0)�
isinstance�list�
splitlines�split)�clsrW�	separators   r.�_parse_listzConfigHandler._parse_list(s_���e�T�"�"�	��L��5�=�	+��$�$�&�&�E�E��K�K�	�*�*�E�B�B�5�B�B�B�Br0c���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�rWr��result�linerF�sep�vals        r.�_parse_dictzConfigHandler._parse_dict<s����	����O�O�E�*�*�	.�	.�D� �N�N�9�5�5�M�C��c��i��
�*�>��F����#&�)�)�+�+�F�3�9�9�;�;����
r0c�2�|���}|dvS)zQRepresents value as boolean.

        :param value:
        :rtype: bool
        )�1�true�yes)�lower�r�rWs  r.�_parse_boolzConfigHandler._parse_boolOs�����
�
���,�,�,r0c����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}�
ValueErrorrH)rW�exclude_directiverFs  �r.r�z3ConfigHandler._exclude_files_parser.<locals>.parseresI��� '����� 1�2�2�
� �-�-3�V�C�[�[�����Lr0r4)r�rFr�s ` r.�_exclude_files_parserz#ConfigHandler._exclude_files_parserYs#���	�	�	�	�	��
r0�root_dirc��d}t|t��s|S|�|��s|S|t|��d�}d�|�d��D��}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�Nc3�>K�|]}|���V��dS�Nr�)r�r:s  r.�	<genexpr>z,ConfigHandler._parse_file.<locals>.<genexpr>�s*����>�>�d�T�Z�Z�\�\�>�>�>�>�>�>r0r�)r�rr}rkr�r�
read_files)r�rWr��include_directive�spec�	filepathss      r.�_parse_filezConfigHandler._parse_fileps���$���%��%�%�	��L���� 1�2�2�	��L��S�*�+�+�-�-�.��>�>�d�j�j��o�o�>�>�>�	�� ��H�5�5�5r0c���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:rz)r}r~�updaterar^r�	read_attr)r�rWr^r��attr_directive�	attr_descs      r.�_parse_attrzConfigHandler._parse_attr�sh��!������/�/�	��L��M�M�.�"�5�5�	�	���4�1�=�>�>�>���	�;��A�A�Ar0c����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]
}||��}�|Sr�r4)rWrf�method�
parse_methodss   �r.r]z1ConfigHandler._get_parser_compound.<locals>.parse�s+����F�'�
(�
(����������Mr0r4)r�r�r]s ` r.�_get_parser_compoundz"ConfigHandler._get_parser_compound�s#���	�	�	�	�	��r0c�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_parserrWrF�_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��r0Nc�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�r4)r��vr�s  �r.�<lambda>z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>�s���}�}�Q�/�/�r0c��|Sr�r4)r�r�s  r.r�z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>�s��UV�r0�r�)r�r�r�r�s  ` r.�_parse_section_to_dictz$ConfigHandler._parse_section_to_dict�s7���5B�W�/�/�/�/�/�����2�2�?�F�K�K�Kr0c��|���D]>\}\}}tjt��5|||<ddd��n#1swxYwY�?dS)zQParses configuration file section.

        :param dict section_options:
        N)r|rlrmr�)r�r��namer�rWs     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.

        rzz_%szparse_section%sr{�__Nz*Unsupported distribution option section: [�])r�r|rKr~rrS)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�	3r0c�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�)rprq)�args�kwargs�funcru�
warning_classs  ���r.�config_handlerz@ConfigHandler._deprecated_config_handler.<locals>.config_handler�s*����M�#�}�-�-�-��4��(��(�(�(r0r)r�r�rur�r�s ``` r.�_deprecated_config_handlerz(ConfigHandler._deprecated_config_handler�sB�����
�t���	)�	)�	)�	)�	)�	)�
��	)��r0)r�r�)r��
__module__�__qualname__�__doc__r�__annotations__rxr
r �AllCommandOptionsrr\r��propertyr�r��classmethodr�r�r�r��_Pathr�r�r�r�r�r�r]r�r4r0r.r6r6�s��������;�;������
!�G�T�#�s�(�^� � � ��3��3�#�3�
"�:�3�3�3�3�.�
�
��X�
�$-�$-�$-�L�C�C�C��[�C�&����[��$�-�-��[�-�����[��,�6�%�6�6�6��[�6�2B��B�B�B�B�(����[��&����[���
L�
L�
L��[�
L�#�#�#�3�3�3�4
�
�
�
�
r0r6c
���eZdZdZddddd�ZdZ	dejfd	d
dede	d
e
jdee
def�fd�
Zed���Zd�Z�xZS)rYr_�url�description�classifiers�	platforms)�	home_page�summary�
classifier�platformFNrErrbr*rar^r�c�l��t���||||��||_||_dSr�)�superr�r^r�)r�rErbr*rar^r�r�s       �r.r�zConfigMetadataHandler.__init__s8���	������W�.B�DU�V�V�V�&��� ��
�
�
r0c�@�|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�-�,�	��(�%� *��*�&�/
�
�	
r0c	�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}r4)r�r�rrrrrHrIrr	r�r^)r�rWr	�tmpls    r.rz$ConfigMetadataHandler._parse_versionBs����"�"�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�rSrx�strict_moder9�curdirr��boolrr\rrQr�r�r�r�r�
__classcell__�r�s@r.rYrYs���������N�� �#��	��G��K��'+��)�!�!�*�!�#�!�#�	!�
"�:�!��d�^�
!��!�!�!�!�!�!��
�
��X�
�BX�X�X�X�X�X�Xr0rYrc���eZdZdZdddededejf�fd�Ze	d���Z
d�Zd	ed
efd�Z
ed���Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z�xZS)rZrbrErr*rac�v��t���||||��|j|_i|_dSr�)r�r�r`r�r^)r�rErbr*rar�s     �r.r�zConfigOptionsHandler.__init__as=���	������W�.B�DU�V�V�V�"�+��
�+-����r0c�0�|�|d���S)Nrj)r�)r�r�s  r.�_parse_list_semicolonz*ConfigOptionsHandler._parse_list_semicolonls�����u���4�4�4r0c�:�|�||j���S)Nr)r�r�)r�rWs  r.�_parse_file_in_rootz(ConfigOptionsHandler._parse_file_in_rootps�������
��>�>�>r0rdrWc��|�|�|����}t|||��d�|D��S)Nc�<�g|]}|�d���|��S)�#)r})r�r�s  r.r�zAConfigOptionsHandler._parse_requirements_list.<locals>.<listcomp>ys)��D�D�D��t���s�/C�/C�D��D�D�Dr0)rrrv)r�rdrWrfs    r.�_parse_requirements_listz-ConfigOptionsHandler._parse_requirements_listssL���+�+�D�,D�,D�U�,K�,K�L�L��-�e�U�F�C�C�C�E�D��D�D�D�Dr0c���|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�$�+�&�-
�
�	
r0c�v�|jj}tj|�|��||j��Sr�)rar^rr/r�r�)r�rWr^s   r.r0z$ConfigOptionsHandler._parse_cmdclass�s1���,�8����t�/�/��6�6��T�]�S�S�Sr0c�:�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_dirr4)
rr��parse_section_packages__findr�r�r�r�r^r�
find_packages)r�rW�find_directives�
trimmed_value�find_kwargss     r.r1z$ConfigOptionsHandler._parse_packages�s���#�$5�6�����
�
�
���/�	+��#�#�E�*�*�*��7�7��M���o�r�2�2�
�
��	���%���);�;��]�!�-�	�	
�	
�	
��#�2�2�k�2�2�2r0c����|�||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��Sr4r4)r��kr��
valid_keyss   �r.r�zEConfigOptionsHandler.parse_section_packages__find.<locals>.<listcomp>�s/���N�N�N���1��Z��N�A�N�a��V�N�N�Nr0r>Nr)r�r�rQr|r�)r�r��section_datar<r>rCs     @r.r8z1ConfigOptionsHandler.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�� ��r0c�F�|�||j��}||d<dS)z`Parses `entry_points` configuration file section.

        :param dict section_options:
        r,N)r�r��r�r�rfs   r.�parse_section_entry_pointsz/ConfigOptionsHandler.parse_section_entry_points�s,��
�,�,�_�d�>N�O�O��%��^���r0c�`�|�||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�8r0c�6�|�|��|d<dS)z`Parses `package_data` configuration file section.

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

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

        :param dict section_options:
        c�8����d|�d�|��S)Nzextras_require[r�)r )rBr�r�s  �r.r�zCConfigOptionsHandler.parse_section_extras_require.<locals>.<lambda>�s#����6�6�7M��7M�7M�7M�q�Q�Q�r0�extras_requireNr�rFs`  r.�parse_section_extras_requirez1ConfigOptionsHandler.parse_section_extras_require�s<���
�5�5��Q�Q�Q�Q�
�
��
"(��
���r0c�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�rFs   r.�parse_section_data_filesz-ConfigOptionsHandler.parse_section_data_files�s;��
�,�,�_�d�>N�O�O��#�6�v�t�}�M�M��\���r0)r�r�r�rSr�rrr\r�r�rrrr r�r�r0r1r8rGrKrOrRrVrZrrs@r.rZrZ]sp��������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�Nr0rZ)FF)r4F)F);r�r9rlrJrp�collectionsrrr�typingrrr	r
rrr
rrrr�distutils.errorsrr�(setuptools.extern.packaging.requirementsrr�#setuptools.extern.packaging.versionrr�&setuptools.extern.packaging.specifiersr�setuptools._deprecation_warningrrzrr%r�distutils.distrr�PathLiker��SingleCommandOptionsr�r rQr/r3rr'rOr(rAr�rvr6rYrZr4r0r.�<module>res'����

�	�	�	�������������#�#�#�#�#�#�������������5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�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�����*�(�(� �(�&�(��:�;�	(�(�(�(�V,��,�#�,�t�,�,�,�,�Bk�k�k�k�k�G�F�O�k�k�k�\	XX�XX�XX�XX�XX�M�*@�A�XX�XX�XX�v]N�]N�]N�]N�]N�=��8�]N�]N�]N�]N�]Nr0