restructure library to be all classes, no globals
This commit is contained in:
parent
bd7301eae5
commit
0c823220eb
|
@ -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
10
main.py
|
@ -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():
|
||||||
|
|
Loading…
Reference in New Issue