restructure library to be all classes, no globals

This commit is contained in:
JohnE 2015-06-08 14:32:38 -07:00
parent bd7301eae5
commit 0c823220eb
2 changed files with 53 additions and 46 deletions

View File

@ -8,46 +8,6 @@ import sqlite3
delimeter = "|" delimeter = "|"
def scanDB(filein):
# try to open sqlite file
try:
(conn, cur) = __openDB(filein)
except Exception, e:
return -2
# read database schema
try:
dbSchema = DBSchema()
dbSchema.readDatabase(cur)
except Exception, e:
print e
return -3
return 1
def __openDB(filein):
conn = sqlite3.connect(filein)
cur = conn.cursor()
return (conn, cur)
def writeFingerprint():
return
def printDB():
return
def getErrorString(errorCode):
retval = "ERROR: unknown error code: " + str(errorCode)
if (errorCode == -2):
retval = "ERROR: problem opening file, or not sqlite database"
elif (errorCode == -3):
retval = "ERROR: problem reading database"
return retval
# #
# Database Schema # Database Schema
# #
@ -59,12 +19,39 @@ class DBSchema:
sqlmaster = "SELECT name, sql FROM sqlite_master WHERE type='table'" sqlmaster = "SELECT name, sql FROM sqlite_master WHERE type='table'"
def __init__(self): def __init__(self):
self.conn = None
self.cur = None
self.tableNames = [] self.tableNames = []
self.tables = {} self.tables = {}
return return
def readDatabase(self, cur):
for row in cur.execute(self.sqlmaster): def scanDBFile(self, filein):
# try to open sqlite file
try:
(self.conn, self.cur) = self.__openDB(filein)
except Exception, e:
print e
return -2
# read database schema
try:
self.__readDatabase()
except Exception, e:
print e
return -3
return 1
def __openDB(self, filein):
conn = sqlite3.connect(filein)
cur = conn.cursor()
return (conn, cur)
def __readDatabase(self):
for row in self.cur.execute(self.sqlmaster):
newTable = TableDefinition() newTable = TableDefinition()
newTable.loadTable(row[0], row[1]) newTable.loadTable(row[0], row[1])
self.tableNames.append(newTable.name()) self.tableNames.append(newTable.name())
@ -72,6 +59,20 @@ class DBSchema:
return return
def writeFingerprint(self):
return
def getErrorString(self, errorCode):
retval = "ERROR: unknown error code: " + str(errorCode)
if (errorCode == -2):
retval = "ERROR: problem opening file, or not sqlite database"
elif (errorCode == -3):
retval = "ERROR: problem reading database"
return retval
# #
# #
# #
@ -188,15 +189,17 @@ class TableDefinition:
def toJSON(self): def toJSON(self):
print json.dumps(self.fields)
def __str__(self): def __str__(self):
global delimeter global delimeter
retstr = "" retstr = ""
retstr = json.dumps(self.fields)
return retstr return retstr
def name(self): def name(self):
return self.tableName return self.tableName

10
main.py
View File

@ -9,11 +9,15 @@ from libs import fingerprint
def main(): def main():
(filein, verbose) = parseArgs() (filein, verbose) = parseArgs()
retVal = fingerprint.scanDB(filein) #retVal = fingerprint.scanDB(filein)
db = fingerprint.DBSchema()
retVal = db.scanDBFile(filein)
if (retVal > 0): if (retVal > 0):
fingerprint.writeFingerprint() db.writeFingerprint()
else: else:
print fingerprint.getErrorString(retVal) print db.getErrorString(retVal)
def parseArgs(): def parseArgs():