From: <Z3...@us...> - 2010-04-11 14:53:22
|
Revision: 288 http://spd.svn.sourceforge.net/spd/?rev=288&view=rev Author: Z3po Date: 2010-04-11 14:53:16 +0000 (Sun, 11 Apr 2010) Log Message: ----------- beautified source a bit :). Added addColumn functionality Modified Paths: -------------- trunk/src/spdCore.py Modified: trunk/src/spdCore.py =================================================================== --- trunk/src/spdCore.py 2009-11-28 16:25:35 UTC (rev 287) +++ trunk/src/spdCore.py 2010-04-11 14:53:16 UTC (rev 288) @@ -22,13 +22,13 @@ import sqlite3 import re -import ConfigParser +from ConfigParser import RawConfigParser import os try: from pyme import core, callbacks from pyme.constants.sig import mode -except: +except ImportError: print "You have to install the pyme Python interface to the GPGME GnuPG encryption library." print "in Debian/Ubuntu: sudo aptitude install python-pyme" print "See also: http://pyme.sourceforge.net/" @@ -36,20 +36,20 @@ try: import pysvn -except: +except ImportError: print "You have to install the Python interface to Subversion." print "in Debian/Ubuntu: sudo aptitude install python-svn" print "See also: http://pysvn.tigris.org/" exit(-1) class PasswordContainer(object): # {{{ - - '''The Constructor + """The Constructor creates an internal memory-based SQLite database and declares a a the self.__table dictionary file: string, the config-file - debug: if set to true, the database /tmp/spd_debug.db - autoload: if set to False, the data is not loaded automatically''' + debug: if set to true, the database is /tmp/spd_debug.db + autoload: if set to False, the data is not loaded automatically""" + def __init__(self,file,debug=False,autoload=True): #{{{ if not debug: @@ -61,7 +61,7 @@ # read the config file = os.path.expanduser(file) - c = ConfigParser.RawConfigParser() + c = RawConfigParser() if os.access(file,os.F_OK): c.read(file) @@ -105,8 +105,8 @@ #}}} - # read passwordfile def importPasswordsPlain(self): #{{{ + """This function reads the password file""" vcs = self.vcs encryption = self.encryption file = self.file @@ -168,8 +168,8 @@ return True #}}} - # write passwordfile def exportPasswordsPlain(self,autoload=True): #{{{ + """Writes the password file""" if autoload: self.dumpSQLite() @@ -210,15 +210,14 @@ if (vcs == "svn"): svn = pysvn.Client() - svn.checkin([file],'lalala') + svn.checkin([file],'SPD Passfile Update') else: pass # }}} - # write self.__table in SQLite def fillSQLite(self): #{{{ - + """writes self.__table into SQLite Database""" cursor = self.__sql.cursor() count = 0 @@ -249,16 +248,16 @@ self.__sql.commit() # }}} - # dump SQLite in self.__table def dumpSQLite(self): #{{{ + """dump SQLite in self.__table""" # quite easy, eh? :-) self.__table = self.findPassword("%",output='noID') #}}} - # find a password in SQLite - # patterns: list of strings (filter) def findPassword(self,patterns,output='table'): #{{{ + """Function helps you to find a password in SQLite Database + patterns: list of strings (filter)""" cursor = self.__sql.cursor() if not patterns: @@ -298,25 +297,24 @@ return result #}}} - # clear the data in the self.__table Dictionary def flushPasswordsPlain(self): #{{{ + """Clears the data in the self.__table Dictionary""" for collumns in self.__table: self.__table[collumns] = [] #}}} - # add a new entry - # entry: dictionary like self.__table def addEntry(self, entry, commit=True): # {{{ + """adds a new entry to passfile + entry: new entry dictionary""" cursor = self.__sql.cursor() insertValues = '' for collumns in self.__table: entry[collumns] = re.sub(r'\'','\'\'', entry[collumns]) insertValues += "'" + entry[collumns] + "'," - insertValues = re.sub(r',$',r'', insertValues) - try: + try: cursor.execute(self.__insertStatement + insertValues + ')') except sqlite3.OperationalError: #DEBUG print "addEntry" @@ -329,9 +327,9 @@ # }}} - # delete an entry - # patterns: list of strings def delEntry(self,patterns=0,id=-1): #{{{ + """Deletes an Entry + patterns: list of strings""" cursor = self.__sql.cursor() if (id < 0 ): @@ -342,8 +340,8 @@ cursor.execute(query) #}}} - # internal to build the WHERE def __buildWhere(self,patterns): # {{{ + """internal function to build the SQL WHERE Statement""" count = 0 query = '(' for filter in patterns: @@ -358,26 +356,34 @@ return query #}}} - # return a list of used collumns def getCollumns(self): # {{{ + """return a list of collumns in passfile""" return self.__table.keys() # }}} - # add a collumn FIXME def addCollumn(self,name): # {{{ - pass + """add a collumn to passfile + name: name of new collumn""" + cursor = self.__sql.cursor() + + query = "ALTER TABLE passwords ADD `" + name + "` TEXT" + + cursor.execute(query) + + self.__sql.commit() + # }}} - # delete a collumn FIXME def delCollumn(self,name): # {{{ + """deletes a collumn + name: name of the collumn to delete""" pass # }}} - # rename a collumn FIXME def renameCollumn(self,oldname,newname): # {{{ pass + # }}} - # }}} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |