a
    ÅZEgv)  ã                   @   sl   d dl Z d dlmZ d dlmZ G dd„ dƒZeeeeef ee f  Z	G dd„ dƒZ
G dd	„ d	e
ƒZdS )
é    N)Úfilterfalse)ÚUnionc                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú_lazyclasspropertyc                 C   s   || _ |j| _|j| _d S ©N)ÚfnÚ__doc__Ú__name__)Úselfr   © r
   úJ/var/www/sistema_ama/venv/lib/python3.9/site-packages/pyparsing/unicode.pyÚ__init__	   s    z_lazyclassproperty.__init__c                    sl   ˆ d u rt |ƒ‰ tˆ dƒr:t‡ fdd„ˆ jdd … D ƒƒr@i ˆ _| jj}|ˆ jvrb|  ˆ ¡ˆ j|< ˆ j| S )NÚ_internc                 3   s    | ]}ˆ j t|d g ƒu V  qdS )r   N)r   Úgetattr)Ú.0Ú
superclass©Úclsr
   r   Ú	<genexpr>   s   ÿz-_lazyclassproperty.__get__.<locals>.<genexpr>é   )ÚtypeÚhasattrÚanyÚ__mro__r   r   r   )r	   Úobjr   Úattrnamer
   r   r   Ú__get__   s    þ
z_lazyclassproperty.__get__N)r   Ú
__module__Ú__qualname__r   r   r
   r
   r
   r   r      s   r   c                   @   s¬   e Zd ZU dZg Zeed< eee	 dœdd„ƒZ
