
    i7                     V   d dl Z d dlZd dlmZ ddlmZ ddlmZ  e j                  d      j                  Z
 edj                  d	            Zd
edefdZd
edefdZd
edefdZd
edefdZd
edefdZd
edefdZd
edefdZd
edefdZd
edefdZd
edefdZd
edefdZdedefdZdedefdZdedefdZdedefdZdedefdZdedefdZ dedefdZ!dedefdZ"dedefd Z# e       fded!ee   defd"Z$d%d
ed#edefd$Z%i ejL                  eejN                  eejP                  eejR                  eejT                  eejV                  eejX                  e ejZ                  e!ej\                  e"ej^                  e#ej`                  e$ejb                  eejd                  eejf                  eejh                  eejj                  eejl                  eejn                  eejp                  eejr                  eejt                  eejv                  eiZ<y)&    N)Set   )attrs   )	URL_MATCHz0([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)aY  com|org|edu|gov|net|mil|aero|asia|biz|cat|coop|info|int|jobs|mobi|museum|name|pro|tel|travel|xyz|icu|xxx|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cs|cu|cv|cx|cy|cz|dd|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|textreturnc                 ^    | D ](  }t        j                  |      j                  d      r( y y)NPFT)unicodedatacategory
startswithr	   chars     e/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/lang/lex_attrs.pyis_punctr      s2     ##D)44S9     c                 2    | D ]  }t        |      dk\  s y y)N   FT)ordr   s     r   is_asciir       s%     t9 r   c                 (   | j                  d      r| dd  } | j                  dd      j                  dd      } | j                         ry| j                  d      dk(  r5| j	                  d      \  }}|j                         r|j                         ryy)	N)+-   ±~r   , .T/F)r   replaceisdigitcountsplit)r	   numdenoms      r   like_numr(   '   s{    ,-ABx<<R ((b1D||~zz#!ZZ_
U;;=U]]_r   c                     d}| |v S )N)()[]{}<> )r	   bracketss     r   
is_bracketr4   5   s    7H8r   c                     d}| |v S )N)"'`   «   »   ‘   ’   ‚   ‛   “   ”   „   ‟   ‹   ›   ❮   ❯''``r2   )r	   quotess     r   is_quoterJ   :   s     IF6>r   c                     d}| |v S )N)r*   r,   r.   r0   r6   r7   r9   r;   r=   r>   r?   rA   rB   rC   rE   rH   r2   )r	   
left_puncts     r   is_left_punctrM   A   s    sJ:r   c                     d}| |v S )N)r+   r-   r/   r1   r6   r7   r:   r<   r@   rD   rF   rG   r2   )r	   right_puncts     r   is_right_punctrP   H   s    XK;r   c                 F    | D ]  }t        j                  |      dk7  s y y)NScFT)r   r   r   s     r   is_currencyrS   M   s,     %- r   c                 *    t        t        |             S N)bool_like_email)r	   s    r   
like_emailrX   U   s    D!""r   c                    | j                  d      s| j                  d      ry| j                  d      rt        |       dk\  ry| d   dk(  s| d   dk(  ry	d
| v ry	t        t        |             D ]  }| |   dk(  s n y	| j                  dd      d   j	                  dd      d   }|j                  d      ry|j                         r	|t        v ryt        |       ryy	)Nzhttp://zhttps://Tzwww.   r   r    F@r   :r!   )	r   lenrangersplitr%   endswithisalpha_tldsr   )r	   itlds      r   like_urlrf   Y   s     y!T__Z%@		 SY!^Aw#~bS
d{ 3t9 7c> 
++c1
a
 
&
&sA
.q
1C
||C
{{}r   c                 "   t        |       dk\  ryg }d}d}d}| D ]c  }|j                         r|j                         rd}nd}n|j                         rd}n|}||k(  r|dz  }nd}|}|d	k  sS|j	                  |       e dj                  |      S )
Nd   LONGr   r   Xxdr      )r^   rb   isupperr#   appendjoin)r	   shapelast
shape_charseqr   s         r   
word_shaperu   u   s    
4yCEDJ
C %<<>||~ 
 
\\^JJ1HCCD7LL$!%" 775>r   stringc                 "    | j                         S rU   lowerrv   s    r   ry   ry      s    <<>r   c                     | d   S )Nr   r2   rz   s    r   prefixr|      s    !9r   c                     | dd  S )Nr2   rz   s    r   suffixr      s    "#;r   c                 "    | j                         S rU   )rb   rz   s    r   is_alphar          >>r   c                 "    | j                         S rU   )r#   rz   s    r   is_digitr      r   r   c                 "    | j                         S rU   )islowerrz   s    r   is_lowerr      r   r   c                 "    | j                         S rU   )isspacerz   s    r   is_spacer      r   r   c                 "    | j                         S rU   )istitlerz   s    r   is_titler      r   r   c                 "    | j                         S rU   )rn   rz   s    r   is_upperr      r   r   stopsc                 &    | j                         |v S rU   rx   )rv   r   s     r   is_stopr      s    <<>U""r   langc                     |S rU   r2   )r	   r   s     r   get_langr      s	     Kr   )r   )=rer   typingr   r   r   tokenizer_exceptionsr   compilematchrW   setr%   rc   strrV   r   r   r(   r4   rJ   rM   rP   rS   rX   rf   ru   ry   r|   r   r   r   r   r   r   r   r   r   LOWERNORMPREFIXSUFFIXIS_ALPHAIS_DIGITIS_LOWERIS_SPACEIS_TITLEIS_UPPERIS_STOP
LIKE_EMAILLIKE_NUMIS_PUNCTIS_ASCIISHAPE
IS_BRACKETIS_QUOTEIS_LEFT_PUNCTIS_RIGHT_PUNCTIS_CURRENCYLIKE_URL	LEX_ATTRSr2   r   r   <module>r      sS   	    +bjjLMSS? @EuSz	 3 4 3 4 3 4 S T 
3 4     
c d #S #T #3 4 8S S 6# # 3 3 3 3 S T S T S T S T S T S T  ,/5 #C #C #T #3 c 3 	KK	JJ 
LL& 
LL&	
 
NNH 
NNH 
NNH 
NNH 
NNH 
NNH 
MM7 
j 
NNH 
NNH 
NNH  
KK!" 
j#$ 
NNH		.	{	NNH-	r   