ó
    §ZÇh‡  ã                  óÆ   • S r SSKJr  SSKrSSKJr  SSKJrJrJ	r	J
r
JrJrJrJrJrJrJrJr  \(       a  SSKJr  SSKJr   " S	 S
\5      r " S S\5      r " S S5      rg)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                  ó8   • \ rS rSr% SrS\S'   S	S jrS
S jrSrg)ÚExpansionReservedErroré   z9Exception thrown for reserved but unsupported expansions.ÚstrÚ	expansionc                ó   • Xl         g ©N©r   ©Úselfr   s     ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/uri_template/uritemplate.pyÚ__init__ÚExpansionReservedError.__init__   ó   € Ø"�ó    c                ó    • SU R                   -   $ )úConvert to string.zUnsupported expansion: r   ©r   s    r   Ú__str__ÚExpansionReservedError.__str__   s   € à(¨4¯>©>Ñ9Ð9r"   r   N©r   r   ÚreturnÚNone©r)   r   ©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r   r&   Ú__static_attributes__© r"   r   r   r      s   ‡ ÙCàƒNô#÷:r"   r   c                  ó8   • \ rS rSr% SrS\S'   S	S jrS
S jrSrg)ÚExpansionInvalidErroré    z(Exception thrown for unknown expansions.r   r   c                ó   • Xl         g r   r   r   s     r   r   ÚExpansionInvalidError.__init__%   r!   r"   c                ó    • SU R                   -   $ )r$   zBad expansion: r   r%   s    r   r&   ÚExpansionInvalidError.__str__(   s   € à  4§>¡>Ñ1Ð1r"   r   Nr(   r+   r,   r4   r"   r   r6   r6       s   ‡ Ù2àƒNô#÷2r"   r6   c                  ó’   • \ rS rSr% SrS\S'   SS jr\SS j5       r\SS j5       r	SS jr
SS	 jr\SS
 j5       rSS jrSS jrSrg)ÚURITemplateé-   zu
URI Template object.

Constructor may raise ExpansionReservedError, ExpansionInvalidError, or VariableInvalidError.
zlist[Expansion]Ú
expansionsc                óJ  • / U l         [        R                  " SU5      nU GH~  nU(       d  M  SUS   :X  Ga,  SUS   :X  Ga"  USS n[        R                  " SU5      (       a&  U R                   R	                  [        U5      5        Mh  SUS   :X  a&  U R                   R	                  [        U5      5        M—  S	US   :X  a&  U R                   R	                  [        U5      5        MÆ  S
US   :X  a&  U R                   R	                  [        U5      5        Mõ  SUS   :X  a'  U R                   R	                  [        U5      5        GM%  SUS   :X  a'  U R                   R	                  [        U5      5        GMU  SUS   :X  a'  U R                   R	                  [        U5      5        GM…  SUS   :X  a'  U R                   R	                  [        U5      5        GMµ  SUS   :X  af  S[        U5      :  a0  SUS   :X  a'  U R                   R	                  [        U5      5        GMý  U R                   R	                  [        U5      5        GM$  US   S;   a  [!        U5      e[#        U5      eSU;  a-  SU;  a'  U R                   R	                  [%        U5      5        GMv  [#        U5      e   g )Nz(\{[^\}]*\})Ú{r   Ú}éÿÿÿÿr   z*^([a-zA-Z0-9_]|%[0-9a-fA-F][0-9a-fA-F]).*$Ú+Ú#Ú.Ú/Ú;Ú?Ú&Ú,é   z=!@|)r?   ÚreÚsplitÚmatchÚappendr   r   r
   r   r   r   r	   r   Úlenr   r   r   r6   r   )r   ÚtemplateÚpartsÚpartr   s        r   r   ÚURITemplate.__init__6   s  € ØˆŒÜ—’˜¨(Ó3ˆÜˆDß�Ø˜D ™G”^¨#°°b±¬/Ø $ Q r 
�IÜŸšÐ!MÈy×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                óŽ   • 0 nU R                    H$  nUR                   H  nX1UR                  '   M     M&     UR                  5       $ )zGet all variables in template.©r?   Ú	variablesÚnameÚvalues©r   Úvarsr   Úvars       r   rX   ÚURITemplate.variables\   s@   € ð %'ˆØŸœˆIØ ×*Ô*�Ø!$�S—X‘X“ó +ñ )ð �{‰{‹}Ðr"   c                óÌ   • 0 nU R                    H$  nUR                   H  nX1UR                  '   M     M&     UR                  5        Vs/ s H  o3R                  PM     sn$ s  snf )z'Get names of all variables in template.rW   r[   s       r   Úvariable_namesÚURITemplate.variable_namese   sT   € ð %'ˆØŸœˆIØ ×*Ô*�Ø!$�S—X‘X“ó +ñ )ð %)§K¡K¤MÓ2¢M˜S—”¡MÑ2Ð2ùÒ2s   Á	A!c                ó¶   • U R                    Vs/ s H  o"R                  U5      PM     nnSR                  U Vs/ s H	  o"c  M  UPM     sn5      $ s  snf s  snf )zv
Expand the template.

May raise ExpansionFailed if a composite value is passed to a variable with a prefix modifier.
Ú )r?   ÚexpandÚjoin©r   Úkwargsr   Úexpandeds       r   rd   ÚURITemplate.expandn   sM   € ð ?C¿oºoÓNºo°×$Ñ$ VÖ,¹oˆÐNØ�w‰w±8ÓW²8 iŸ	±8ÑWÓXÐXùò OùÚWs   �AºAÁAc                ó”   • U R                    Vs/ s H  o"R                  U5      PM     nn[        SR                  U5      5      $ s  snf )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.
rc   )r?   Úpartialr=   re   rf   s       r   rk   ÚURITemplate.partialw   sA   € ð @D¿ºÓOº°)×%Ñ% fÖ-¹ˆÐOÜ˜2Ÿ7™7 8Ó,Ó-Ð-ùò Ps   �Ac                ó:   • [        U 5      U R                  5       :H  $ )z(Determine if template is fully expanded.)r   rd   r%   s    r   rh   ÚURITemplate.expanded€   s   € ô �D“	˜TŸ[™[›]Ñ*Ð+r"   c                óv   • SR                  U R                   Vs/ s H  n[        U5      PM     sn5      $ s  snf )ú-Convert to string, returns original template.rc   )re   r?   r   r   s     r   r&   ÚURITemplate.__str__…   s+   € à�w‰w¸¿ºÓHº¨9œ˜Iž¹ÑHÓIÐIùÒHs   š6c                ó   • [        U 5      $ )rp   )r   r%   s    r   Ú__repr__ÚURITemplate.__repr__‰   s   € ä�4‹yÐr"   )r?   N)rR   r   r)   r*   )r)   zIterable[Variable])r)   zIterable[str]r+   )r)   r=   )r)   Úbool)r-   r.   r/   r0   r1   r2   r   ÚpropertyrX   r`   rd   rk   rh   r&   rs   r3   r4   r"   r   r=   r=   -   sg   ‡ ñð  Óô$:ðL óó ðð ó3ó ð3ôYô.ð ó,ó ð,ôJ÷r"   r=   )r1   Ú
__future__r   rM   Útypingr   r?   r   r   r   r	   r
   r   r   r   r   r   r   r   Úcollections.abcr   Úvariabler   Ú	Exceptionr   r6   r=   r4   r"   r   Ú<module>r|      sX   ðÙ Cå "ã 	Ý  ÷U÷ U÷ Uó Uö Ý(Ý"ô
:˜Yô 
:ô
2˜Iô 
2÷^ò ^r"   