ó
    Ð]jÝ  ã                  ó,  • S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SS	KJrJr  SS
KJr  \R"                  R$                  r\R(                  R$                  r\R,                  R$                  rSrSrSr " S S5      rSSS jjrSSS jjrg)z&
Template strings support in queries.
é    )Úannotations)ÚAnyé   )Úabc)Úerrors)Úsql)ÚPyFormat)ÚInterpolationÚTemplate)ÚTransformerÚiÚlÚqc                  óZ   • \ rS rSrSS jrSS jrSS jrSS jrSS jrSS jr	SS jr
S	rg
)ÚTemplateProcessoré   c               ó`   • Xl         X l        X0l        SU l        / U l        / U l        / U l        g ©Nó    )ÚtemplateÚ_txÚ_server_paramsÚqueryÚformatsÚparamsÚ_chunks)Úselfr   ÚtxÚserver_paramss       ÚN/home/mande/repo/quber/.venv/lib/python3.13/site-packages/psycopg/_tstrings.pyÚ__init__ÚTemplateProcessor.__init__   s.   € Ø ŒØŒØ+ÔàˆŒ
Ø')ˆŒØ!#ˆŒà$&ˆ�r   c                óz   • U R                  U R                  5        SR                  U R                  5      U l        g r   )Ú_process_templater   Újoinr   r   )r   s    r    ÚprocessÚTemplateProcessor.process'   s(   € Ø×Ñ˜tŸ}™}Ô-Ø—X‘X˜dŸl™lÓ+ˆ�
r   c                ó   • UR                   U:X  a  g UR                   (       a  SUR                    3OSn[        UR                  5      nUR                   SUR                   SU S3n[
        R                  " U SUR                   U S35      e)NÚ:Ú Ú.z require format ':Ú'z; got '{ú}')Úformat_specÚtypeÚvalueÚ
__module__Ú__qualname__ÚeÚProgrammingErrorÚ
expression)r   ÚitemÚwant_fmtÚfmtÚclsÚmsgs         r    Ú_check_template_formatÚ(TemplateProcessor._check_template_format+   sŠ   € Ø×Ñ˜xÓ'ØØ(,×(8×(8��$×"Ñ"Ð#Ñ$¸bˆÜ�4—:‘:ÓˆØ—‘Ð   #×"2Ñ"2Ð!3Ð3EÀhÀZÈqÐQˆÜ× Ò  C 5¨	°$·/±/Ð1BÀ3À%ÀsÐ!KÓLÐLr   c           
     ó  • U GHú  n[        U[        5      (       a@  U R                  R                  UR	                  U R
                  R                  5      5        MY  [        U[        5      (       d   eUR                  (       a&  [        SUR                   SUR                   S35      e[        UR                  [        5      (       a3  U R                  U[        5        U R                  UR                  5        Mù  [        UR                  [         R"                  5      (       a  U R%                  U5        GM6  UR&                  =(       d    [(        =n[*        :X  a»  [        UR                  [        5      (       dG  [,        R.                  " S[1        UR                  5      R2                   SUR                   SU S35      eU R                  R                  [         R4                  " UR                  5      R7                  U R
                  5      5        GM  U[8        :X  aU  U R                  R                  [         R:                  " UR                  5      R7                  U R
                  5      5        GMs  U[        :X  aG  [,        R.                  " S[1        UR                  5      R2                   SUR                   SU S35      eU R<                  (       a  U R?                  X#5        GMé  U RA                  X#5        GMý     g )	Nz*conversions not supported in query; got '{Ú!r-   z'identifier values must be strings; got z in {r)   Ú}z;sql values must be sql.Composed, sql.SQL, or Template; got )!Ú
isinstanceÚstrr   ÚappendÚencoder   Úencodingr
   Ú
conversionÚ	TypeErrorr5   r0   r   r;   ÚFMT_SQLr$   r   Ú
ComposableÚ_process_composabler.   ÚFMT_AUTOÚ	FMT_IDENTr3   r4   r/   r2   Ú
IdentifierÚas_bytesÚFMT_LITERALÚLiteralr   Ú_process_server_variableÚ_process_client_variable)r   Útr6   r8   s       r    r$   Ú#TemplateProcessor._process_template3   s,  € ÜˆDÜ˜$¤×$Ñ$Ø—‘×#Ñ# D§K¡K°·±×0AÑ0AÓ$BÔCÙä˜d¤M×2Ñ2Ð2Ð2Ø��ÜðØŸ?™?Ð+¨1¨T¯_©_Ð,=¸SðBóð ô
 ˜$Ÿ*™*¤h×/Ñ/Ø×+Ñ+¨D´'Ô:Ø×&Ñ& t§z¡zÖ2ä˜DŸJ™J¬¯©×7Ñ7Ø×(Ñ(¨×.à×)Ñ)×5¬XÐ5�#¼)ÓCÜ! $§*¡*¬c×2Ñ2Ü×,Ò,ðÜ  §¡Ó,×9Ñ9Ð:Ø  §¡Ð 1°°3°%°rð;óð ð
 —‘×#Ñ#¤C§N¢N°4·:±:Ó$>×$GÑ$GÈÏÉÓ$Q×RàœÓ#Ø—‘×#Ñ#¤C§K¢K°·
±
Ó$;×$DÑ$DÀTÇXÁXÓ$N×Oàœ“ä×(Ò(ðÜ  §¡Ó,×9Ñ9Ð:Ø˜TŸ_™_Ð-¨Q¨s¨e°2ð7óð ð ×&×&Ø×1Ñ1°$×<à×1Ñ1°$×<òW r   c           
     ón  •  [        U5      nU R
                  R                  U5        U R                  R                  UR                  5        U R                  R                  S[        U R                  5      -  5        g ! [         a+    [        R                  " SU SUR                   SU S35      ef = f)Núformat 'ú ' not supported in query; got '{r)   r-   s   $%d)r	   Ú
ValueErrorr3   r4   r5   r   rB   r   r0   r   Úlen)r   r6   r8   Úpyfmts       r    rP   Ú*TemplateProcessor._process_server_variablea   s¡   € ð	Ü˜S“MˆEð 	�‰×Ñ˜EÔ"Ø�‰×Ñ˜4Ÿ:™:Ô&Ø�‰×Ñ˜F¤S¨¯©Ó%5Ñ5Õ6øô ó 	Ü×$Ò$Ø˜3˜%ð  ØŸ?™?Ð+¨1¨S¨E°ð6óð ð	ús   ‚A? Á?5B4c           
     ój  •  [        U5        [
        R                  " UR                  5      R                  U R                  5      nU R                  R                  U5        U R                  R                  U5        g ! [         a+    [        R                  " SU SUR                   SU S35      ef = f)NrU   rV   r)   r-   )r	   rW   r3   r4   r5   r   rO   r0   rM   r   r   rB   r   )r   r6   r8   Úparams       r    rQ   Ú*TemplateProcessor._process_client_variablen   sœ   € ð	Ü�SŒMô —’˜DŸJ™JÓ'×0Ñ0°·±Ó:ˆØ�‰×Ñ˜EÔ"Ø�‰×Ñ˜5Õ!øô ó 	Ü×$Ò$Ø˜3˜%ð  ØŸ?™?Ð+¨1¨S¨E°ð6óð ð	ús   ‚A= Á=5B2c                ó‚  • [        UR                  [        R                  5      (       aU  U R	                  U[
        5        U R                  R                  UR                  R                  U R                  5      5        g [        UR                  [        R                  5      (       aU  U R	                  U[        5        U R                  R                  UR                  R                  U R                  5      5        g [        UR                  [        R                  [        R                  45      (       aU  U R	                  U[        5        U R                  R                  UR                  R                  U R                  5      5        g [        R                   " [#        UR                  5      R$                   S35      e)Nz" not supported in string templates)r@   r0   r   rL   r;   rK   r   rB   rM   r   rO   rN   ÚSQLÚComposedrG   r3   r4   r/   r2   )r   r6   s     r    rI   Ú%TemplateProcessor._process_composable{   s"  € Ü�d—j‘j¤#§.¡.×1Ñ1Ø×'Ñ'¨¬iÔ8Ø�L‰L×Ñ §
¡
× 3Ñ 3°D·H±HÓ =Ô>Øä˜Ÿ
™
¤C§K¡K×0Ñ0Ø×'Ñ'¨¬kÔ:Ø�L‰L×Ñ §
¡
× 3Ñ 3°D·H±HÓ =Ô>Øä˜Ÿ
™
¤S§W¡W¬c¯l©lÐ$;×<Ñ<Ø×'Ñ'¨¬gÔ6Ø�L‰L×Ñ §
¡
× 3Ñ 3°D·H±HÓ =Ô>Øô ×$Ò$Ü˜Ÿ
™
Ó#×0Ñ0Ð1Ð1SÐTóð r   )r   r   r   r   r   r   r   N)r   r   r   zabc.Transformerr   Úbool)ÚreturnÚNone)r6   r
   r7   rA   rc   rd   )rR   r   rc   rd   )r6   r
   r8   rA   rc   rd   )r6   r
   rc   rd   )Ú__name__r1   r2   Ú__firstlineno__r!   r&   r;   r$   rP   rQ   rI   Ú__static_attributes__© r   r    r   r      s'   † ô	'ô,ôMô,=ô\7ô"÷r   r   Nc                ó–   • [        U5      n[        XSS9nUR                  5         UR                  R	                  UR
                  5      $ )zeConvert a template string to a string.

This function is exposed as part of psycopg.sql.as_string().
F©r   r   )r   r   r&   r   ÚdecoderD   ©rR   Úcontextr   Útps       r    Ú	as_stringro   ‘   s:   € ô
 
�WÓ	€BÜ	˜1°5Ñ	9€BØ‡J�J„LØ�8‰8�?‰?˜2Ÿ;™;Ó'Ð'r   c                ód   • [        U5      n[        XSS9nUR                  5         UR                  $ )zjConvert a template string to a bytes string.

This function is exposed as part of psycopg.sql.as_bytes().
Frj   )r   r   r&   r   rl   s       r    rM   rM   œ   s,   € ô
 
�WÓ	€BÜ	˜1°5Ñ	9€BØ‡J�J„LØ�8‰8€Or   )N)rR   r   rm   úabc.AdaptContext | Nonerc   rA   )rR   r   rm   rq   rc   Úbytes)Ú__doc__Ú
__future__r   Útypingr   r*   r   r   r3   r   Ú_enumsr	   Ú_compatr
   r   Ú_transformerr   ÚAUTOr0   rJ   ÚTEXTÚFMT_TEXTÚBINARYÚ
FMT_BINARYrK   rN   rG   r   ro   rM   rh   r   r    Ú<module>r~      sy   ðñõ #å å Ý Ý Ý ß ,Ý %ð �=‰=×Ñ€Ø�=‰=×Ñ€Ø�_‰_×"Ñ"€
Ø€	Ø€Ø
€÷sñ söl(÷r   