1+ """ 
2+ Database 
3+ """ 
4+ 5+ from  typing  import  NoReturn , Self 
6+ 17from  sqlalchemy .ext .asyncio  import  (AsyncEngine , async_sessionmaker ,
28 create_async_engine )
39from  sqlmodel .ext .asyncio .session  import  AsyncSession 
915class  Database :
1016 _instance  =  None 
1117
12-  def  __new__ (cls , * args , ** kwargs ):
18+  def  __new__ (cls , * args , ** kwargs )-> Self :
1319 if  cls ._instance  is  None :
1420 cls ._instance  =  super (Database , cls ).__new__ (cls )
1521 return  cls ._instance 
@@ -24,13 +30,13 @@ def __init__(
2430 self .session  =  session 
2531 self .initialized  =  True 
2632
27-  async  def  __set_async_engine (self ) ->  None :
33+  async  def  __set_async_engine (self ) ->  NoReturn :
2834 if  self .engine  is  None :
2935 self .engine  =  create_async_engine (
3036 settings .pg_dsn .unicode_string (), echo = False , future = True 
3137 )
3238
33-  async  def  __set_async_session (self ) ->  None :
39+  async  def  __set_async_session (self ) ->  NoReturn :
3440 if  self .session  is  None :
3541 self .session  =  async_sessionmaker (
3642 autocommit = False ,
@@ -40,16 +46,16 @@ async def __set_async_session(self) -> None:
4046 expire_on_commit = False ,
4147 )()
4248
43-  async  def  __set_repositories (self ) ->  None :
49+  async  def  __set_repositories (self ) ->  NoReturn :
4450 if  self .session  is  not None :
4551 self .user  =  repos .UserRepo (session = self .session )
4652
47-  async  def  __aenter__ (self ):
53+  async  def  __aenter__ (self )-> Self :
4854 await  self .__set_async_engine ()
4955 await  self .__set_async_session ()
5056 await  self .__set_repositories ()
5157 return  self 
5258
53-  async  def  __aexit__ (self , exc_type , exc_value , traceback ):
59+  async  def  __aexit__ (self , exc_type , exc_value , traceback )-> NoReturn :
5460 if  self .session  is  not None :
5561 await  self .session .close ()
0 commit comments