
    2i              	      ,   d Z ddlmZ ddl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mZ  ej                  d
ddej"                  j$                        Z G d d      Z ede
j*                  f      Z ede
j.                  e
j0                  e
j2                  e
j4                  e
j6                  e
j8                  f      Z ede
j<                  e
j>                  e
j@                  e
jB                  e
jD                  e
jF                  f      Z$ ede
jJ                  f      Z& ede
jN                  e
jP                  e
jR                  f      Z* G d d      Z+ G d de      Z, G d de      Z-d dZ.d!dZ/d"dZ0d#dZ1	 	 	 	 	 	 	 	 	 	 	 	 	 	 d$dZ2d%dZ3d&dZ4y)'z&
Compatibility objects with DBAPI 2.0
    )annotationsN)Any)Sequence   )_oids)AdaptContextBuffer)BytesBinaryDumperBytesDumperi  )tzinfoc                  ,    e Zd ZddZddZddZddZy)	DBAPITypeObjectc                2    || _         t        |      | _        y N)nametuplevalues)selfr   oidss      N/var/www/html/secretsanta/venv/lib/python3.12/site-packages/psycopg/dbapi20.py__init__zDBAPITypeObject.__init__   s    	Dk    c                     d| j                    S )Nzpsycopg.)r   )r   s    r   __repr__zDBAPITypeObject.__repr__   s    $))%%r   c                J    t        |t              r|| j                  v S t        S r   
isinstanceintr   NotImplementedr   others     r   __eq__zDBAPITypeObject.__eq__   s!    eS!DKK''!!r   c                J    t        |t              r|| j                  vS t        S r   r   r    s     r   __ne__zDBAPITypeObject.__ne__"   s!    eS!++!!r   N)r   strr   zSequence[int]returnr%   )r!   r   r'   bool)__name__
__module____qualname__r   r   r"   r$    r   r   r   r      s    "&""r   r   BINARYDATETIMENUMBERROWIDSTRINGc                      e Zd ZddZddZy)Binaryc                    || _         y r   )obj)r   r5   s     r   r   zBinary.__init__G   s	    r   c                    t        t        | j                        x}      dkD  r|d d  dt        |       d}| j                  j                   d| dS )N(   #   z ... (z byteschars)())lenreprr5   	__class__r)   )r   sobjs     r   r   zBinary.__repr__J   sV    tDHH~%t&+3Bi[s4yk>D..))*!D633r   N)r5   r   r&   )r)   r*   r+   r   r   r,   r   r   r3   r3   F   s    4r   r3   c                        e Zd Zd fdZ xZS )BinaryBinaryDumperc                t    t        |t              rt        |   |j                        S t        |   |      S r   r   r3   superdumpr5   r   r5   r=   s     r   rD   zBinaryBinaryDumper.dumpQ   /    c6"7<((7<$$r   r5   zBuffer | Binaryr'   zBuffer | Noner)   r*   r+   rD   __classcell__r=   s   @r   r@   r@   P       % %r   r@   c                        e Zd Zd fdZ xZS )BinaryTextDumperc                t    t        |t              rt        |   |j                        S t        |   |      S r   rB   rE   s     r   rD   zBinaryTextDumper.dumpY   rF   r   rG   rH   rJ   s   @r   rM   rM   X   rK   r   rM   c                0    t        j                  | ||      S r   )dtdate)yearmonthdays      r   DaterU   `   s    774$$r   c                4    t        |       j                         S r   )TimestampFromTicksrQ   tickss    r   DateFromTicksrZ   d       e$))++r   c                0    t        j                  | ||      S r   )rP   time)hourminuteseconds      r   Timera   h   s    774((r   c                4    t        |       j                         S r   )rW   r]   rX   s    r   TimeFromTicksrc   l   r[   r   c                6    t        j                  | |||||      S r   )rP   datetime)rR   rS   rT   r^   r_   r`   s         r   	Timestamprf   p   s     ;;tUCvv>>r   c                <    t         t        j                  |       z   S )N)seconds)EPOCHrP   	timedeltarX   s    r   rW   rW   v   s    2<<...r   c                    | j                   }|j                  t        t               |j                  t        t               |j                  d t               |j                  d t               y r   )adaptersregister_dumperr3   rM   r@   )contextrl   s     r   register_dbapi20_adaptersro   z   sS    HV%56V%78 T#34T#56r   )rR   r   rS   r   rT   r   r'   dt.date)rY   floatr'   rp   )r^   r   r_   r   r`   r   r'   dt.time)rY   rq   r'   rr   )rR   r   rS   r   rT   r   r^   r   r_   r   r`   r   r'   dt.datetime)rY   rq   r'   rs   )rn   r   r'   None)5__doc__
__future__r   re   rP   typingr   collections.abcr    r   abcr   r	   types.stringr
   r   timezoneutcri   r   	BYTEA_OIDr-   TIMESTAMP_OIDTIMESTAMPTZ_OIDDATE_OIDTIME_OID
TIMETZ_OIDINTERVAL_OIDr.   INT2_OIDINT4_OIDINT8_OID
FLOAT4_OID
FLOAT8_OIDNUMERIC_OIDr/   OID_OIDr0   TEXT_OIDVARCHAR_OID
BPCHAR_OIDr1   r3   r@   rM   rU   rZ   ra   rc   rf   rW   ro   r,   r   r   <module>r      s   #   $  % 8D!Qr{{7" "* 
EOO#5	6
 


 	%--!12	u~~u00%2B2BC

4 4%* %%{ %%,),?
?? #?+.?8;?EH??/7r   