+
    i                    P  a  0 t $ ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHtHt ^ RIHt ]! 4       t]! ]P"                  RR	R
7      tR]R&   ]! ]P(                  RR	R
7      tR]R&   ]! ]RRRR7      t]! ]RRRR7      tR R ltR R lt]R R l4       t]R R l4       tR# )    )annotations)	Generator)contextmanager)create_engine)Engine)Sessionsessionmaker)get_settingsTi  )pool_pre_pingpool_recycler   engine_defaultengine_clusterF)bind	autoflush
autocommitexpire_on_commitc                   V ^8  d   QhRR/#    returnzGenerator[Session, None, None] )formats   "app\database.py__annotate__r            6     c               #  v   "   \        4       p  V x  V P                  4        R #   T P                  4        i ; i5iN)SessionLocalDefaultclosedbs    r   get_db_defaultr#      )     		B


   9$ 969c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   %   r   r   c               #  v   "   \        4       p  V x  V P                  4        R #   T P                  4        i ; i5ir   )SessionLocalClusterr    r!   s    r   get_db_clusterr)   %   r$   r%   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   .        	 	= 	r   c               #     "   \        4       p  V x  V P                  4         T P	                  4        R #   \         d    T P                  4        h i ; i  T P	                  4        i ; i5ir   )r   commit	Exceptionrollbackr    sessions    r   session_scope_defaultr2   -   W     !#G
 		   	%   A*5 A*AA A''A*c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   ;   r+   r   c               #     "   \        4       p  V x  V P                  4         T P	                  4        R #   \         d    T P                  4        h i ; i  T P	                  4        i ; i5ir   )r(   r-   r.   r/   r    r0   s    r   session_scope_clusterr7   :   r3   r4   N)__conditional_annotations__
__future__r   collections.abcr   
contextlibr   
sqlalchemyr   sqlalchemy.enginer   sqlalchemy.ormr   r	   
app.configr
   	_settingsdatabase_urlr   __annotations__cluster_database_urlr   r   r(   r#   r)   r2   r7   )r8   s   @r   <module>rD      s    " " % % $ $ 0 #N	& 
 '""  #%TYlqr "%TYlqr  	 	 	 	r   