Ë
    ÖXËh‡  ã                  ó¼   — d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ erddlmZ ddlmZ  G d	„ d
e«      Z G d„ de«      Z G d„ d«      Zy)z=Process URI templates per http://tools.ietf.org/html/rfc6570.é    )ÚannotationsN)ÚTYPE_CHECKINGé   )ÚCommaExpansionÚ	ExpansionÚFormStyleQueryContinuationÚFormStyleQueryExpansionÚFragmentExpansionÚLabelExpansionÚLiteralÚPathExpansionÚPathStyleExpansionÚReservedCommaExpansionÚReservedExpansionÚSimpleExpansion)ÚIterable)ÚVariablec                  ó,   — e Zd ZU dZded<   dd„Zdd„Zy)	ÚExpansionReservedErrorz9Exception thrown for reserved but unsupported expansions.ÚstrÚ	expansionc                ó   — || _         y ©N©r   ©Úselfr   s     úL/var/www/html/myenv/lib/python3.12/site-packages/uri_template/uritemplate.pyÚ__init__zExpansionReservedError.__init__   ó	   € Ø"ˆó    c                ó    — d| j                   z   S )úConvert to string.zUnsupported expansion: r   ©r   s    r   Ú__str__zExpansionReservedError.__str__   s   € à(¨4¯>©>Ñ9Ð9r    N©r   r   ÚreturnÚNone©r&   r   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r$   © r    r   r   r      s   … ÙCàƒNó#ô:r    r   c                  ó,   — e Zd ZU dZded<   dd„Zdd„Zy)	ÚExpansionInvalidErrorz(Exception thrown for unknown expansions.r   r   c                ó   — || _         y r   r   r   s     r   r   zExpansionInvalidError.__init__%   r   r    c                ó    — d| j                   z   S )r"   zBad expansion: r   r#   s    r   r$   zExpansionInvalidError.__str__(   s   € à  4§>¡>Ñ1Ð1r    Nr%   r(   r)   r/   r    r   r1   r1       s   … Ù2àƒNó#ô2r    r1   c                  óz   — e Zd ZU dZded<   dd„Zedd„«       Zedd„«       Zdd„Z	dd„Z
edd	„«       Zdd
„Zdd„Zy)ÚURITemplatez
    URI Template object.

    Constructor may raise ExpansionReservedError, ExpansionInvalidError, or VariableInvalidError.
    zlist[Expansion]Ú
