
    j               
           U 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	ae
d	z  ed
<   de
fdZddZdee   fdZddededeez  d	z  ded	z  fdZddededeez  d	z  dee   fdZg dZy	)zIPostgres access: a psycopg3 connection pool and raw SQL (no ORM queries).    )Iterator)
Connection)dict_row)Jsonb)ConnectionPool   )get_settingsN_poolreturnc                  j    t         (t        t               j                  dddt        id      a t         S )Nr      row_factoryT)min_sizemax_sizekwargsopen)r
   r   r	   database_urlr        #/var/www/avy-guidance/api/app/db.pypoolr      s4    }N''!8,
 Lr   c                  >    t         t         j                          d a y y N)r
   closer   r   r   
close_poolr      s     r   c               #   n   K   t               j                         5 } |  ddd       y# 1 sw Y   yxY ww)zEFastAPI dependency: one transaction per request (commits on success).N)r   
connection)conns    r   get_connr   #   s/     				 
  s   5)	525r   sqlparamsc                 B    | j                  ||      j                         S r   )executefetchoner   r    r!   s      r   r$   r$   )       <<V$--//r   c                 B    | j                  ||      j                         S r   )r#   fetchallr%   s      r   r(   r(   -   r&   r   )r   r   r(   r$   r   r   )r   Nr   )__doc__collections.abcr   psycopgr   psycopg.rowsr   psycopg.types.jsonr   psycopg_poolr   settingsr	   r
   __annotations__r   r   r   strdicttupler$   listr(   __all__r   r   r   <module>r6      s    O $  ! $ ' "#~ #
n 
(:& 0: 0C 01D 0PTW[P[ 00: 0C 01D 0PTUYPZ 0 Nr   