Format: application/x-python-code
⬇ Download File (9.4 KB)
   1  o
   2  
   3  .'h�3�
   4  @sfddlZddlZddlZddlmZmZddlmZddlm	Z	dZ
   5  dZe�d�Z
   6  Gd	d
   7  �d
   8  e�ZGdd�de�ZGd
   9  d�de�ZGdd�de�Zdedefdd�Zdededefdd�Zdedefdd�Zdedefdd�Zdeeefdefdd�Zdeeefd edefd!d"�ZdEded$edefd%d&�Zdedefd'd(�Zdedefd)d*�Zdeddfd+d,�Z ded-edefd.d/�Z!dEded-ed0edefd1d2�Z"deeee#fddfd3d4�Z$dedefd5d6�Z%deeee#fdefd7d8�Z&dFd:ed;ed<edefd=d>�Z'	#	#	#	#dGdeeee#fd?ed@ed;ed<edefdAdB�Z(	#	#	#dHdeeee#fd?ed@ed;edef
  10  dCdD�Z)dS)I�N)�Optional�Union�)�idnadata)�intranges_contain�	sxn--u[.。.。]c@�eZdZdZdS)�	IDNAErrorz5Base exception for all IDNA-encoding related problemsN��__name__�
  11  __module__�__qualname__�__doc__�rr�?C:\Users\shubh\Videos\agent\nova\Lib\site-packages\idna/core.pyr	�r	c@r)�
  12  IDNABidiErrorz;Exception when bidirectional requirements are not satisfiedNr
  13  rrrrrrrc@r)�InvalidCodepointz<Exception when a disallowed or unallocated codepoint is usedNr
  14  rrrrrrrc@r)�InvalidCodepointContextzCException when the codepoint is not valid in the context it is usedNr
  15  rrrrr rr�cp�returncCs0t�t|��}|dkrt�t|��std��|S)Nrz Unknown character in unicodedata)�unicodedata�	combining�chr�name�
  16  ValueError)r�vrrr�_combining_class&s
  17  r�scriptcCstt|�tj|�S)N)r�ordr�scripts)rrrrr�
  18  _is_script.sr!�scCs
  19  |�d�S)N�punycode)�encode�r"rrr�	_punycode2�
  20  r&cCs
  21  d�|�S)NzU+{:04X})�formatr%rrr�_unot6r'r)�labelcCst|�dkrdSdS)N�?FT��len�r*rrr�valid_label_length:sr/�trailing_dotcCst|�|rdndkrdSdS)N����FTr,)r*r0rrr�valid_string_length@sr3F�	check_ltrc	CsPd}t|d�D]\}}t�|�}|dkrtd�t|�|���|dvr$d}q|s+|s+dSt�|d�}|dvr9d}n|d	kr@d}n	td
  22  �t|����d}d}t|d�D]M\}}t�|�}|r�|dvrhtd�|���|d
  23  vrod}n|dkrud}|dvr�|s~|}qR||kr�td��qR|dvr�td�|���|dvr�d}qR|dkr�d}qR|s�td��dS)NFr�z1Unknown directionality in label {} at position {})�R�AL�ANTr)r6r7�Lz=First codepoint in label {} must be directionality L, R or AL)
  24  r6r7r8�EN�ES�CS�ET�ON�BN�NSMzGInvalid direction for codepoint at position {} in a right-to-left label)r6r7r:r8r@)r8r:z2Can not mix numeral types in a right-to-left label)r9r:r;r<r=r>r?r@zGInvalid direction for codepoint at position {} in a left-to-right label)r9r:z0Label ends with illegal codepoint directionality)�	enumerater�
  25  bidirectionalrr(�repr)	r*r4�
  26  bidi_label�idxr�	direction�rtl�valid_ending�number_typerrr�
  27  check_bidiFsV
  28  �
  29  ��rJcCs"t�|d�ddkrtd��dS)Nr�Mz0Label begins with an illegal combining characterT)r�categoryr	r.rrr�check_initial_combiner�srMcCs<|dd�dkrtd��|ddks|ddkrtd��d	S)
  30  N��z--z4Label has disallowed hyphens in 3rd and 4th positionr�-�����z)Label must not start or end with a hyphenT)r	r.rrr�check_hyphen_ok�s
  31  rRcCst�d|�|krtd��dS)N�NFCz%Label must be in Normalization Form C)r�	normalizer	r.rrr�	check_nfc�s�rU�poscCs0t||�}|dkr~|dkrtt||d��tkrdSd}t|ddd�D]!}tj�t||��}|td�kr9q&|td�td	�fvrGd}n|sLdSd}t|dt|��D]$}tj�t||��}|td�krjqW|td
  32  �td	�fvryd}|S|S|S|dkr�|dkr�tt||d��tkr�dSdSdS)Ni rrTFrQ�Tr9�Dr6i
  33   )rr�_virama_combining_class�ranger�
  34  joining_types�getr-)r*rV�cp_value�ok�i�joining_typerrr�valid_contextj�sB�ra�	exceptioncCs�t||�}|dkr3d|krt|�dkr1ndSt||d�dkr1t||d�dkr1dSdS|dkrP|t|�dkrNt|�dkrNt||dd�SdS|d	ksX|d
  35  krg|dkret||dd�SdS|dkr�|D]}|d
  36  krtqmt|d�s�t|d�s�t|d�r�dSqmdSd|kr�dkr�nn|D]}dt|�kr�dkr�dSq�q�dSd|kr�dkr�ndS|D]}dt|�kr�dkr�dSq�q�dSdS)N�rr�lTFiu�Greeki�i��Hebrewi�0u・�Hiragana�Katakana�Hani`iii�i�)rr-r!)r*rVrbr]rrrr�valid_contexto�sJ(�����rjcCs<t|ttf�r|�d�}t|�dkrtd��t|�t|�t|�t	|�D]q\}}t
  37  |�}t|tj
  38  d�r7q&t|tj
  39  d�rlzt||�sTtd�t|�|dt|����Wq&tyktd�t|�|dt|����wt|tj
  40  d	�r�t||�s�td
  41  �t|�|dt|����q&td�t|�|dt|����t|�dS)Nzutf-8rzEmpty Label�PVALID�CONTEXTJz*Joiner {} not allowed at position {} in {}rz<Unknown codepoint adjacent to joiner {} at position {} in {}�CONTEXTO�-Codepoint {} not allowed at position {} in {}z-Codepoint {} at position {} of {} not allowed)�
  42  isinstance�bytes�	bytearray�decoder-r	rUrRrMrArrr�codepoint_classesrarr(r)rCrrjrrJ)r*rVrr]rrr�check_label�sF
  43  
  44  �����
  45  ���rtcCsdz|�d�}t|�t|�std��|WStyYnwt|�tt|�}t|�s0td��|S)N�asciizLabel too long)r$�ulabelr/r	�UnicodeEncodeErrorrt�_alabel_prefixr&�r*�label_bytesrrr�alabels
  46  �r{cCs�t|ttf�sz|�d�}Wntyt|�|YSw|}|��}|�t�rE|t	t�d�}|s7t
  47  d��|�d�ddkrDt
  48  d��n	t|�|�d�Sz|�d�}Wnty`t
  49  d��wt|�|S)Nruz5Malformed A-label, no Punycode eligible content foundrQrPz"A-label must not end with a hyphenr#zInvalid A-label)
  50  rorprqr$rwrt�lower�
  51  startswithrxr-r	rr�UnicodeErrorryrrrrv/s2�
  52  �
  53  �rvT�domain�
  54  std3_rules�transitionalcCsddlm}d}t|�D]{\}}t|�}z]||dkr|n	t�||df�d}|d}	d}
  55  t|�dkr7|d}
  56  |	d	ksK|	d
  57  krA|rK|	dkrP|sP|
  58  durP||7}n |
  59  duri|	dksd|	dkr^|rd|	d
  60  kri|ri||
  61  7}n|	d
  62  krpt��Wqty�td�t	|�|dt
  63  |����wt�d|�S)zBRe-map the characters in the string according to UTS46 processing.r)�	uts46datar5��ZN�rN�VrX�3rK�IrnrS)
  64  r�rAr�bisect�bisect_leftr-�
  65  IndexErrorrr(r)rCrrT)rr�r�r��outputrV�char�
  66  code_point�uts46row�status�replacementrrr�uts46_remapLs4$
  67   
  68  ���r��strict�uts46c	Cs�t|t�szt|d�}Wntytd��w|r t|||�}d}g}|r,|�d�}nt�|�}|r8|dgkr<td��|ddkrG|d=d}|D]}t|�}|rW|�|�qItd	��|rb|�d
  69  �d�	|�}t
  70  ||�sptd��|S)
  71  NruzGshould pass a unicode string to the function rather than a byte string.F�.r5�Empty domainrQT�Empty label��.zDomain too long)ro�str�UnicodeDecodeErrorr	r��split�_unicode_dots_rer{�append�joinr3)	r"r�r�r�r�r0�result�labelsr*rrrr$ns:
  72  �
  73  
  74  
  75  
  76  r$cCs�zt|t�st|d�}Wntytd��w|r t||d�}d}g}|s,t�|�}n|�d�}|r8|dgkr<td��|dsE|d=d}|D]}t|�}|rU|�|�qGtd	��|r`|�d�d�	|�S)
  77  NruzInvalid ASCII in A-labelFr�r5r�rQTr�)
  78  ror�r�r	r�r�r�rvr�r�)r"r�r�r�r0r�r�r*rrrrr�s6
  79  
  80  ��
  81  
  82  
  83  rr)F)TF)FFFF)FFF)*r��rer�typingrrr5r�	intrangesrrYrx�compiler�r~r	rrr�intrr��boolr!rpr&r)r/r3rJrMrRrUrarjrqrtr{rvr�r$rrrrrr�<module>sx
  84  F,*'$������
  85  �)������