
    1yiQ                       d Z ddlmZ ddlmZ dZdZdZdZdZ	d)dZ
e	fd*d	Ze	fd*d
Ze	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZe	fd*dZ e	fd*dZ!e	fd*d Z"e	fd*d!Z#e	fd*d"Z$e	fd*d#Z%e	fd*d$Z&e	fd*d%Z'd+d&Z(d'e	fd,d(Z)y')-zUnicode Properties.    )annotations   )unidatau    -􏿿u    -ÿ   c                @    |r| j                  d      r| dd dz   S | S | S )zFormat for bytes string.u   􏿿N   ÿ)endswith)valueis_bytess     \/var/www/html/content_weaver/venv/lib/python3.12/site-packages/backrefs/uniprops/__init__.py
fmt_stringr      s-     &+nn\&BuSbzF"MM    c           
        |t         k7  rt        j                  nt        j                  }| j	                  d      rd}| dd } nd}t        j
                  d   j                  | |       } |t        k(  }t        |       }|dk  s|dkD  rt        d      |dk(  r| |vrt        d      |dk(  r| d	   |vs| d   || d	      vrt        d      |st        |       dkD  r
| d	   | d   fn| d	   df\  }}|`d
j                  |j                  |i       j                         D 	cg c]#  \  }}	|j	                  d      rt        |	|      % c}	}      } | S t        |j                  |i       j                  |d
      |      } | S t        |       dkD  r
| d	   | d   fn| d	   d
f\  }}t        |j                  |i       j                  d|z   d
      |      } | S c c}	}w )zGet `GC` property.^Tr   NFgeneralcategoryr   zInvalid propertyr    )MODE_UNICODEr   ascii_propertiesunicode_properties
startswithunicode_aliasget
MODE_ASCIIlen
ValueErrorjoinitemsr   )
r   modeobjnegate	is_binarylengthp1p2kvs
             r   get_gc_propertyr(      s    '+l&:'
"
"@Z@ZCab	!!"3488FE
"IZFzVaZ+,,	1c)+,,	1%(#-qU1X1N+,,),Ua%(E!H%eAh=MB Z 25''"b/2G2G2Ic$!QQRQ]Q]^aQbZ9%c
 L	 (B(;(;B(CYO 	 L *-Ua%(E!H%eAh^B3772r?..sRx<iHL ds   G
7G
c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `BINARY` property.r   r   Nbinary)	r   r   ascii_binaryunicode_binaryr   r   r   r   r   r   r   r    negateds       r   get_binary_propertyr/   7   s     #',"6'

G<R<RC)g++H599'7KK%%h/33E5Ac%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )z)Get `CANONICAL COMBINING CLASS` property.r   r   Ncanonicalcombiningclass)	r   r   ascii_canonical_combining_class!unicode_canonical_combining_classr   r   r   r   r   r-   s       r   &get_canonical_combining_class_propertyr4   E   s     6:\5I'
1
1wOxOxC)g++,EFJJ7T[\\%%&?@DDUERc%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )z Get `EAST ASIAN WIDTH` property.r   r   Neastasianwidth)	r   r   ascii_east_asian_widthunicode_east_asian_widthr   r   r   r   r   r-   s       r   get_east_asian_width_propertyr9   S        -1L,@'
(
(gFfFfC)g++,<=AA'7SS%%&67;;E5Ic%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )z&Get `GRAPHEME CLUSTER BREAK` property.r   r   Ngraphemeclusterbreak)	r   r   ascii_grapheme_cluster_breakunicode_grapheme_cluster_breakr   r   r   r   r   r-   s       r   #get_grapheme_cluster_break_propertyr?   a   s     37,2F'
.
.GLrLrC)g++,BCGGQXYY%%&<=AA%Oc%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `LINE BREAK` property.r   r   N	linebreak)	r   r   ascii_line_breakunicode_line_breakr   r   r   r   r   r-   s       r   get_line_break_propertyrD   o        '+l&:'
"
"@Z@ZC)g++K8<<WgNN%%k266ueDc%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `SENTENCE BREAK` property.r   r   Nsentencebreak)	r   r   ascii_sentence_breakunicode_sentence_breakr   r   r   r   r   r-   s       r   get_sentence_break_propertyrJ   }   s     +/,*>'
&
&GDbDbC)g++O<@@'RR%%o6::5%Hc%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `WORD BREAK` property.r   r   N	wordbreak)	r   r   ascii_word_breakunicode_word_breakr   r   r   r   r   r-   s       r   get_word_break_propertyrO      rE   r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )z$Get `HANGUL SYLLABLE TYPE` property.r   r   Nhangulsyllabletype)	r   r   ascii_hangul_syllable_typeunicode_hangul_syllable_typer   r   r   r   r   r-   s       r   !get_hangul_syllable_type_propertyrT      s     150D'
,
,'JnJnC)g++,@AEEgwWW%%&:;??uMc%j$*"455r   c                D   |t         k7  rt        j                  nt        j                  }d}| j	                  d      r,| dd }dt        j
                  |   j                  ||      z   } n#t        j
                  |   j                  | |       } t        ||    |t        k(        S )z/Get `INDIC POSITIONAL/MATRA CATEGORY` property.indicpositionalcategoryr   r   N)	r   r   ascii_indic_positional_category!unicode_indic_positional_categoryr   r   r   r   r   )r   r   r    	alias_keyr.   s        r   &get_indic_positional_category_propertyrZ      s     6:\5I'
1
1wOxOxC)I)g++I6::7GLL%%i044UEBc%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )z'Get `INDIC SYLLABIC CATEGORY` property.r   r   Nindicsyllabiccategory)	r   r   ascii_indic_syllabic_categoryunicode_indic_syllabic_categoryr   r   r   r   r   r-   s       r   $get_indic_syllabic_category_propertyr_      s     48<3G'
/
/WMtMtC)g++,CDHHRYZZ%%&=>BB5%Pc%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )z"Get `DECOMPOSITION TYPE` property.r   r   Ndecompositiontype)	r   r   ascii_decomposition_typeunicode_decomposition_typer   r   r   r   r   r-   s       r   get_decomposition_type_propertyrd      s     /3l.B'
*
*HjHjC)g++,?@DDWgVV%%&9:>>ueLc%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `NFC QUICK CHECK` property.r   r   Nnfcquickcheck)	r   r   ascii_nfc_quick_checkunicode_nfc_quick_checkr   r   r   r   r   r-   s       r   get_nfc_quick_check_propertyri           ,0<+?'
'
'WEdEdC)g++O<@@'RR%%o6::5%Hc%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `NFD QUICK CHECK` property.r   r   Nnfdquickcheck)	r   r   ascii_nfd_quick_checkunicode_nfd_quick_checkr   r   r   r   r   r-   s       r   get_nfd_quick_check_propertyro      rj   r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )z Get `NFKC QUICK CHECK` property.r   r   Nnfkcquickcheck)	r   r   ascii_nfkc_quick_checkunicode_nfkc_quick_checkr   r   r   r   r   r-   s       r   get_nfkc_quick_check_propertyrt      r:   r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )z Get `NFKD QUICK CHECK` property.r   r   Nnfkdquickcheck)	r   r   ascii_nfkd_quick_checkunicode_nfkd_quick_checkr   r   r   r   r   r-   s       r   get_nfkd_quick_check_propertyry      r:   r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `NUMERIC TYPE` property.r   r   Nnumerictype)	r   r   ascii_numeric_typeunicode_numeric_typer   r   r   r   r   r-   s       r   get_numeric_type_propertyr~   
       )-(<'
$
$'B^B^C)g++M:>>wPP%%m488Fc%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `NUMERIC VALUE` property.r   r   Nnumericvalue)	r   r   ascii_numeric_valuesunicode_numeric_valuesr   r   r   r   r   r-   s       r   get_numeric_value_propertyr     s     +/,*>'
&
&GDbDbC)g++N;??QQ%%n599%Gc%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `AGE` property.r   r   Nage)	r   r   	ascii_ageunicode_ager   r   r   r   r   r-   s       r   get_age_propertyr   &  s      $|3'

9L9LC)g++E266wHH%%e,00>c%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `JOINING TYPE` property.r   r   Njoiningtype)	r   r   ascii_joining_typeunicode_joining_typer   r   r   r   r   r-   s       r   get_joining_type_propertyr   4  r   r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `JOINING GROUP` property.r   r   Njoininggroup)	r   r   ascii_joining_groupunicode_joining_groupr   r   r   r   r   r-   s       r   get_joining_group_propertyr   B  s     *.)='
%
%7C`C`C)g++N;??QQ%%n599%Gc%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `SC` property.r   r   Nscript)	r   r   ascii_scriptsunicode_scriptsr   r   r   r   r   r-   s       r   get_script_propertyr   P  s     $(<#7'

W=T=TC)g++H599'7KK%%h/33E5Ac%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `SCX` property.r   r   Nr   )	r   r   ascii_script_extensionsunicode_script_extensionsr   r   r   r   r   r-   s       r   get_script_extension_propertyr   ^  s     .2\-A'
)
)wGhGhC)g++H599'7KK%%h/33E5Ac%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `BLK` property.r   r   Nblock)	r   r   ascii_blocksunicode_blocksr   r   r   r   r   r-   s       r   get_block_propertyr   l  s     #',"6'

G<R<RC)g++G488'JJ%%g.225%@c%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `BC` property.r   r   N	bidiclass)	r   r   ascii_bidi_classesunicode_bidi_classesr   r   r   r   r   r-   s       r   get_bidi_propertyr   z  s     )-(<'
$
$'B^B^C)g++K8<<WgNN%%k266ueDc%j$*"455r   c                @   |t         k7  rt        j                  nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `BPT` property.r   r   Nbidipairedbrackettype)	r   r   ascii_bidi_paired_bracket_type unicode_bidi_paired_bracket_typer   r   r   r   r   r-   s       r   %get_bidi_paired_bracket_type_propertyr     s     59L4H'
0
0gNvNvC)g++,CDHHRYZZ%%&=>BB5%Pc%j$*"455r   c                B   |t         k7  rt        j                  }nt        j                  }| j	                  d      r,| dd }dt        j
                  d   j                  ||      z   } n#t        j
                  d   j                  | |       } t        ||    |t        k(        S )zGet `VO` property.r   r   Nverticalorientation)	r   r   ascii_vertical_orientationunicode_vertical_orientationr   r   r   r   r   r-   s       r   !get_vertical_orientation_propertyr     s     |0022)g++,ABFFwPWXX%%&;<@@Nc%j$*"455r   c                   | j                  d      r| dd }| dd }d}n| dd }| dd }d}|dk7  rt        d      |t        k7  rt        j                  nt        j
                  }|t        k7  rt        j                  nt        j                  }|t        j                  d	   j                  ||      z   } | |vr)|t        j                  d
   j                  ||      z   } |}n|}t        ||    |t        k(        S )z+Get shortcut for `SC` or `Binary` property.r   r      Nr   r   iszDoes not start with 'is'!r   r*   )r   r   r   r   r   r   r+   r,   r   r   r   r   )r   r   prefixtempr!   
script_objbin_objr    s           r   get_is_propertyr     s     qQRyrQRy~45548L4H00gNoNoJ&*l&:g""@V@VGW**8488tDDEJ..x8<<T4HHc%j$*"455r   c                @   | j                  d      r| dd }| dd }d}n| dd }| dd }d}|dk7  rt        d      |t        j                  d	   j	                  ||      z   } |t
        k7  rt        j                  nt        j                  }t        ||    |t        k(        S )
z"Get shortcut for `Block` property.r   r   r   Nr   r   inzDoes not start with 'in'!r   )
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r!   r    s         r   get_in_propertyr     s     qQRyrQRy~455W**7377dCCE"&,"6'

G<R<RCc%j$*"455r   c                T    | t         j                  v xs | t         j                  d   v S )z1Check if name is an enum (not a binary) property.r*   )r   r,   r   )names    r   
_is_binaryr     s*     7)))TTW5J5J85T-TTr   Nc                r   |Z| j                  d      }t        |       r?|r| dd n| }|dv r| }n|dvrt        d| d|  d      t        |r
d|z   |      S ||      S |rd|z   }| dd }n| }t        j
                  d   j                  ||      }	 |d	k(  rt        ||      S |d
k(  rt        ||      S |dk(  rt        ||      S |dk(  rt        ||      S |dk(  rt        ||      S |dk(  rt        ||      S |dk(  rt        ||      S |dk(  rt        ||      S |dk(  rt        ||      S |dk(  rt!        ||      S |dk(  rt#        ||      S |dk(  rt%        ||      S |dk(  rt'        ||      S |dk(  rt)        ||      S |dk(  rt+        ||      S |dk(  rt-        ||      S |dk(  rt/        ||      S |dk(  rt1        ||      S |dk(  rt3        ||      S |dk(  rt5        ||      S |dk(  rt7        ||      S |dk(  rt9        ||      S |dk(  rt;        ||      S |d k(  rt=        ||      S |d!k(  rt?        ||      S |d"k(  rtA        ||      S t        d|  d#| d$      	 t        | |      S # tB        $ r}t        d|  d#| d%      |d}~ww xY w# tB        $ r Y nw xY w	 t        | |      S # tB        $ r Y nw xY w	 t        | |      S # tB        $ r Y nw xY w	 t        | |      S # tB        $ r Y nw xY w	 tE        | |      S # tB        $ r Y nw xY w	 tG        | |      S # tB        $ r Y nw xY wt        d|  d%      )&z-Retrieve the Unicode category from the table.Nr   r   )nnoffalse)yyesttrue'z0' is not a valid value for the binary property '_r   r   scriptextensionsr   r   r   r   r6   rV   r\   rQ   ra   r1   r{   r   r   r   r<   rA   rG   rL   rf   rl   rq   rv   r   =z%' does not have a valid property namez(' does not appear to be a valid property)$r   r   r   r/   r   r   r   r(   r   r   r   r   r   r   r9   rZ   r_   rT   rd   r4   r~   r   r   r   r?   rD   rJ   rO   ri   ro   rt   ry   r   	Exceptionr   r   )propr   r   r!   r   es         r   get_unicode_propertyr     s.    % d%484D11#77 1UG+[\`[aab!cdd&VsTztLLtLLeABx$$S)--dD98	`((&ud33!*5$77++4UDAA)%66$(5500<UDII't44))4UDAA22=eTJJ00;E4HH--8EE,,6udCC22=eTJJ&0=='1%>>&0=='1%>>//:5$GG$.ud;;(25$??$.ud;;(3E4@@(3E4@@))4UDAA))4UDAA..8EE 1TF!E72W!XYYtT**	  	`qaw.VWX^__	`
  ,T488 "4.. !$-- tT** tT**  qFG
HHs   I+ #I+ 4I+ I+ I+ 'I+ 8I+ 	I+ I+ +I+ <I+ I+ I+ /I+  I+ I+ "I+ 3I+ I+ I+ &I+ 7I+ I+ I+ *I+ ;I+ I+ J +	J4JJ	JJJ+ +	J76J7;K 	KKK# #	K/.K/3K? ?	L
LL 	L'&L')r   strr   boolreturnr   )r   r   r   intr   r   )r   r   r   r   )r   r   r   z
str | Noner   r   r   r   )*__doc__
__future__r   r   r   UNICODE_RANGEASCII_RANGEMODE_NORMALr   r   r   r(   r/   r4   r9   r?   rD   rJ   rO   rT   rZ   r_   rd   ri   ro   rt   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   <module>r      s}    " #
 -9 B 1= 6 DP 6 ;G 6 AM 6 5A 6 9E 6 5A 6 ?K 6 DP 6 BN 6 =I 6 :F 6 :F 6 ;G 6 ;G 6 7C 6 8D 6 .: 6 7C 6 8D 6 1= 6 ;G 6 0< 6 /; 6 CO 6 ?K 6" -9 6: -9 6*U 9=, qIr   