o 7]h(@sddlZddlmZddlmZmZmZGdddZeeeeefeefZ GdddZ Gdd d e Z e j j je j jje j jje j _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 je _ e j!e _"e j#e _$dS) N) filterfalse)ListTupleUnionc@seZdZddZddZdS)_lazyclasspropertycCs||_|j|_|j|_dS)N)fn__doc____name__)selfrr ?/usr/lib/python3/dist-packages/pip/_vendor/pyparsing/unicode.py__init__ s z_lazyclassproperty.__init__csldurt|tdrtfddjddDr i_|jj}|jvr1|j|<j|S)N_internc3s"|] }jt|dguVqdS)rN)rgetattr).0 superclassclsr r s  z-_lazyclassproperty.__get__..)typehasattrany__mro__rrr )r objrattrnamer rr __get__s   z_lazyclassproperty.__get__N)r __module__ __qualname__r rr r r r rs rc@sreZdZUdZgZeed<eddZeddZ eddZ ed d Z ed d Z ed dZ eddZdS) 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 _rangescCs`g}|jD]}|tur nt|ddD]}|t|d|ddqqddtt|DS)Nr r rrcSsg|]}t|qSr )chrrcr r r ?sz1unicode_set._chars_for_ranges..)rrrextendrangesortedset)rretccrrr r r _chars_for_ranges7s zunicode_set._chars_for_rangescCdttj|jS)z+all non-whitespace characters in this range)joinrstrisspacer-rr r r printablesAzunicode_set.printablescCr.)z'all alphabetic characters in this ranger/)r0filterr1isalphar-rr r r alphasFr4zunicode_set.alphascCr.)z*all numeric digit characters in this ranger/)r0r5r1isdigitr-rr r r numsKr4zunicode_set.numscCs |j|jS)z)all alphanumeric characters in this range)r7r9rr r r alphanumsPs zunicode_set.alphanumsc Cs.dttdttj|jdddS)zVall characters in this range that are valid identifier characters, plus underscore '_'r/u:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºu|ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ_)r0r(r)r5r1 isidentifierr-rr r r identcharsUszunicode_set.identcharsc Cs.dtt|jdddd|jDS)zu all characters in this range that are valid identifier body characters, plus the digits 0-9 r/ 0123456789cSsg|] }d|r|qS)r;)r<r#r r r r%osz.unicode_set.identbodychars..)r0r(r)r=r-rr r r identbodycharscszunicode_set.identbodycharsN)r rrrr UnicodeRangeList__annotations__rr-r3r7r9r:r=r?r r r r rs"         rc@seZdZUdZdejfgZeed<Gddde Z Gddde Z Gdd d e Z Gd d d e Z Gd d d e ZGddde ZGddde ZGddde ZeZGdddeeeZGddde ZGddde ZGddde ZGddde ZdS)pyparsing_unicodezF A namespace class for defining common language unicode_sets. r c@"eZdZUdZddgZeed<dS)zpyparsing_unicode.Latin1z/Unicode set for Latin-1 Unicode Character Range)rC~)r Nr rrrr r@rAr r r r Latin1} rIc@ eZdZUdZdgZeed<dS)zpyparsing_unicode.LatinAz/Unicode set for Latin-A Unicode Character Range)ir NrHr r r r LatinA rMc@rK)zpyparsing_unicode.LatinBz/Unicode set for Latin-B Unicode Character Range)iiOr NrHr r r r LatinBrNrOc@"eZdZUdZgdZeed<dS)zpyparsing_unicode.Greekz.Unicode set for Greek Unicode Character Ranges)#)iBiE)ipiw)izi)ii)i)ii)ii)ii)i&i*)i^)i`)ifij)ii)ii)i iE)iHiM)iPiW)iY)i[)i])i_i})ii)ii)ii)ii)ii)ii)ii)i)!)i'i')ie)i@i)i)iiE)iir NrHr r r r Greek rQc@rP)zpyparsing_unicode.Cyrillicz0Unicode set for Cyrillic Unicode Character Range))ii/)ii)i+)ix)i-i-)i@ir)iti)i.i/r NrHr r r r CyrillicrRrSc@rP)zpyparsing_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 NrHr r r r ChineserRrUc@sNeZdZUdZgZeed<GdddeZGdddeZ GdddeZ d S) zpyparsing_unicode.Japanesez`Unicode set for Japanese Unicode Character Range, combining Kanji, Hiragana, and Katakana rangesr c@rD)z pyparsing_unicode.Japanese.Kanjiz-Unicode set for Kanji Unicode Character Range)rTi)i0i?0r NrHr r r r KanjirJrVc@rP)z#pyparsing_unicode.Japanese.Hiraganaz0Unicode set for Hiragana Unicode Character Range))iA0i0)00)i0)ip)i)iPiR)ir NrHr r r r HiraganarRrYc@rP)z#pyparsing_unicode.Japanese.Katakanaz1Unicode set for Katakana Unicode Character Range) )rWi0)rXi0)i1i1)i2i2)iei)i)idig)ii)ir NrHr r r r KatakanarRrZN) r rrrr r@rArrVrYrZr r r r Japaneses   r[c@rP)zpyparsing_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 NrHr r r r HangulrRr\c@seZdZdZdS)zpyparsing_unicode.CJKzTUnicode set for combined Chinese, Japanese, and Korean (CJK) Unicode Character RangeN)r rrrr r r r CJKsr]c@rD)zpyparsing_unicode.Thaiz,Unicode set for Thai Unicode Character Range)ii:)i?i[r NrHr r r r ThairRr^c@rP)zpyparsing_unicode.Arabicz.Unicode set for Arabic Unicode Character Range))ii)ii)iir NrHr r r r ArabicrRr_c@rP)zpyparsing_unicode.Hebrewz.Unicode set for Hebrew Unicode Character Range) )ii)ii)ii)ii6)i8i<)i>)i@iA)iCiD)iFiOr NrHr r r r Hebrew'rRr`c@rD)zpyparsing_unicode.Devanagariz2Unicode set for Devanagari Unicode Character Range)i i )iir NrHr r r r Devanagari5rRraN)r rrrsys maxunicoder r@rArrIrMrOrQrSrUr[r\Koreanr]r^r_r`rar r r r rBvs" ( %rB)%rb itertoolsrtypingrrrrintr@rrBr[rVr rYrZr_العربيةrU中文rSкириллицаrQΕλληνικάr`עִברִית 日本語漢字 カタカナ ひらがなrd 한국어r^ ไทยraदेवनागरीr r r r s4 WF