� ,�Re ���dZddlZddlZddlZgd�Zdd�Zdd�Zd�Zd�Zd �Z d �Z d �Z ej d ��Z ej d ��Zd�Zd�Zd�ZdS)z� Filename globbing utility. Mostly a copy of `glob` from Python 3.5. Changes include: * `yield from` and PEP3102 `*` removed. * Hidden files are not ignored. �N)�glob�iglob�escapeFc�>�tt||�����S)ayReturn a list of paths matching a pathname pattern. The pattern may contain simple shell-style wildcards a la fnmatch. However, unlike fnmatch, filenames starting with a dot are special cases that are not matched by '*' and '?' patterns. If recursive is true, the pattern '**' will match any files and zero or more directories and subdirectories. )� recursive)�listr)�pathnamers ��/builddir/build/BUILDROOT/alt-python311-setuptools-65.6.3-2.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/setuptools/glob.pyrrs�� ��h�)�4�4�4� 5� 5�5�c�n�t||��}|r"t|��rt|��}|rJ�|S)a�Return an iterator which yields the paths matching a pathname pattern. The pattern may contain simple shell-style wildcards a la fnmatch. However, unlike fnmatch, filenames starting with a dot are special cases that are not matched by '*' and '?' patterns. If recursive is true, the pattern '**' will match any files and zero or more directories and subdirectories. )�_iglob� _isrecursive�next)r r�it�ss r rrsC�� ��)� $� $�B���\�(�+�+�� ��H�H��� � � � �Ir c#�VK�tj�|��\}}|rt|��rtnt }t |��sK|r$tj�|��r|V�n#tj�|��r|V�dS|s|||��Ed{V��dS||kr t |��rt||��}n|g}t |��st}|D]3}|||��D]$}tj� ||��V��%�4dS�N) �os�path�splitr�glob2�glob1� has_magic�lexists�isdirr �glob0�join)r r�dirname�basename� glob_in_dir�dirs�names r r r 0sg������ � �h�/�/��G�X�$�J��h�)?�)?�J�%�%�U�K� �X� � �� � ��w���x�(�(� �������w�}�}�W�%�%� ������� ���;�w��1�1�1�1�1�1�1�1�1����(���y��1�1���g�y�)�)����y�� �X� � ��� ��.�.���K���2�2� .� .�D��'�,�,�w��-�-� -� -� -� -� .�.�.r c��|sAt|t��r tj�d��}n tj} tj|��}n#t $rgcYSwxYwtj||��S�N�ASCII) � isinstance�bytesr�curdir�encode�listdir�OSError�fnmatch�filter)r�pattern�namess r rrTs��� � � �g�u� %� %� ��i�&�&�w�/�/�G�G��i�G��� �7�#�#���� ����� � � ����� �>�%�� )� )�)s�A� A)�(A)c���|s#tj�|��r|gSn@tj�tj�||����r|gSgSr)rrrrr)rrs r rrasd�� �� �7�=�=�� !� !� ��:� � � �7�?�?�2�7�<�<���:�:� ;� ;� ��:� � �Ir c#�pK�t|��sJ�|dd�V�t|��D]}|V��dS)Nr)r� _rlistdir)rr.�xs r rrqsZ���� �� � � � � � �"�1�"�+���� �w� � ����������r c#�K�|sAt|t��r tj�d��}n tj} tj|��}n#tj$rYdSwxYw|D]^}|V�|r tj�||��n|}t|��D]$}tj�||��V��%�_dSr$) r&r'rr(r)r*�errorrrr2)rr/r3r�ys r r2r2ys����� � � �g�u� %� %� ��i�&�&�w�/�/�G�G��i�G��� �7�#�#���� �8����������� �%�%������+2�9�r�w�|�|�G�Q�'�'�'����4��� %� %�A��'�,�,�q�!�$�$� $� $� $� $� %�%�%s�A�A/�.A/z([*?[])s([*?[])c��t|t��rt�|��}nt�|��}|duSr)r&r'�magic_check_bytes�search� magic_check)r�matchs r rr�sG���!�U���&�!�(�(��+�+����"�"�1�%�%�� �� �r c�D�t|t��r|dkS|dkS)Ns**z**)r&r')r.s r rr�s)���'�5�!�!���%����$��r c���tj�|��\}}t|t��rt �d|��}nt�d|��}||zS)z#Escape all special characters. s[\1]z[\1])rr� splitdriver&r'r8�subr:)r �drives r rr�sd�� �g�(�(��2�2�O�E�8��(�E�"�"�6�$�(�(��8�<�<����?�?�7�H�5�5�� �8� �r )F)�__doc__r�rer,�__all__rrr rrrr2�compiler:r8rrr�r r �rFs���� � � � � � � � ����� %� %� %�� 6� 6� 6� 6�����$.�.�.�H *� *� *� � � � ���%�%�%�"�b�j��#�#� ��B�J�z�*�*�������� � � � � r