11from  sqlalchemy  import  create_engine 
22from  config .credentials  import  credentials 
33import  logging 
4+ from  sqlalchemy .orm  import  sessionmaker 
5+ 6+ 47class  SingletonConnection :
58 _instance  =  None 
9+ 610 def  __init__ (self ) ->  None :
711 self .logger  =  logging .getLogger (__name__ )
812
913 def  __new__ (cls ):
1014 if  not  cls ._instance :
11-  engine  =  create_engine ("mysql+pymysql://" + str (credentials ['user' ])+ ":" + str (credentials ['password' ])+ "@" + str (credentials ['host' ])+ ":3306/" + str (credentials ["database" ]))
1215 cls ._instance  =  super ().__new__ (cls )
13-  cls ._instance .engine = engine 
16+  cls ._instance ._initialize_engine () 
1417 return  cls ._instance 
1518
19+  def  _initialize_engine (self ):
20+  self .logger  =  logging .getLogger (__name__ )
21+  self .engine  =  create_engine (
22+  f"mysql+pymysql://{ credentials ['user' ]} { credentials ['password' ]} { credentials ['host' ]} { credentials ['database' ]}  )
23+  Session  =  sessionmaker (bind = self .engine )
24+  self .session  =  Session ()
1625
1726 def  get_engine (self ):
1827 try :
19-  return  self .engine 
28+  return  self .engine 
2029 except  Exception  as  error :
21-  self .logger .error ("connection error -" , str (error ))
30+  self .logger .error ("connection error -" , str (error ))
31+ 32+  def  get_session (self ):
33+  return  self .session 
0 commit comments