� ,�Re#*���ddlZddlmZddlmZmZmZGd�d��ZeeeeefeefZ Gd�d��Z Gd�d e ��Z e j j je j jjze j jjze j _e je _e je _e je _e je _e je _e je _e j e _e j j e j _e j je j _e j je j _ e j!e _"e j#e _$e j%e _&dS) �N)� filterfalse)�List�Tuple�Unionc��eZdZd�Zd�ZdS)�_lazyclasspropertyc�D�||_|j|_|j|_dS)N)�fn�__doc__�__name__)�selfr s ��/builddir/build/BUILDROOT/alt-python311-setuptools-65.6.3-2.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/unicode.py�__init__z_lazyclassproperty.__init__ s������z�� �� �� � � �c�"����t|���t�d��r(t�fd��jdd�D����ri�_|jj}|�jvr|�����j|<�j|S)N�_internc3�H�K�|]}�jt|dg��uV��dS)rN)r�getattr)�.0� superclass�clss �r� z-_lazyclassproperty.__get__..sJ�����. �. �� �K�7�:�y�"�=�=� =�. �. �. �. �. �. r�)�type�hasattr�any�__mro__rr r )r �objr�attrnames ` r�__get__z_lazyclassproperty.__get__s���� �;��s�)�)�C��s�I�&�&� �#�. �. �. �. �!�k�!�"�"�o�. �. �. �+ �+ � ��C�K��7�#�� �3�;� &� &�$(�G�G�C�L�L�C�K�� !��{�8�$�$rN)r � __module__� __qualname__rr �rrrrs2������$�$�$� %� %� %� %� %rrc��eZdZUdZgZeed<ed���Zed���Z ed���Z ed���Z ed���Z ed���Z ed ���Zd S) � unicode_seta� A set of Unicode characters, for language-specific strings for ``alphas``, ``nums``, ``alphanums``, and ``printables``. A unicode_set is defined by a list of ranges in the Unicode character set, in a class attribute ``_ranges``. Ranges can be specified using 2-tuples or a 1-tuple, such as:: _ranges = [ (0x0020, 0x007e), (0x00a0, 0x00ff), (0x0100,), ] Ranges are left- and right-inclusive. A 1-tuple of (x,) is treated as (x, x). A unicode set can also be defined using multiple inheritance of other unicode sets:: class CJK(Chinese, Japanese, Korean): pass �_rangesc ��g}|jD]S}|turnGt|dd��D]4}|�t |d|ddz�����5�Td�t t |����D��S)Nr&r#r�����rc�,�g|]}t|����Sr#)�chr�r�cs r� z1unicode_set._chars_for_ranges..?s��1�1�1�1��A���1�1�1r)rr%r�extend�range�sorted�set)r�ret�cc�rrs r�_chars_for_rangeszunicode_set._chars_for_ranges7s������+� 5� 5�B��[� � ����b�)�R�0�0� 5� 5��� � �5��A���2��� �3�3�4�4�4�4� 5�1�1��s�3�x�x� 0� 0�1�1�1�1rc�f�d�ttj|j����S)z+all non-whitespace characters in this range�)�joinr�str�isspacer5�rs r� printableszunicode_set.printablesAs%���w�w�{�3�;��0E�F�F�G�G�Grc�f�d�ttj|j����S)z'all alphabetic characters in this ranger7)r8�filterr9�isalphar5r;s r�alphaszunicode_set.alphasF�%���w�w�v�c�k�3�+@�A�A�B�B�Brc�f�d�ttj|j����S)z*all numeric digit characters in this ranger7)r8r>r9�isdigitr5r;s r�numszunicode_set.numsKrArc� �|j|jzS)z)all alphanumeric characters in this range)r@rDr;s r� alphanumszunicode_set.alphanumsPs���z�C�H�$�$rc ���d�ttd�ttj|j����dzdzdz������S)zVall characters in this range that are valid identifier characters, plus underscore '_'r7u:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºu|ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ�_)r8r0r1r>r9� isidentifierr5r;s r� identcharszunicode_set.identcharsUsr���w�w� ���G�G�F�3�#3�S�5J�K�K�L�L�R�S�U�U����� � �  �  � rc ��d�tt|jdzd�d�|jD����z������S)zu all characters in this range that are valid identifier body characters, plus the digits 0-9 r7� 0123456789c�@�g|]}d|z����|��S)rH)rIr+s rr-z.unicode_set.identbodychars..os-��V�V�V�q�c�A�g�=S�=S�=U�=U�V��V�V�Vr)r8r0r1rJr5r;s r�identbodycharszunicode_set.identbodycharscsk�� �w�w� ���N�"�#��g�g�V�V�C�$9�V�V�V������ � �  �  � rN)r r!r"r r&�UnicodeRangeList�__annotations__rr5r<r@rDrFrJrNr#rrr%r%s����������*!#�G� �"�"�"��2�2���2��H�H���H��C�C���C��C�C���C��%�%���%��  �  ���  �� � ��� � � rr%c���eZdZUdZdejfgZeed<Gd�de ��Z Gd�de ��Z Gd�d e ��Z Gd �d e ��Z Gd �d e ��ZGd�de ��ZGd�de ��ZGd�de ��ZGd�de ��ZeZGd�deee��ZGd�de ��ZGd�de ��ZGd�de ��ZGd�de ��Zd S)!�pyparsing_unicodezF A namespace class for defining common language unicode_sets. � r&c�$�eZdZUdZdgZeed<dS)�(pyparsing_unicode.BasicMultilingualPlanez,Unicode set for the Basic Multilingual Plane)rSi��r&N�r r!r"r r&rOrPr#rr�BasicMultilingualPlanerU�s8�������6�6� �% ��!� � � � � rrWc�&�eZdZUdZddgZeed<dS)�pyparsing_unicode.Latin1z/Unicode set for Latin-1 Unicode Character Range)rS�~)���r&NrVr#rr�Latin1rY�s;�������9�9� � �% ��!� � � � � rr]c�$�eZdZUdZdgZeed<dS)�pyparsing_unicode.LatinAz/Unicode set for Latin-A Unicode Character Range)�ir&NrVr#rr�LatinAr_��8�������9�9� �% ��!� � � � � rrac�$�eZdZUdZdgZeed<dS)�pyparsing_unicode.LatinBz/Unicode set for Latin-B Unicode Character Range)i�iOr&NrVr#rr�LatinBrd�rbrrec�&�eZdZUdZgd�Zeed<dS)�pyparsing_unicode.Greekz.Unicode set for Greek Unicode Character Ranges)#)iBiE)ipiw)izi)i�i�)i�)i�i�)i�i�)i�i�)i&i*)i^)i`)ifij)ii)ii)i iE)iHiM)iPiW)iY)i[)i])i_i})i�i�)i�i�)i�i�)i�i�)i�i�)i�i�)i�i�)i)!)i'i')ie�)i@i�)i�)i�iE�)i��i��r&NrVr#rr�Greekrg�s?�������8�8�$% �$% �$% ��!�$ �$ �$ �$ �$ rrhc�&�eZdZUdZgd�Zeed<dS)�pyparsing_unicode.Cyrillicz0Unicode set for Cyrillic Unicode Character Range))ii/)i�i�)i+)ix)i�-i�-)i@�ir�)it�i��)i.�i/�r&NrVr#rr�Cyrillicrj�s?�������:�:� % � % � % ��!� � � � � rrkc�&�eZdZUdZgd�Zeed<dS)�pyparsing_unicode.Chinesez/Unicode set for Chinese Unicode Character Range))i�.i�.)i�.i�.)i�1i�1)i4i�M)�Ni�)i�i�)i�im�)ip�i��)i�oi�o)i�i�)i�i;�)i@�iH�)ii֦)i�i4�)i@�i�)i �i��)i��i��)i�i�r&NrVr#rr�Chineserm�s?�������9�9�% �% �% ��!� � � � � rroc�v�eZdZUdZgZeed<Gd�de��ZGd�de��Z Gd�de��Z d S) �pyparsing_unicode.Japanesez`Unicode set for Japanese Unicode Character Range, combining Kanji, Hiragana, and Katakana rangesr&c�&�eZdZUdZddgZeed<dS)� pyparsing_unicode.Japanese.Kanjiz-Unicode set for Kanji Unicode Character Range)rni��)i0i?0r&NrVr#rr�Kanjirs�s;������� ;� ;� � �)�G�%� � � � � rrtc�&�eZdZUdZgd�Zeed<dS)�#pyparsing_unicode.Japanese.Hiraganaz0Unicode set for Hiragana Unicode Character Range))iA0i�0)�0�0)i�0)ip�)i�)iP�iR�)i�r&NrVr#rr�Hiraganarv�s?������� >� >�)�)�)�G�%� � � � � rryc�&�eZdZUdZgd�Zeed<dS)�#pyparsing_unicode.Japanese.Katakanaz1Unicode set for Katakana Unicode Character Range) )rwi�0)rxi�0)i�1i�1)i�2i�2)ie�i��)i�)id�ig�)i�i�)i�r&NrVr#rr�Katakanar{�s?������� ?� ?� )� )� )�G�%� � � � � rr|N) r r!r"r r&rOrPr%rtryr|r#rr�Japaneserq�s��������j�j�$&��!�&�&�&� � � � � �K� � � � � � � � �{� � � � � � � � �{� � � � � rr}c�&�eZdZUdZgd�Zeed<dS)�pyparsing_unicode.Hangulz7Unicode set for Hangul (Korean) Unicode Character Range))ii�)i.0i/0)i11i�1)i2i2)i`2i{2)i~2)i`�i|�)i�i��)i��i��)i��i��)i��i��)i��i��)i��i��)i��i��)i��i��r&NrVr#rr�Hangulr s?�������A�A�% �% �% ��!� � � � � rr�c��eZdZdZdS)�pyparsing_unicode.CJKzTUnicode set for combined Chinese, Japanese, and Korean (CJK) Unicode Character RangeN)r r!r"r r#rr�CJKr�"s������^�^�^�^rr�c�&�eZdZUdZddgZeed<dS)�pyparsing_unicode.Thaiz,Unicode set for Thai Unicode Character Range)ii:)i?i[r&NrVr#rr�Thair�%s;�������6�6� � �% ��!� � � � � rr�c�&�eZdZUdZgd�Zeed<dS)�pyparsing_unicode.Arabicz.Unicode set for Arabic Unicode Character Range))ii)ii�)iir&NrVr#rr�Arabicr�,s?�������8�8�% �% �% ��!� � � � � rr�c�&�eZdZUdZgd�Zeed<dS)�pyparsing_unicode.Hebrewz.Unicode set for Hebrew Unicode Character Range) )i�i�)i�i�)i�i�)i�i6�)i8�i<�)i>�)i@�iA�)iC�iD�)iF�iO�r&NrVr#rr�Hebrewr�4s?�������8�8� % � % � % ��!� � � � � rr�c�&�eZdZUdZddgZeed<dS)�pyparsing_unicode.Devanagariz2Unicode set for Devanagari Unicode Character Range)i i )i�i��r&NrVr#rr� Devanagarir�Bs;�������<�<� � �% ��!� � � � � rr�N)r r!r"r �sys� maxunicoder&rOrPr%rWr]rarerhrkror}r��Koreanr�r�r�r�r�r#rrrRrRvs���������� ��� �!�G� ���� � � � � �� � � �  � � � � �� � � � � � � � �� � � �  � � � � �� � � � & �& �& �& �& � �& �& �& �P  �  �  �  �  �;�  �  �  � � � � � �+� � � �.#�#�#�#�#�;�#�#�#�J � � � � �� � � �(�F�_�_�_�_�_�g�x��_�_�_� � � � � �{� � � � � � � � �� � � �  �  �  �  �  ��  �  �  � � � � � �[� � � � � rrR)'r�� itertoolsr�typingrrrr�intrOr%rRr}rtr&ryr|rW�BMPr��العربيةro�中文rk�кириллицаrh�Ελληνικάr��עִברִית� 日本語�漢字� カタカナ� ひらがなr�� 한국어r�� ไทยr��देवनागरीr#rr�r�s��� � � � �!�!�!�!�!�!�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�(��e�C��H�o�u�S�z�9�:�;��T �T �T �T �T �T �T �T �nQ �Q �Q �Q �Q � �Q �Q �Q �n��$�,�� �)�1�2�� �)�1�2���"� *�@���$5�#;�� �,�4���'8�'A��$�%6�%<��"�#4�#;�� �/�8���$5�$>�$D���!�*;�*D�*M���'�*;�*D�*M���'�/�6���/�4���->�-I��*�*�*r