expansionsc                óô  — g | _         t        j                  d|«      }|D ]U  }|sŒd|d   k(  rd|d   k(  r|dd }t        j                  d|«      r%| j                   j	                  t        |«      «       ŒYd|d   k(  r%| j                   j	                  t        |«      «       Œ†d	|d   k(  r%| j                   j	                  t        |«      «       Œ³d
|d   k(  r%| j                   j	                  t        |«      «       Œàd|d   k(  r&| j                   j	                  t        |«      «       Œd|d   k(  r&| j                   j	                  t        |«      «       Œ<d|d   k(  r&| j                   j	                  t        |«      «       Œjd|d   k(  r&| j                   j	                  t        |«      «       Œ˜d|d   k(  rbdt        |«      k  r.d|d   k(  r&| j                   j	                  t        |«      «       ŒÜ| j                   j	                  t        |«      «       Œ|d   dv rt!        |«      ‚t#        |«      ‚d|vr*d|vr&| j                   j	                  t%        |«      «       ŒMt#        |«      ‚ y )Nz(\{[^\}]*\})ú{r   ú}éÿÿÿÿr   z*^([a-zA-Z0-9_]|%[0-9a-fA-F][0-9a-fA-F]).*$ú+ú#ú.ú/ú;ú?ú&ú,é   z=!@|)r6   ÚreÚsplitÚmatchÚappendr   r   r
   r   r   r   r	   r   Úlenr   r   r   r1   r   )r   ÚtemplateÚpartsÚpartr   s        r   r   zURITemplate.__init__6   s  € ØˆŒÜ—‘˜¨(Ó3ˆØó !	:ˆDÚØ˜D ™G“^¨#°°b±«/Ø $ Q r 
IÜŸ™Ð!MÈyÔYØŸ™×.Ñ.¬¸yÓ/IÕJØ  a¡š.ØŸ™×.Ñ.Ô/@ÀÓ/KÕLØ  a¡š.ØŸ™×.Ñ.Ô/@ÀÓ/KÕLØ  a¡š.ØŸ™×.Ñ.¬~¸iÓ/HÕIØ  a¡š.ØŸ™×.Ñ.¬}¸YÓ/GÖHØ  a¡š.ØŸ™×.Ñ.Ô/AÀ)Ó/LÖMØ  a¡š.ØŸ™×.Ñ.Ô/FÀyÓ/QÖRØ  a¡š.ØŸ™×.Ñ.Ô/IÈ)Ó/TÖUØ  a¡š.Ø¤ T£š]°¸¸Q¹²Ø ŸO™O×2Ñ2Ô3IÈ)Ó3TÖUà ŸO™O×2Ñ2´>À)Ó3LÖMØ˜q™' VÑ+Ü4°TÓ:Ð:ä3°DÓ9Ð9à D™¨s¸$©ØŸ™×.Ñ.¬w°t«}Ö=ä3°DÓ9Ð9ñC!	:r    c                óˆ   — i }| j                   D ]"  }|j                  D ]  }|||j                  <   Œ Œ$ |j                  «       S )zGet all variables in template.©r6   Ú	variablesÚnameÚvalues©r   Úvarsr   Úvars       r   rN   zURITemplate.variables\   sL   € ð %'ˆØŸ™ò 	%ˆIØ ×*Ñ*ò %Ø!$S—X‘X’ñ%ð	%ð {‰{‹}Ðr    c                óÂ   — i }| j                   D ]"  }|j                  D ]  }|||j                  <   Œ Œ$ |j                  «       D cg c]  }|j                  ‘Œ c}S c c}w )z'Get names of all variables in template.rM   rQ   s       r   Úvariable_nameszURITemplate.variable_namese   s^   € ð %'ˆØŸ™ò 	%ˆIØ ×*Ñ*ò %Ø!$S—X‘X’ñ%ð	%ð %)§K¡K£MÖ2˜S—“Ò2Ð2ùÒ2s   ÁAc                óª   — | j                   D cg c]  }|j                  |«      ‘Œ }}dj                  |D cg c]  }|€Œ|‘Œ	 c}«      S c c}w c c}w )zŽ
        Expand the template.

        May raise ExpansionFailed if a composite value is passed to a variable with a prefix modifier.
        Ú )r6   ÚexpandÚjoin©r   Úkwargsr   Úexpandeds       r   rX   zURITemplate.expandn   sO   € ð ?C¿o¹oÖN°I×$Ñ$ VÕ,ÐNˆÐNØw‰w°8ÖW iÀ	Ñ@Uš	ÒWÓXÐXùò OùÚWs   A¸AÁ Ac                ó   — | j                   D cg c]  }|j                  |«      ‘Œ }}t        dj                  |«      «      S c c}w )z»
        Expand the template, preserving expansions for missing variables.

        May raise ExpansionFailed if a composite value is passed to a variable with a prefix modifier.
        rW   )r6   Úpartialr5   rY   rZ   s       r   r^   zURITemplate.partialw   sB   € ð @D¿¹ÖO°)I×%Ñ% fÕ-ÐOˆÐOÜ˜2Ÿ7™7 8Ó,Ó-Ð-ùò Ps   Ac                ó:   — t        | «      | j                  «       k(  S )z(Determine if template is fully expanded.)r   rX   r#   s    r   r\   zURITemplate.expanded€   s   € ô D“	˜TŸ[™[›]Ñ*Ð+r    c                óp   — dj                  | j                  D cg c]  }t        |«      ‘Œ c}«      S c c}w )ú-Convert to string, returns original template.rW   )rY   r6   r   r   s     r   r$   zURITemplate.__str__…   s'   € àw‰w¸¿¹ÖH¨9œ˜IÒHÓIÐIùÒHs   š3c                ó   — t        | «      S )ra   )r   r#   s    r   Ú__repr__zURITemplate.__repr__‰   s   € ä4‹yÐr    N)rI   r   r&   r'   )r&   zIterable[Variable])r&   zIterable[str]r(   )r&   r5   )r&   Úbool)r*   r+   r,   r-   r.   r   ÚpropertyrN   rU   rX   r^   r\   r$   rc   r/   r    r   r5   r5   -   sg   … ñð  Óó$:ðL òó ðð ò3ó ð3óYó.ð ò,ó ð,óJôr    r5   )r-   Ú
__future__r   rD   Útypingr   r6   r   r   r   r	   r
   r   r   r   r   r   r   r   Úcollections.abcr   Úvariabler   Ú	Exceptionr   r1   r5   r/   r    r   ú<module>rk      sX   ðÙ Cå "ã 	Ý  ÷U÷ U÷ Uó Uñ Ý(Ý"ô
:˜Yô 
:ô
2˜Iô 
2÷^ò ^r    