From 0c823220eb799f407ab772f865d0db3e3e3688d6 Mon Sep 17 00:00:00 2001 From: JohnE Date: Mon, 8 Jun 2015 14:32:38 -0700 Subject: [PATCH] restructure library to be all classes, no globals --- libs/fingerprint.py | 89 +++++++++++++++++++++++---------------------- main.py | 10 +++-- 2 files changed, 53 insertions(+), 46 deletions(-) diff --git a/libs/fingerprint.py b/libs/fingerprint.py index 8dee592..c84fc78 100644 --- a/libs/fingerprint.py +++ b/libs/fingerprint.py @@ -8,46 +8,6 @@ import sqlite3 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 # @@ -59,12 +19,39 @@ class DBSchema: sqlmaster = "SELECT name, sql FROM sqlite_master WHERE type='table'" def __init__(self): + self.conn = None + self.cur = None self.tableNames = [] self.tables = {} 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.loadTable(row[0], row[1]) self.tableNames.append(newTable.name()) @@ -72,6 +59,20 @@ class DBSchema: 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): - + print json.dumps(self.fields) def __str__(self): global delimeter retstr = "" + retstr = json.dumps(self.fields) return retstr + def name(self): return self.tableName diff --git a/main.py b/main.py index 2d2aeca..e202cd7 100644 --- a/main.py +++ b/main.py @@ -9,11 +9,15 @@ from libs import fingerprint def main(): (filein, verbose) = parseArgs() - retVal = fingerprint.scanDB(filein) + #retVal = fingerprint.scanDB(filein) + + db = fingerprint.DBSchema() + retVal = db.scanDBFile(filein) + if (retVal > 0): - fingerprint.writeFingerprint() + db.writeFingerprint() else: - print fingerprint.getErrorString(retVal) + print db.getErrorString(retVal) def parseArgs():