
    Mh                    X    d Z ddlmZ ddlmZ  G d de          Z G d d          Zd	S )
zVariable class for URITemplate.    )annotations   )Charsetc                  .    e Zd ZU dZded<   d	dZd
dZdS )VariableInvalidErrorz'Exception thrown for invalid variables.strvariablereturnNonec                    || _         d S )Nr	   )selfr	   s     U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/uri_template/variable.py__init__zVariableInvalidError.__init__   s         c                    d| j         z   S )Convert to string.zBad variable: r   r   s    r   __str__zVariableInvalidError.__str__   s    $-//r   N)r	   r   r
   r   r
   r   __name__
__module____qualname____doc____annotations__r   r    r   r   r   r      sM         11MMM! ! ! !0 0 0 0 0 0r   r   c                  `    e Zd ZU dZded<   ded<   ded<   ded<   ded	<   d
ed<   ddZddZdS )VariablezS
    A template variable.

    https://tools.ietf.org/html/rfc6570#section-2.3
    r   namekeyint
max_lengthboolexplodearrayz
str | Nonedefaultvar_specr
   r   c                ^   d| _         d| _        d| _        d| _        d| _        d | _        |dd         t          j        vrt          |          d|v r|	                    dd          \  }| _        d|v r|	                    dd          \  }}dt          |          k     rlt          |          dk     rY|D ]%}|t          j        vrt          |dz   |z             &t          |          | _        | j        st          |dz   |z             nYt          |dz   |z             d|d	         k    r|d d	         }d
| _        n&d|dd          k    r|d d         }d
| _        d
| _        d}|t          |          k     r
||         }d|k    re|dz   t          |          k     rO||dz            t          j        v r8||dz            t          j        v r!| xj        |||dz            z  c_        |dz  }n~|t          j        v r| xj        |z  c_        n_d|k    r| j        | _         d| _        nEt          || j        rdt          | j                  z   ndz   | j        rdn
| j        rdndz             |dz  }|t          |          k     
| j         p| j        | _         | j        p| j         | _        d S )N r   Fr   =:   *T[]%      /)r    r!   r#   r%   r&   r'   r   	VAR_STARTr   splitlenDIGITr"   	HEX_DIGITVAR_CHARr   )r   r(   r#   digitindex	codepoints         r   r   zVariable.__init__#   s    	
QqSM!222&x0008OO%-^^C%;%;"Hdl8OO#+>>#q#9#9 HjS__$$3z??Q+>+>' P PEW]2228c>J3NOOO 3"%j// L.x#~
/JKKKL +8c>J+FGGGXb\!!}HDLLhrssm##}HDJDLs8}}$$ I	!!!)s8}}44!%!),0AAA!%!),0AAAHU519_55
w///I%"" H	*8X\Xg7pc$/>R>R8R8Rnp+q7;z.gddQUQ]Ifdf,i j j jQJE! s8}}$$$ Y*$(	H)	r   c                    | j         | j        r| j        | j         k    r
d| j         ndz   | j        r
d| j         ndz   | j        r	| j        sdndz   | j        rdndz   | j        
d| j         ndz   S )r   r5   r*   r,   r.   r0   Nr+   )r    r!   r#   r%   r&   r'   r   s    r   r   zVariable.__str__Z   s    	]dh$)>S>S^^^^[]^-1_E(t(((2G<C
C33EQUQ[Hdbdf +/,*B%t|%%%M 	Nr   N)r(   r   r
   r   r   r   r   r   r   r   r      s           IIIHHHOOOMMMKKK5+ 5+ 5+ 5+nN N N N N Nr   r   N)r   
__future__r   charsetr   	Exceptionr   r   r   r   r   <module>rC      s    % % " " " " " "      
0 
0 
0 
0 
09 
0 
0 
0JN JN JN JN JN JN JN JN JN JNr   