§
    YŠtjÝ  ã                  óð   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	lmZmZ dd
lmZ ej        j        Zej        j        Zej        j        ZdZdZdZ G d„ d¦  «        Zddd„Zddd„ZdS )z&
Template strings support in queries.
é    )Úannotations)ÚAnyé   )Úabc)Úerrors)Úsql)ÚPyFormat)ÚInterpolationÚTemplate)ÚTransformerÚiÚlÚqc                  óF   — e Zd Zdd„Zdd
„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dS )ÚTemplateProcessorÚtemplater   Útxúabc.TransformerÚserver_paramsÚboolc               óh   — || _         || _        || _        d| _        g | _        g | _        g | _        d S ©Nó    )r   Ú_txÚ_server_paramsÚqueryÚformatsÚparamsÚ_chunks)Úselfr   r   r   s       úO/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/psycopg/_tstrings.pyÚ__init__zTemplateProcessor.__init__   s8   € Ø ˆŒØˆŒØ+ˆÔàˆŒ
Ø')ˆŒØ!#ˆŒà$&ˆŒˆˆr   ÚreturnÚNonec                óx   — |                       | j        ¦  «         d                     | j        ¦  «        | _        d S r   )Ú_process_templater   Újoinr   r   )r    s    r!   ÚprocesszTemplateProcessor.process'   s1   € Ø×Ò˜tœ}Ñ-Ô-Ð-Ø—X’X˜dœlÑ+Ô+ˆŒ
ˆ
ˆ
r   Úitemr
   Úwant_fmtÚstrc                óÖ   — |j         |k    rd S |j         r
d|j         › �nd}t          |j        ¦  «        }|j        › d|j        › d|› d�}t          j        |› d|j        › |› d�¦  «        ‚)Nú:Ú ú.z require format ':ú'z; got '{ú}')Úformat_specÚtypeÚvalueÚ
__module__Ú__qualname__ÚeÚProgrammingErrorÚ
expression)r    r)   r*   ÚfmtÚclsÚmsgs         r!   Ú_check_template_formatz(TemplateProcessor._check_template_format+   sŽ   € ØÔ˜xÒ'Ð'ØˆFØ(,Ô(8Ð@Ð$�$Ô"Ð$Ð$Ð$¸bˆÝ�4”:ÑÔˆØ”ÐQÐQ #Ô"2ÐQÐQÀhÐQÐQÐQˆÝÔ  CÐ!KÐ!K°$´/Ð!KÀ3Ð!KÐ!KÐ!KÑLÔLÐLr   Útc           
     óF  — |D �]œ}t          |t          ¦  «        r8| j                             |                     | j        j        ¦  «        ¦  «         ŒPt          |t          ¦  «        sJ ‚|j        r t          d|j
        › d|j        › d�¦  «        ‚t          |j        t          ¦  «        r6|                      |t          ¦  «         |                      |j        ¦  «         ŒÞt          |j        t           j        ¦  «        r|                      |¦  «         �Œ|j        pt(          x}t*          k    rŸt          |j        t          ¦  «        s:t-          j        dt1          |j        ¦  «        j        › d|j
        › d|› d�¦  «        ‚| j                             t!          j        |j        ¦  «                             | j        ¦  «        ¦  «         �ŒÌ|t8          k    rK| j                             t!          j        |j        ¦  «                             | j        ¦  «        ¦  «         �Œ"|t          k    r:t-          j        dt1          |j        ¦  «        j        › d|j
        › d|› d�¦  «        ‚| j        r|                      ||¦  «         �Œ†|                       ||¦  «         �Œžd S )	Nz*conversions not supported in query; got '{ú!r1   z'identifier values must be strings; got z in {r-   Ú}z;sql values must be sql.Composed, sql.SQL, or Template; got )!Ú
isinstancer+   r   ÚappendÚencoder   Úencodingr
   Ú
