
    bi                    J    d Z ddlmZ ddlmZ  G d de      Z G d d      Zy	)
zVariable class for URITemplate.    )annotations   )Charsetc                  ,    e Zd ZU dZded<   ddZddZy)	VariableInvalidErrorz'Exception thrown for invalid variables.strvariablec                    || _         y )Nr	   )selfr	   s     P/home/cdr/jupyterlab/.venv/lib/python3.12/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   returnNoner   r   __name__
__module____qualname____doc____annotations__r   r    r   r   r   r      s    1M!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y)VariablezS
    A template variable.

    https://tools.ietf.org/html/rfc6570#section-2.3
    r   namekeyint
max_lengthboolexplodearrayz
str | Nonedefaultc                T   d| _         d| _        d| _        d| _        d| _        d | _        |dd t        j                  vrt        |      d|v r|j                  dd      \  }| _        d|v r|j                  dd      \  }}dt        |      k  ret        |      dk  rW|D ]%  }|t        j                  vst        |dz   |z          t        |      | _        | j                  sRt        |dz   |z         t        |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(  rb|dz   t        |      k  rQ||dz      t        j                  v r9||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| _        n]t        || j                  rdt        | j                        z   ndz   | j                  rdz         | j                  rdz         dz         |dz  }|t        |      k  r$| j                   xs | j                  | _         | j                  xs | j                   | _        y )N r   Fr   =:   *T[]%      /)r    r!   r#   r%   r&   r'   r   	VAR_STARTr   splitlenDIGITr"   	HEX_DIGITVAR_CHARr   )r   var_specr#   digitindex	codepoints         r   r   zVariable.__init__#   s   	
QqM!2!22&x008O%-^^C%;"Hdl8O#+>>#q#9 HjS_$3z?Q+>' PEW]]228c>J3NOOP #&j/.x#~
/JKK*8c>J+FGGXb\!}HDLhrsm#}HDJDLs8}$ I	!!)s8}4!%!),0A0AA!%!),0A0AAHU51955
w///I%" HH	*8X\XgXgc$//>R8Rnp+q7;zzd,i j jQUQ]Q],i j jdf,i j jQJE! s8}$$ YY*$((	HH)		r   c                `   | j                   | j                  r(| j                  | j                   k7  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
                   z   S dz   S )r   r4   r)   r+   r-   r/   r*   )r    r!   r#   r%   r&   r'   r   s    r   r   zVariable.__str__Z   s    		dhh$))>Sq
^[]^-1__Qt'(2G<<

3EQUQ[Q[bdf +/,,*BQt||n%M 	N JLM 	Nr   N)r;   r   r   r   r   r   r   r   r   r   r      s4     I	HOMK5+nNr   r   N)r   
__future__r   charsetr   	Exceptionr   r   r   r   r   <module>rC      s(    % " 
09 
0JN JNr   