
    yjp                         U d dl 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 Zedd	edz  fd
            Z ee          Zeed<   dS )    N)asynccontextmanager)Depends)text)AsyncSession)settings)SessionLocalrequest_contextc                   K   t          j                    pd} t                      }	 t          j        j        r+|                    t          d          d| i           d{V  |W V  n)# t          $ r |	                                 d{V   w xY w	 |	                                 d{V  |
                                 d{V  dS # |	                                 d{V  |
                                 d{V  w xY w)z)FastAPI Dependency Generator for Databaseunknown3SELECT set_config('application_name', :name, false)nameN)r	   getr   r   DBTRACINGexecuter   	Exceptionrollbackclose)contextdbs     8/DATA/AppData/hermes/projects/honcho/src/dependencies.pyget_dbr      sa      !##0yG#~~B; 	**JKK!            kkmm 	 kkmmhhjj kkmmhhjjs   AA) (C	 )&BC	 	6C?operation_namec                  K   t          j                    }d}|sD| rBd|  dt          t          j                              dd          }t          j        |          }t                      }	 t          j        j	        r0|
                    t          d          d|pd|  i           d{V  |W V  n)# t          $ r |                                 d{V   w xY w	 |                                 d{V  |                                 d{V  |rt          j        |           dS dS # |                                 d{V  |                                 d{V  |rt          j        |           w w xY w)z-Context manager for tracked database sessionsNztask::   r   r   )r	   r   struuiduuid4setr   r   r   r   r   r   r   r   r   reset)r   r   tokenr   s       r   
tracked_dbr#   &   s      !##GE -~ -B.BB3tz||+<+<RaR+@BB#G,, 
B); 	**JKK<$<N$<$<=        
    kkmm 	 kkmmhhjj 	)!%(((((	) 	) kkmmhhjj 	)!%((((	)s    -AB4 3D, 4&CD, ,AE9r   )N)r   
contextlibr   fastapir   
sqlalchemyr   sqlalchemy.ext.asyncior   
src.configr   src.dbr   r	   r   r   r#   r   __annotations__     r   <module>r-      s     * * * * * *             / / / / / /       0 0 0 0 0 0 0 0  4 ) )S4Z ) ) ) )@ 76??L " " " " "r,   