conversionÚ	TypeErrorr9   r4   r   r=   ÚFMT_SQLr&   r   Ú
ComposableÚ_process_composabler2   ÚFMT_AUTOÚ	FMT_IDENTr7   r8   r3   r6   Ú
IdentifierÚas_bytesÚFMT_LITERALÚLiteralr   Ú_process_server_variableÚ_process_client_variable)r    r>   r)   r:   s       r!   r&   z#TemplateProcessor._process_template3   s¿  € Øð +	=ñ +	=ˆDÝ˜$¥Ñ$Ô$ð Ø”×#Ò# D§K¢K°´Ô0AÑ$BÔ$BÑCÔCÐCØå˜d¥MÑ2Ô2Ð2Ð2Ð2ØŒð ÝðBØœ?ðBð BØ-1¬_ðBð Bð Bñô ð õ
 ˜$œ*¥hÑ/Ô/ð =Ø×+Ò+¨Dµ'Ñ:Ô:Ð:Ø×&Ò& t¤zÑ2Ô2Ð2Ð2å˜DœJ­¬Ñ7Ô7ð =Ø×(Ò(¨Ñ.Ô.Ð.Ñ.àÔ)Ð5­XÐ5�#½)ÒCÐCÝ! $¤*­cÑ2Ô2ð ÝÔ,ð;Ý  ¤Ñ,Ô,Ô9ð;ð ;à!%¤ð;ð ;à36ð;ð ;ð ;ñô ð ð
 ”×#Ò#¥C¤N°4´:Ñ$>Ô$>×$GÒ$GÈÌÑ$QÔ$QÑRÔRÐRÑRà�Ò#Ð#Ø”×#Ò#¥C¤K°´
Ñ$;Ô$;×$DÒ$DÀTÄXÑ$NÔ$NÑOÔOÐOÑOà�’�åÔ(ð7Ý  ¤Ñ,Ô,Ô9ð7ð 7à!œ_ð7ð 7à/2ð7ð 7ð 7ñô ð ð Ô&ð =Ø×1Ò1°$¸Ñ<Ô<Ð<Ñ<à×1Ò1°$¸Ñ<Ô<Ð<Ñ<ðW+	=ð +	=r   r:   c           
     óZ  — 	 t          |¦  «        }n1# t          $ r$ t          j        d|› d|j        › d|› d�¦  «        ‚w xY w| j                             |¦  «         | j                             |j        ¦  «         | j	                             dt          | j        ¦  «        z  ¦  «         d S )Núformat 'ú ' not supported in query; got '{r-   r1   s   $%d)r	   Ú
ValueErrorr7   r8   r9   r   rC   r   r4   r   Úlen)r    r)   r:   Úpyfmts       r!   rQ   z*TemplateProcessor._process_server_variablea   sÑ   € ð	Ý˜S‘M”MˆEˆEøÝð 	ð 	ð 	ÝÔ$ð6˜3ð 6ð 6Øœ?ð6ð 6Ø-0ð6ð 6ð 6ñô ð ð	øøøð 	Œ×Ò˜EÑ"Ô"Ð"ØŒ×Ò˜4œ:Ñ&Ô&Ð&ØŒ×Ò˜F¥S¨¬Ñ%5Ô%5Ñ5Ñ6Ô6Ð6Ð6Ð6ó	   ‚ ’.A c           
     óT  — 	 t          |¦  «         n1# t          $ r$ t          j        d|› d|j        › d|› d�¦  «        ‚w xY wt          j        |j        ¦  «                             | j	        ¦  «        }| j
                             |¦  «         | j                             |¦  «         d S )NrT   rU   r-   r1   )r	   rV   r7   r8   r9   r   rP   r4   rN   r   r   rC   r   )r    r)   r:   Úparams       r!   rR   z*TemplateProcessor._process_client_variablen   sË   € ð	Ý�S‰MŒMˆMˆMøÝð 	ð 	ð 	ÝÔ$ð6˜3ð 6ð 6Øœ?ð6ð 6Ø-0ð6ð 6ð 6ñô ð ð	øøøõ ”˜DœJÑ'Ô'×0Ò0°´Ñ:Ô:ˆØŒ×Ò˜EÑ"Ô"Ð"ØŒ×Ò˜5Ñ!Ô!Ð!Ð!Ð!rY   c                ó(  — t          |j        t          j        ¦  «        rT|                      |t
          ¦  «         | j                             |j                             | j	        ¦  «        ¦  «         d S t          |j        t          j
        ¦  «        rT|                      |t          ¦  «         | j                             |j                             | j	        ¦  «        ¦  «         d S t          |j        t          j        t          j        f¦  «        rT|                      |t          ¦  «         | j                             |j                             | j	        ¦  «        ¦  «         d S t          j        t#          |j        ¦  «        j        › d�¦  «        ‚)Nz" not supported in string templates)rB   r4   r   rM   r=   rL   r   rC   rN   r   rP   rO   ÚSQLÚComposedrH   r7   r8   r3   r6   )r    r)   s     r!   rJ   z%TemplateProcessor._process_composable{   sD  € Ý�d”j¥#¤.Ñ1Ô1ð 	Ø×'Ò'¨­iÑ8Ô8Ð8ØŒL×Ò ¤
