f gv)ddlZddlmZddlmZGddZeeeeefeefZ GddZ Gdd e Z dS) N) filterfalse)UnionceZdZdZdZdS)_lazyclasspropertycD||_|j|_|j|_dSN)fn__doc____name__)selfr s a/home/jenkins/workspace/simtester-sanitize/venv/lib/python3.11/site-packages/pyparsing/unicode.py__init__z_lazyclassproperty.__init__ sz   c"t|tdr(tfdjddDri_|jj}|jvr|j|<j|S)N_internc3HK|]}jt|dguVdS)rN)rgetattr).0 superclassclss r z-_lazyclassproperty.__get__..sJ. .  K7:y"== =. . . . . . r)typehasattrany__mro__rr r )r objrattrnames ` r __get__z_lazyclassproperty.__get__s ;s))CsI&& #. . . . !k!""o. . . + +  CK7# 3; & &$(GGCLLCK !{8$$rN)r __module__ __qualname__rrrr rrs2$$$ % % % % %rrceZdZUdZgZeed<edee fdZ ede fdZ ede fdZ ede fdZ ede fdZede fd Zede fd Zed 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 _rangesreturnc g}|jD]S}|turnGt|ddD]4}|t |d|ddz5Tt dt |DS)Nr%r"rrc34K|]}t|VdSr)chrrcs r rz0unicode_set._chars_for_ranges..?s(//c!ff//////r)rr$rextendrangesortedset)rretccrrs r _chars_for_rangeszunicode_set._chars_for_ranges7s+ 5 5B[  b)R00 5 5 5A2 334444 5//c#hh//////rcfdttj|jS)z+all non-whitespace characters in this range)joinrstrisspacer4rs r printableszunicode_set.printablesAs%ww{3;0EFFGGGrcfdttj|jS)z'all alphabetic characters in this ranger6)r7filterr8isalphar4r:s r alphaszunicode_set.alphasF%wwvck3+@AABBBrcfdttj|jS)z*all numeric digit characters in this ranger6)r7r=r8isdigitr4r:s r numszunicode_set.numsKr@rc |j|jzS)z)all alphanumeric characters in this range)r?rCr:s r alphanumszunicode_set.alphanumsPszCH$$rc dttttj|jtdzS)zVall characters in this range that are valid identifier characters, plus underscore '_'r6uABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ_)r7r/r0r=r8 isidentifierr4r:s r identcharszunicode_set.identcharsUsYww F3+S-BCCDD     rctd|jD}dt|t|jztdzS)u all characters in this range that are valid identifier body characters, plus the digits 0-9, and · (Unicode MIDDLE DOT) c3HK|]}d|z|VdS)_N)rGr+s r rz-unicode_set.identbodychars..isK  q0F0F0H0H       rr6u 0123456789·)r0r4r7r/rH)ridentifier_charss r identbodycharszunicode_set.identbodycharscss   ,     ww #c#.&9&99C> % % % ! rroc&eZdZUdZgdZeed<dS)pyparsing_unicode.Chinesez/Unicode set for Chinese Unicode Character Range))i.i.)i.i.)i1i1)i4iM)Ni)ii)iim)ipi)ioio)ii)ii;)i@iH)ii֦)ii4)i@i)i i)ii)iir%NrZr"rr Chineserqs?==% % % !     rrsceZdZdZGddeZGddeZGddeZeZeZ eZ ej ej zej zZ dS) pyparsing_unicode.Japanesez`Unicode set for Japanese Unicode Character Range, combining Kanji, Hiragana, and Katakana rangesc&eZdZUdZddgZeed<dS) pyparsing_unicode.Japanese.Kanjiz-Unicode set for Kanji Unicode Character Range)rri)i0i?0r%NrZr"rr Kanjirws; ; ;  )G%     rrxc&eZdZUdZgdZeed<dS)#pyparsing_unicode.Japanese.Hiraganaz0Unicode set for Hiragana Unicode Character Range))iA0i0)00)i0)ip)i)iPiR)ir%NrZr"rr Hiraganarzs? B B)))G%     rr}c&eZdZUdZgdZeed<dS)#pyparsing_unicode.Japanese.Katakanaz1Unicode set for Katakana Unicode Character Range) )r{i0)r|i0)i1i1)i2i2)iei)i)idig)ii)ir%NrZr"rr Katakanars? C C ) ) )G%     rrN) r r r!r r$rxr}r漢字 カタカナ ひらがなr%r"rr Japaneserusnn     K        {        {      M   rrc&eZdZUdZgdZeed<dS)pyparsing_unicode.Hangulz7Unicode set for Hangul (Korean) Unicode Character Range))ii)i.0i/0)i11i1)i2i2)i`2i{2)i~2)i`i|)ii)ii)ii)ii)ii)ii)ii)iir%NrZr"rr Hangulrs?EE% % % !     rrceZdZdZdS)pyparsing_unicode.CJKzTUnicode set for combined Chinese, Japanese, and Korean (CJK) Unicode Character RangeN)r r r!r r"rr CJKr0sbbbbrrc&eZdZUdZddgZeed<dS)pyparsing_unicode.Thaiz,Unicode set for Thai Unicode Character Range)ii:)i?i[r%NrZr"rr Thair3s;::  % !     rrc&eZdZUdZgdZeed<dS)pyparsing_unicode.Arabicz.Unicode set for Arabic Unicode Character Range))ii)ii)iir%NrZr"rr Arabicr:s?<<% % % !     rrc&eZdZUdZgdZeed<dS)pyparsing_unicode.Hebrewz.Unicode set for Hebrew Unicode Character Range) )ii)ii)ii)ii6)i8i<)i>)i@iA)iCiD)iFiOr%NrZr"rr HebrewrBs?<< % % % ! rrc&eZdZUdZddgZeed<dS)pyparsing_unicode.Devanagariz2Unicode set for Devanagari Unicode Character Range)i i )iir%NrZr"rr DevanagarirPs;@@  % !     rrN)#r r r!r sys maxunicoder%rRrSr$r[rarerirlrorsrrKoreanrrrrrBMPالعربية中文кириллицаΕλληνικάעִברִית 日本語 한국어 ไทยदेवनागरीr"rr rVrV{s  !G                                 & & & & & & & & P      ;         +   ., , , , , ;, , , \        (Fcccccgxccc     {                          [    !CN F!NIII)rrV) r itertoolsrtypingrrrTtupleintrRr$rVr"rr rs !!!!!!%%%%%%%%(eCHouSz9:;Y8Y8Y8Y8Y8Y8Y8Y8xg*g*g*g*g* g*g*g*g*g*r