Proper architecture

Andrew Z formisc at gmail.com
Sun Jul 2 14:02:41 EDT 2017


Hello,
 I'd appreciate your suggestions for a better approach to the following task.

I have 2 files ( 2 classes). One (ClassA) has all logic related to the main workflow of the program. Another (DB), I like to offload all operations with a DB ( sql3 in this case).

I'm trying to pass the connection to the main class, but having problems. One of them, is i can't pass the conn as a parameter to the function in one (ClassA.abc()), because i inherit it ( function abc() ).
I created a self.DBConnection field, but i'm not sure if i'm on the right path...
Code is gutted to highlight the problem.

Thank you

--- code -----

one.py:
from .DB import *

class ClassA(OtherObject):

	def __init__(self):
		
		self.DBConnection = sql3.Connection

	
	def abc(self, reqId: int):
		DB.writeTicks(self,self.DBConnection,reqId))


DB.py:
import sqlite3 as sql3
import sys
from .tws import TWS
from utils import current_fn_name


class DB(object):
	db_location = ''
	# db_location = '../DB/pairs.db'

	def __init__(self, location='../DB/pairs.db'):
		db_location = location
		print(current_fn_name(),' self.db_location = {}'.format(db_location))

		try:
			with open(db_location) as file:
				pass
		except IOError as e:
			print("Unable to locate the Db @ {}".format(db_location))

	def reqConnection(self):
		try:
			con = sql3.connect(self.db_location)
			con.text_factory = str

		except sql3.Error as e:
			print("Error %s:".format( e.args[0]))
			sys.exit(1)
		return con

	def write(self, con : sql3.Connection, tickId: int):
			con.execute( blah) 




More information about the Python-list mailing list