o
    "4gv                     @  sd  d Z ddlmZ ddlZddlZddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZmZ dd	lmZmZ G d
d dZedejfZedejejejejejejfZedejejejej ej!ej"fZ#edej$fZ%edej&ej'ej(fZ)G dd dZ*G dd deZ+G dd deZ,d5ddZ-d6d!d"Z.d7d'd(Z/d8d)d*Z0d9d,d-Z1d:d.d/Z2d;d3d4Z3dS )<z&
Compatibility objects with DBAPI 2.0
    )annotationsN)floor)AnySequence   )_oids)AdaptContextBuffer)BytesDumperBytesBinaryDumperc                   @  s4   e Zd ZdddZddd	ZdddZdddZdS )DBAPITypeObjectnamestroidsSequence[int]c                 C  s   || _ t|| _d S N)r   tuplevalues)selfr   r    r   X/var/www/html/authentication-server/venv/lib/python3.10/site-packages/psycopg/dbapi20.py__init__   s   zDBAPITypeObject.__init__returnc                 C  s   d| j  S )Nzpsycopg.)r   )r   r   r   r   __repr__      zDBAPITypeObject.__repr__otherr   boolc                 C  s   t |tr
|| jv S tS r   
isinstanceintr   NotImplementedr   r   r   r   r   __eq__      

zDBAPITypeObject.__eq__c                 C  s   t |tr
|| jvS tS r   r   r!   r   r   r   __ne__!   r#   zDBAPITypeObject.__ne__N)r   r   r   r   r   r   )r   r   r   r   )__name__
__module____qualname__r   r   r"   r$   r   r   r   r   r      s
    


r   BINARYDATETIMENUMBERROWIDSTRINGc                   @  s    e Zd Zd
ddZdddZd	S )Binaryobjr   c                 C  s
   || _ d S r   )r/   r   r/   r   r   r   r   F   s   
zBinary.__init__r   r   c                 C  sF   t | j}t|dkr|d d  dt| d}| jj d| dS )N(   #   z ... (z byteschars)())reprr/   len	__class__r&   )r   sobjr   r   r   r   I   s   
zBinary.__repr__N)r/   r   r%   )r&   r'   r(   r   r   r   r   r   r   r.   E   s    
r.   c                         e Zd Zd fddZ  ZS )BinaryBinaryDumperr/   Buffer | Binaryr   Buffer | Nonec                   $   t |trt |jS t |S r   r   r.   superdumpr/   r0   r7   r   r   r@   Q      
zBinaryBinaryDumper.dumpr/   r;   r   r<   r&   r'   r(   r@   __classcell__r   r   rA   r   r:   P       r:   c                      r9   )BinaryTextDumperr/   r;   r   r<   c                   r=   r   r>   r0   rA   r   r   r@   Y   rB   zBinaryTextDumper.dumprC   rD   r   r   rA   r   rG   X   rF   rG   yearr   monthdayr   dt.datec                 C     t | ||S r   )dtdate)rH   rI   rJ   r   r   r   Date`      rO   ticksfloatc                 C     t |  S r   )TimestampFromTicksrN   rQ   r   r   r   DateFromTicksd   r   rV   hourminuteseconddt.timec                 C  rL   r   )rM   time)rW   rX   rY   r   r   r   Timeh   rP   r\   c                 C  rS   r   )rT   r[   rU   r   r   r   TimeFromTicksl   r   r]   dt.datetimec                 C  s   t | |||||S r   )rM   datetime)rH   rI   rJ   rW   rX   rY   r   r   r   	Timestampp   s   r`   c                 C  s\   t | }| | }t| }ttj|jd}tjg |d d t|d R d|i}|S )N)seconds   i@B tzinfo)	r   r[   	localtimerM   timezone	timedelta	tm_gmtoffr_   round)rQ   secsfractrc   rvr   r   r   rT   v   s   
*rT   contextr   Nonec                 C  s:   | j }|tt |tt |d t |d t d S r   )adaptersregister_dumperr.   rG   r:   )rm   ro   r   r   r   register_dbapi20_adapters   s
   rq   )rH   r   rI   r   rJ   r   r   rK   )rQ   rR   r   rK   )rW   r   rX   r   rY   r   r   rZ   )rQ   rR   r   rZ   )rH   r   rI   r   rJ   r   rW   r   rX   r   rY   r   r   r^   )rQ   rR   r   r^   )rm   r   r   rn   )4__doc__
__future__r   r[   r_   rM   mathr   typingr   r    r   abcr   r	   types.stringr
   r   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_OIDr,   TEXT_OIDVARCHAR_OID
BPCHAR_OIDr-   r.   r:   rG   rO   rV   r\   r]   r`   rT   rq   r   r   r   r   <module>   sZ    





	