
    ̆hQ                    *   S r SSKJr  SSKJr  SrSrSrSrSr	S)S jr
\	4S*S	 jjr\	4S*S
 jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr\	4S*S jjr \	4S*S jjr!\	4S*S  jjr"\	4S*S! jjr#\	4S*S" jjr$\	4S*S# jjr%\	4S*S$ jjr&\	4S*S% jjr'S+S& jr(S'\	4S,S( jjr)g')-zUnicode Properties.    )annotations   )unidatau    -􏿿u    -ÿ   c                T    U(       a   U R                  S5      (       a  U SS S-   $ U $ U $ )zFormat for bytes string.u   􏿿N   ÿ)endswith)valueis_bytess     R/opt/services/DDDS/venv/lib/python3.13/site-packages/backrefs/uniprops/__init__.py
fmt_stringr      s0     &+nn\&B&BuSbzF"MM    c           
        U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a  SnU SS n OSn[        R
                  S   R                  X 5      n U[        :H  n[        U 5      nUS:  d  US:  a  [        S5      eUS:X  a  X;  a  [        S5      eUS:X  a"  U S	   U;  d  U S   X S	      ;  a  [        S5      eU(       d  [        U 5      S:  a
  U S	   U S   4OU S	   S4u  pgUcg  S
R                  UR                  U0 5      R                  5        VV	s/ s H(  u  pUR	                  S5      (       a  M  [        X5      PM*     sn	n5      n U $ [        UR                  U0 5      R                  US
5      U5      n U $ [        U 5      S:  a
  U S	   U S   4OU S	   S
4u  pg[        UR                  U0 5      R                  SU-   S
5      U5      n U $ s  sn	nf )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)+,,	1%(#-q1X1N+,,),Ua%(E!H%eAh=M Z 25''"b/2G2G2Ic2I$!QRQ]Q]^aQb%Z%2Ic
 L	 (B(;(;B(CYO 	 L *-Ua%(E!H%eAh^3772r?..sRx<iHL ds   0G*
G*
c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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'KK%%h/33EAcj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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J7\\%%&?@DDURcj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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'SS%%&67;;EIcj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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YY%%&<=AA%Ocj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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<<WNN%%k266uDcj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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cj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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EgWW%%&:;??Mcj$*"455r   c                J   U[         :w  a  [        R                  O[        R                  nSnU R	                  S5      (       a+  U SS nS[        R
                  U   R                  XD5      -   n O"[        R
                  U   R                  X 5      n [        X    U[        :H  5      $ )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::7LL%%i044UBcj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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ZZ%%&=>BB5Pcj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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DWVV%%&9:>>uLcj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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cj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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cj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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cj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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>cj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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cj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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'KK%%h/33EAcj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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'KK%%h/33EAcj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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@cj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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<<WNN%%k266uDcj$*"455r   c                F   U[         :w  a  [        R                  O[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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ZZ%%&=>BB5Pcj$*"455r   c                H   U[         :w  a  [        R                  nO[        R                  nU R	                  S5      (       a+  U SS nS[        R
                  S   R                  X35      -   n O"[        R
                  S   R                  X 5      n [        X    U[        :H  5      $ )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FwXX%%&;<@@Ncj$*"455r   c                   U R                  S5      (       a  U SS nU SS nSnOU SS nU SS nSnUS:w  a  [        S5      eU[        :w  a  [        R                  O[        R
                  nU[        :w  a  [        R                  O[        R                  nU[        R                  S	   R                  X35      -   n X;  a(  U[        R                  S
   R                  X35      -   n UnOUn[        Xp   U[        :H  5      $ )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DDE..x8<<THHcj$*"455r   c                J   U R                  S5      (       a  U SS nU SS nSnOU SS nU SS nSnUS:w  a  [        S5      eU[        R                  S	   R	                  X35      -   n U[
        :w  a  [        R                  O[        R                  n[        XP   U[        :H  5      $ )
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CCE"&,"6'

G<R<RCcj$*"455r   c                b    U [         R                  ;   =(       d    U [         R                  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                   UGbu  U R                  S5      n[        U 5      (       aQ  U(       a  U SS OU nUS;   a  U(       + nOUS;  a  [        SU SU  S35      e[        U(       a
  SU-   U5      $ UU5      $ U(       a  SU-   nU SS nOU n[        R
                  S   R                  XD5      n US	:X  a  [        X5      $ US
:X  a  [        X5      $ US:X  a  [        X5      $ US:X  a  [        X5      $ US:X  a  [        X5      $ US:X  a  [        X5      $ US:X  a  [        X5      $ US:X  a  [        X5      $ US:X  a  [        X5      $ US:X  a  [!        X5      $ US:X  a  [#        X5      $ US:X  a  [%        X5      $ US:X  a  ['        X5      $ US:X  a  [)        X5      $ US:X  a  [+        X5      $ US:X  a  [-        X5      $ US:X  a  [/        X5      $ US:X  a  [1        X5      $ US:X  a  [3        X5      $ US:X  a  [5        X5      $ US:X  a  [7        X5      $ US:X  a  [9        X5      $ US:X  a  [;        X5      $ US :X  a  [=        X5      $ US!:X  a  [?        X5      $ US":X  a  [A        X5      $ [        SU  S#U S$35      e [        X5      $ ! [B         a  n[        SU  S#U S%35      UeSnAff = f! [B         a     Of = f [        X5      $ ! [B         a     Of = f [        X5      $ ! [B         a     Of = f [        X5      $ ! [B         a     Of = f [E        X5      $ ! [B         a     Of = f [G        X5      $ ! [B         a     Of = f[        SU  S%35      e)&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)--d98	`((&u33!*577++4UAA)%66$(5500<UII'44))4UAA22=eJJ00;EHH--8EE,,6uCC22=eJJ&0=='1%>>&0=='1%>>//:5GG$.u;;(25??$.u;;(3E@@(3E@@))4UAA))4UAA..8EE 1TF!E72W!XYYt**	  	`qaw.VWX^__	`
  ,T88 "4.. !$-- t** t**  qFG
HHs   .J ?J J !J 2J J J %J 6J J J )J :J J J -J >J J  J 1J J J $J 5J J J (J ;
J+ 
J(J##J(+
J87J8<
K 
KK
K# #
K0/K04
K? ?
LL
L 
L('L(,
L7 7
MM)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   