ee	dœdd„ƒZee	dœdd	„ƒZee	dœd
d„ƒZee	dœdd„ƒZee	dœdd„ƒZee	dœdd„ƒZedd„ ƒZd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
    Ú_ranges)Úreturnc                 C   s`   g }| j D ]>}|tu r qJt|ddƒD ] }| t|d |d d ƒ¡ q&q
tdd„ t|ƒD ƒƒS )Nr   r
   r   éÿÿÿÿr   c                 s   s   | ]}t |ƒV  qd S r   )Úchr©r   Úcr
   r
   r   r   ?   ó    z0unicode_set._chars_for_ranges.<locals>.<genexpr>)r   r   r   ÚextendÚrangeÚsortedÚset)r   ÚretÚccÚrrr
   r
   r   Ú_chars_for_ranges7   s    
 zunicode_set._chars_for_rangesc                 C   s   d  ttj| jƒ¡S )z+all non-whitespace characters in this rangeÚ )Újoinr   ÚstrÚisspacer-   r   r
   r
   r   Ú
printablesA   s    zunicode_set.printablesc                 C   s   d  ttj| jƒ¡S )z'all alphabetic characters in this ranger.   )r/   Úfilterr0   Úisalphar-   r   r
   r
   r   ÚalphasF   s    zunicode_set.alphasc                 C   s   d  ttj| jƒ¡S )z*all numeric digit characters in this ranger.   )r/   r3   r0   Úisdigitr-   r   r
   r
   r   ÚnumsK   s    zunicode_set.numsc                 C   s   | j | j S )z)all alphanumeric characters in this range)r5   r7   r   r
   r
   r   Ú	alphanumsP   s    zunicode_set.alphanumsc                 C   s$   d  ttttj| jƒƒtdƒB ƒ¡S )zVall characters in this range that are valid identifier characters, plus underscore '_'r.   u·   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÂªÂµÂºÃ€Ã�Ã‚ÃƒÃ„Ã…Ã†Ã‡ÃˆÃ‰ÃŠÃ‹ÃŒÃ�ÃŽÃ�Ã�Ã‘Ã’Ã“Ã”Ã•Ã–Ã˜Ã™ÃšÃ›ÃœÃ�ÃžÃŸÃ Ã¡Ã¢Ã£Ã¤Ã¥Ã¦Ã§Ã¨Ã©ÃªÃ«Ã¬Ã­Ã®Ã¯Ã°Ã±Ã²Ã³Ã´ÃµÃ¶Ã¸Ã¹ÃºÃ»Ã¼Ã½Ã¾Ã¿_)r/   r(   r)   r3   r0   Úisidentifierr-   r   r
   r
   r   Ú
identcharsU   s    ÿÿÿÿzunicode_set.identcharsc                 C   s4   t dd„ | jD ƒƒ}d t|t | jƒB t dƒB ƒ¡S )u’   
        all characters in this range that are valid identifier body characters,
        plus the digits 0-9, and Â· (Unicode MIDDLE DOT)
        c                 s   s   | ]}d |   ¡ r|V  qdS )Ú_N)r9   r#   r
   r
   r   r   i   s   z-unicode_set.identbodychars.<locals>.<genexpr>r.   u   0123456789Â·)r)   r-   r/   r(   r:   )r   Zidentifier_charsr
   r
   r   Úidentbodycharsc   s    ÿÿzunicode_set.identbodycharsc                 C   s   ddl m} || j| jƒS )zˆ
        a pyparsing Word expression for an identifier using this range's definitions for
        identchars and identbodychars
        r   )ÚWord)Ú	pyparsingr=   r:   r<   )r   r=   r
   r
   r   Ú
identifierp   s    zunicode_set.identifierN)r   r   r   r   r   ÚUnicodeRangeListÚ__annotations__r   Úlistr0   r-   r2   r5   r7   r8   r:   r<   r?   r
   r
   r
   r   r      s$   
	r   c                   @   s6  e Zd ZU dZdejfgZeed< G dd„ de	ƒZ
G dd„ de	ƒZG dd	„ d	e	ƒZG d
d„ de	ƒZG dd„ de	ƒZG dd„ de	ƒZG dd„ de	ƒZG dd„ de	ƒZG dd„ de	ƒZeZG dd„ deeeƒZG dd„ de	ƒZG dd„ de	ƒZG dd„ de	ƒZG dd„ de	ƒZe
ZeZeZeZeZeZeZeZ eZ!eZ"d S )!Úpyparsing_unicodezF
    A namespace class for defining common language unicode_sets.
    é    r   c                   @   s    e Zd ZU dZdgZeed< dS )z(pyparsing_unicode.BasicMultilingualPlanez,Unicode set for the Basic Multilingual Plane)rD   iÿÿ  r   N©r   r   r   r   r   r@   rA   r
   r
   r
   r   ÚBasicMultilingualPlane‡   s   
ÿrF   c                   @   s"   e Zd ZU dZddgZeed< dS )zpyparsing_unicode.Latin1z/Unicode set for Latin-1 Unicode Character Range)rD   é~   )é    éÿ   r   NrE   r
   r
   r
   r   ÚLatin1�   s   
þrJ   c                   @   s    e Zd ZU dZdgZeed< dS )zpyparsing_unicode.LatinAz/Unicode set for Latin-A Unicode Character Range)é   i  r   NrE   r
   r
   r
   r   ÚLatinA”   s   
ÿrL   c                   @   s    e Zd ZU dZdgZeed< dS )zpyparsing_unicode.LatinBz/Unicode set for Latin-B Unicode Character Range)i€  iO  r   NrE   r
   r
   r
   r   ÚLatinBš   s   
ÿrM   c                   @   s"   e Zd ZU dZg d¢Zeed< dS )zpyparsing_unicode.Greekz.Unicode set for Greek Unicode Character Ranges)#)iB  iE  )ip  iw  )iz  i  )i„  iŠ  )iŒ  )iŽ  i¡  )i£  iá  )ið  iÿ  )i&  i*  )i^  )i`  )if  ij  )i   i  )i  i  )i   iE  )iH  iM  )iP  iW  )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   NrE   r
   r
   r
   r   ÚGreek    s   
rN   c                   @   s"   e Zd ZU dZg d¢Zeed< dS )zpyparsing_unicode.Cyrillicz0Unicode set for Cyrillic Unicode Character Range))i   i/  )i€  iˆ  )i+  )ix  )ià-  iÿ-  )i@¦  ir¦  )it¦  iŸ¦  )i.þ  i/þ  r   NrE   r
   r
   r
   r   ÚCyrillicÈ   s   
rO   c                   @   s"   e Zd ZU dZg d¢Zeed< dS )zpyparsing_unicode.Chinesez/Unicode set for Chinese Unicode Character Range))i€.  i™.  )i›.  ió.  )iÀ1  iã1  )i 4  iµM  )é N  iïŸ  )i §  i§  )i ù  imú  )ipú  iÙú  )iâo ião )iò iò )iò i;ò )i@ò iHò )i   iÖ¦ )i § i4· )i@· i¸ )i ¸ i¡Î )i°Î iàë )i ø iú r   NrE   r
   r
   r
   r   ÚChineseÕ   s   
