
    h                    J    S r SSKJr  SSKJr   " S S\5      r " S S5      rg	)
zVariable class for URITemplate.    )annotations   )Charsetc                  8    \ rS rSr% SrS\S'   S	S jrS
S jrSrg)VariableInvalidError   z'Exception thrown for invalid variables.strvariablec                    Xl         g )Nr
   )selfr
   s     hC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\uri_template/variable.py__init__VariableInvalidError.__init__   s         c                     SU R                   -   $ )Convert to string.zBad variable: r   r   s    r   __str__VariableInvalidError.__str__   s    $--//r   r   N)r
   r	   returnNoner   r	   	__name__
__module____qualname____firstlineno____doc____annotations__r   r   __static_attributes__ r   r   r   r      s    1M!0r   r   c                  j    \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   SS jrSS jrSrg)Variable   zG
A template variable.

https://tools.ietf.org/html/rfc6570#section-2.3
r	   namekeyint
max_lengthboolexplodearrayz
str | Nonedefaultc                   SU l         SU l        SU l        SU l        SU l        S U l        USS [        R                  ;  a  [        U5      eSU;   a  UR                  SS5      u  ol        SU;   a  UR                  SS5      u  pS[        U5      :  ap  [        U5      S:  aa  U H(  nU[        R                  ;  d  M  [        US-   U-   5      e   [        U5      U l        U R                  (       d  [        US-   U-   5      eOC[        US-   U-   5      eSUS	   :X  a  US S	 nS
U l        OSUSS  :X  a  US S nS
U l        S
U l        SnU[        U5      :  Ga9  X   nSU:X  ad  US-   [        U5      :  aR  XS-      [        R                  ;   a9  XS-      [        R                  ;   a   U =R                  XUS-    -  sl        US-  nOU[        R                  ;   a  U =R                  U-  sl        OSU:X  a  U R                  U l         SU l        Ok[        XR                  (       a  S[        U R                  5      -   OS-   U R                  (       a  S-   5      eU R                  (       a  S-   5      eS-   5      eUS-  nU[        U5      :  a  GM9  U R                   =(       d    U R                  U l         U R                  =(       d    U R                   U l        g )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   Variable.__init__#   s   	
QqM!2!22&x008O%-^^C%;"Hl8O#+>>#q#9 HS_$3z?Q+>'EW]]228c>J3NOO ( #&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H51955
w///I%" HH	*8XgXgc$//>R8Rnp+q7;zzd,i j jQUQ]Q],i j jdf,i j jQJE! s8}$$ YY*$((	HH)		r   c                   U R                   U R                  (       a)  U R                  U R                   :w  a  SU R                   3OS-   U R                  (       a  SU R                   3OS-   U R                  (       a  U R                  (       d  SOS-   U R                  (       a  SOS-   U R
                  b  SU R
                   3-   $ S-   $ )r   r:   r/   r1   r3   r5   r0   )r&   r'   r)   r+   r,   r-   r   s    r   r   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   )r,   r-   r+   r'   r)   r&   N)rA   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>rK      s(    % " 
09 
0JN JNr   