× 3Ò 3°D´HÑ =Ô =Ñ>Ô>Ð>ØˆFå˜œ
¥C¤KÑ0Ô0ð 	Ø×'Ò'¨­kÑ:Ô:Ð:ØŒL×Ò ¤
× 3Ò 3°D´HÑ =Ô =Ñ>Ô>Ð>ØˆFå˜œ
¥S¤W­c¬lÐ$;Ñ<Ô<ð 	Ø×'Ò'¨­gÑ6Ô6Ð6ØŒL×Ò ¤
× 3Ò 3°D´HÑ =Ô =Ñ>Ô>Ð>ØˆFõ Ô$Ý˜œ
Ñ#Ô#Ô0ÐTÐTÐTñô ð r   N)r   r   r   r   r   r   )r#   r$   )r)   r
   r*   r+   r#   r$   )r>   r   r#   r$   )r)   r
   r:   r+   r#   r$   )r)   r
   r#   r$   )
Ú__name__r5   r6   r"   r(   r=   r&   rQ   rR   rJ   © r   r!   r   r      s¥   € € € € € ð	'ð 	'ð 	'ð 	'ð,ð ,ð ,ð ,ðMð Mð Mð Mð,=ð ,=ð ,=ð ,=ð\7ð 7ð 7ð 7ð"ð "ð "ð "ðð ð ð ð ð r   r   Nr>   r   Úcontextúabc.AdaptContext | Noner#   r+   c                óª   — t          |¦  «        }t          | |d¬¦  «        }|                     ¦   «          |j                             |j        ¦  «        S )zmConvert a template string to a string.

    This function is exposed as part of psycopg.sql.as_string().
    F©r   r   )r   r   r(   r   ÚdecoderE   ©r>   ra   r   Útps       r!   Ú	as_stringrh   ‘   sH   € õ
 
�WÑ	Ô	€BÝ	˜1 °5Ð	9Ñ	9Ô	9€BØ‡J‚J�L„L€LØŒ8�?Š?˜2œ;Ñ'Ô'Ð'r   Úbytesc                óz   — t          |¦  «        }t          | |d¬¦  «        }|                     ¦   «          |j        S )zrConvert a template string to a bytes string.

    This function is exposed as part of psycopg.sql.as_bytes().
    Frd   )r   r   r(   r   rf   s       r!   rN   rN   œ   s9   € õ
 
�WÑ	Ô	€BÝ	˜1 °5Ð	9Ñ	9Ô	9€BØ‡J‚J�L„L€LØŒ8€Or   )N)r>   r   ra   rb   r#   r+   )r>   r   ra   rb   r#   ri   )Ú__doc__Ú
__future__r   Útypingr   r.   r   r   r7   r   Ú_enumsr	   Ú_compatr
   r   Ú_transformerr   ÚAUTOr4   rK   ÚTEXTÚFMT_TEXTÚBINARYÚ
FMT_BINARYrL   rO   rH   r   rh   rN   r`   r   r!   ú<module>rv      sC  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø %Ð %Ð %Ð %Ð %Ð %ð Œ=Ô€ØŒ=Ô€ØŒ_Ô"€
Ø€	Ø€Ø
€ðsð sð sð sð sñ sô sð sðl(ð (ð (ð (ð (ðð ð ð ð ð ð r   