rQ   c                   @   s^   e Zd ZdZG dd„ deƒZG dd„ deƒZG dd„ deƒZeZeZ	eZ
ejej ej ZdS )	zpyparsing_unicode.Japanesez`Unicode set for Japanese Unicode Character Range, combining Kanji, Hiragana, and Katakana rangesc                   @   s"   e Zd ZU dZddgZeed< dS )z pyparsing_unicode.Japanese.Kanjiz-Unicode set for Kanji Unicode Character Range)rP   i¿Ÿ  )i 0  i?0  r   NrE   r
   r
   r
   r   ÚKanjiï   s   
þrR   c                   @   s"   e Zd ZU dZg d¢Zeed< dS )z#pyparsing_unicode.Japanese.Hiraganaz0Unicode set for Hiragana Unicode Character Range))iA0  i–0  )é™0  é 0  )iü0  )ipÿ  )i° )iP± iR± )i ò r   NrE   r
   r
   r
   r   ÚHiraganaö   s   
rU   c                   @   s"   e Zd ZU dZg d¢Zeed< dS )z#pyparsing_unicode.Japanese.Katakanaz1Unicode set for Katakana  Unicode Character Range)	)rS   iœ0  )rT   iÿ0  )ið1  iÿ1  )iÐ2  iþ2  )ieÿ  iŸÿ  )i ° )id± ig± )iò iò )iò r   NrE   r
   r
   r
   r   ÚKatakana  s   
rV   N)r   r   r   r   r   rR   rU   rV   ô   æ¼¢å­—ô   ã‚«ã‚¿ã‚«ãƒŠô   ã�²ã‚‰ã�Œã�ªr   r
   r
   r
   r   ÚJapaneseì   s   ÿþÿrZ   c                   @   s"   e Zd ZU dZg d¢Zeed< dS )zpyparsing_unicode.Hangulz7Unicode set for Hangul (Korean) Unicode Character Range))i   iÿ  )i.0  i/0  )i11  iŽ1  )i 2  i2  )i`2  i{2  )i~2  )i`©  i|©  )i ¬  i£×  )i°×  iÆ×  )iË×  iû×  )i ÿ  i¾ÿ  )iÂÿ  iÇÿ  )iÊÿ  iÏÿ  )iÒÿ  i×ÿ  )iÚÿ  iÜÿ  r   NrE   r
   r
   r
   r   ÚHangul  s   
r[   c                   @   s   e Zd ZdZdS )zpyparsing_unicode.CJKzTUnicode set for combined Chinese, Japanese, and Korean (CJK) Unicode Character RangeN)r   r   r   r   r
   r
   r
   r   ÚCJK0  s   r\   c                   @   s"   e Zd ZU dZddgZeed< dS )zpyparsing_unicode.Thaiz,Unicode set for Thai Unicode Character Range)i  i:  )i?  i[  r   NrE   r
   r
   r
   r   ÚThai3  s   
þr]   c                   @   s"   e Zd ZU dZg d¢Zeed< dS )zpyparsing_unicode.Arabicz.Unicode set for Arabic Unicode Character Range))i   i  )i  iÿ  )i   i  r   NrE   r
   r
   r
   r   ÚArabic:  s   
r^   c                   @   s"   e Zd ZU dZg d¢Zeed< dS )z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   NrE   r
   r
   r
   r   ÚHebrewB  s   
r_   c                   @   s"   e Zd ZU dZddgZeed< dS )zpyparsing_unicode.Devanagariz2Unicode set for Devanagari Unicode Character Range)i 	  i	  )ià¨  iÿ¨  r   NrE   r
   r
   r
   r   Ú
DevanagariP  s   
þr`   N)#r   r   r   r   ÚsysÚ
maxunicoder   r@   rA   r   rF   rJ   rL   rM   rN   rO   rQ   rZ   r[   ÚKoreanr\   r]   r^   r_   r`   ZBMPô   Ø§Ù„Ø¹Ø±Ø¨ÙŠØ©ô   ä¸­æ–‡ô   ÐºÐ¸Ñ€Ð¸Ð»Ð»Ð¸Ñ†Ð°ô   Î•Î»Î»Î·Î½Î¹ÎºÎ¬ô   ×¢Ö´×‘×¨Ö´×™×ªô	   æ—¥æœ¬èªžô	   í•œêµ­ì–´ô	   à¹„à¸—à¸¢ô   à¤¦à¥‡à¤µà¤¨à¤¾à¤—à¤°à¥€r
   r
   r
   r   rC   {   s8   
ÿ(.rC   )ra   Ú	itertoolsr   Útypingr   r   rB   ÚtupleÚintr@   r   rC   r
   r
   r
   r   Ú<module>   s   \