You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gump.apache.org by bo...@apache.org on 2009/09/09 06:20:41 UTC

svn commit: r812763 - /gump/trunk/python/gump/util/mysql.py

Author: bodewig
Date: Wed Sep  9 04:20:41 2009
New Revision: 812763

URL: http://svn.apache.org/viewvc?rev=812763&view=rev
Log:
pylint

Modified:
    gump/trunk/python/gump/util/mysql.py

Modified: gump/trunk/python/gump/util/mysql.py
URL: http://svn.apache.org/viewvc/gump/trunk/python/gump/util/mysql.py?rev=812763&r1=812762&r2=812763&view=diff
==============================================================================
--- gump/trunk/python/gump/util/mysql.py (original)
+++ gump/trunk/python/gump/util/mysql.py Wed Sep  9 04:20:41 2009
@@ -17,7 +17,7 @@
 """
 
     MySQL Statistics gathering/manipulation
-    
+
 """
 
 import types
@@ -30,29 +30,29 @@
     """
     Very simple database abstraction layer, basically adding some utilities
     around MySQLdb and ability to parse the gump DatabaseInformation object.
-    
+
     See http://www.python.org/peps/pep-0249.html for more on python and databases.
     This class adheres to the PEP 249 Connection interface.
     """
-    def __init__(self,dbInfo):
-        self._dbInfo=dbInfo
-        self._conn=None
-        
+    def __init__(self, dbInfo):
+        self._dbInfo = dbInfo
+        self._conn = None
+
     def __del__(self):
         self.close()
-    
+
     def commit(self):
         """
         See PEP 249.
         """
         pass
-    
+
     def rollback(self):
         """
         See PEP 249.
         """
         pass
-    
+
     def cursor(self):
         """
         See PEP 249.
@@ -65,191 +65,204 @@
         """
         if self._conn:
             self._conn.close()
-            self._conn=None
+            self._conn = None
 
     def execute(self, statement):
         """
         Simple helper method to execute SQL statements that isolates its users
         from cursor handling.
-        
+
         Pass in any SQL command. Retrieve back the results of having a cursor
         execute that command (normally the number of affected rows).
         """
         cursor = None
         try:
             cursor = self._connection().cursor()
-            result = cursor.execute(cmd)
+            result = cursor.execute(statement)
             return result
         finally:
-            if cursor: cursor.close()
-    
+            if cursor:
+                cursor.close()
+
     def _connection(self):
         """
         Get a connection to the actual database, setting one up if neccessary.
         """
         if not self._conn:
             self._conn = MySQLdb.Connect(
-                    host=self._dbInfo.getHost(), 
-                    user=self._dbInfo.getUser(),
-                    passwd=self._dbInfo.getPasswd(), 
-                    db=self._dbInfo.getDatabase(),
-                    compress=1,
-                    cursorclass=MySQLdb.cursors.DictCursor)
-        
+                    host = self._dbInfo.getHost(), 
+                    user = self._dbInfo.getUser(),
+                    passwd = self._dbInfo.getPasswd(), 
+                    db = self._dbInfo.getDatabase(),
+                    compress = 1,
+                    cursorclass = MySQLdb.cursors.DictCursor)
+
         return self._conn
 
 class DbHelper:
     """
-    	MySQL Statistics Database Helper
+        MySQL Statistics Database Helper
     """
 
-    def __init__(self,conn,database='gump'):
-        self.conn=conn
-        self.database=database
-        
+    def __init__(self, conn, database = 'gump'):
+        self.conn = conn
+        self.database = database
+
     def __del__(self):
         if self.conn:
             self.conn.close()
-            self.conn=None
-            
-    def value(self,value):
+            self.conn = None
+
+    def value(self, value):
         """
         Escape and Quote a Value
         """
         escaped_encoded = ''
-        
-        if isinstance(value,types.StringTypes):
+
+        if isinstance(value, types.StringTypes):
             escaped_encoded = "'" 
-            escaped_encoded += MySQLdb.escape_string(value).replace("\\","\\\\").replace("'","\\'")
-            escaped_encoded += "'"            
+            escaped_encoded += MySQLdb.escape_string(value)\
+                .replace("\\","\\\\").replace("'","\\'")
+            escaped_encoded += "'"
         else:
             escaped_encoded = value
-            
+
         return escaped_encoded
  
-    def generateSelect(self,table_name,column_name,entity_name):
+    def generateSelect(self, table_name, column_name, entity_name):
         """
         Generate a select statement, index is a single name
         """ 
-        statement="SELECT * FROM %s.%s WHERE %s='%s'" % (self.database, table_name, column_name, entity_name) 
+        statement = "SELECT * FROM %s.%s WHERE %s='%s'" \
+            % (self.database, table_name, column_name, entity_name) 
         return statement
-        
-    def select(self,table_name,column_name,entity_name,columns):
-        statement=self.generateSelect(table_name,column_name,entity_name)
+
+    def select(self, table_name, column_name, entity_name, columns):
+        statement = self.generateSelect(table_name, column_name, entity_name)
         settings = {}
         cursor = None
         try:
             try:
                 cursor = self.conn.cursor()
                 log.debug('SQL: ' + statement)
-                affected=cursor.execute(statement)
+                affected = cursor.execute(statement)
                 log.debug('SQL affected: ' + `affected`)
-            
+
                 if affected > 0: # might be nothing in db yet
                     row = cursor.fetchall()[0] # Ought be only one...
-          
+
                     # Extract values
                     for column in columns:
                         if row.has_key(column) and row[column]:
-                            settings[column]=row[column]
+                            settings[column] = row[column]
                             #print 'Extracted %s -> %s' % ( column, row[column])
-                              
+
             except Exception, details:
-                if cursor: self.logWarnings(cursor)
-                log.error('SQL Error on [%s] : %s' % (statement, details), exc_info=1)                
+                if cursor:
+                    self.logWarnings(cursor)
+                log.error('SQL Error on [%s] : %s' % (statement, details),
+                          exc_info = 1)
                 raise
         finally:
-            if cursor: cursor.close()         
+            if cursor:
+                cursor.close()
 
         return settings
 
-    def set(self,table_name,column_name,entity_name,settings):
-        
+    def set(self, table_name, column_name, entity_name, settings):
+
         # Unfortunately affected is returning 0 even when
         # there is a match.
-        
+
         # Attempt an update (and ensure we affected something)
         #updated=(self.update(table_name,column_name,entity_name,settings) > 0)
-            
+
         #if not updated:
         #   # Attempt an insert if not update occured (i.e no match)
         #    self.insert(table_name,settings)
-        
+
         # Gak -- but see above.
-        self.delete(table_name,column_name,entity_name)
-        self.insert(table_name,settings)
-            
+        self.delete(table_name, column_name, entity_name)
+        self.insert(table_name, settings)
+
         return
-            
-    def generateInsert(self,table_name,settings): 
+
+    def generateInsert(self, table_name, settings): 
         """ 
         Perform an SQL INSERT 
         """
         statement = "INSERT INTO %s.%s (" % (self.database, table_name)
-        keys=settings.keys()
+        keys = settings.keys()
         statement += ", ".join(keys)
         statement += ") VALUES ("
         statement += ", ".join([str(settings[key]) for key in keys])
         statement += ")"
         return statement
-        
-    def insert(self,table_name,settings): 
-        """       
+
+    def insert(self, table_name, settings): 
+        """
         Take a dictionary of settings (column names/types) and 
-        perform an insert.        
+        perform an insert.
         """
-        statement=self.generateInsert(table_name,settings)
+        statement = self.generateInsert(table_name, settings)
         affected = 0
         cursor = None
         try:
             try:
                 cursor = self.conn.cursor()
                 log.debug('SQL: ' + statement)
-                affected = cursor.execute(statement)   
-                log.debug('SQL Affected: ' + `affected`)                        
+                affected = cursor.execute(statement)
+                log.debug('SQL Affected: ' + `affected`)
             except Exception, details:
-                if cursor: self.logWarnings(cursor)    
-                log.error('SQL Error on [%s] : %s' % (statement, details), exc_info=1)
+                if cursor:
+                    self.logWarnings(cursor)
+                log.error('SQL Error on [%s] : %s' % (statement, details),
+                          exc_info = 1)
                 raise
         finally:
-            if cursor: cursor.close() 
+            if cursor:
+                cursor.close() 
         return affected 
 
-    def generateUpdate(self,table_name,column_name,entity_name,settings): 
-        """   
+    def generateUpdate(self, table_name, column_name, entity_name, settings): 
+        """
         Take a dictionary of settings (column names/types) and 
-        generate an update statement. Note: The index is a single name.        
+        generate an update statement. Note: The index is a single name.
         """
         statement = "UPDATE %s.%s SET " % (self.database, table_name)
-        keys=settings.keys()
+        keys = settings.keys()
         keys.remove(column_name)
         statement += ", ".join([key + '=' + str(settings[key]) for key in keys])
         statement += " WHERE %s='%s'" % (column_name, entity_name)
         return statement
-            
-    def update(self,table_name,column_name,entity_name,settings): 
-        """   
+
+    def update(self, table_name, column_name, entity_name, settings): 
+        """
         Take a dictionary of settings (column names/types) and 
-        perform an update. Note: The index is a single name.        
+        perform an update. Note: The index is a single name.
         """
-        statement = self.generateUpdate(table_name,column_name,entity_name,settings)
+        statement = self.generateUpdate(table_name, column_name, entity_name,
+                                        settings)
         affected = 0
         cursor = None
         try:
             try:
                 cursor = self.conn.cursor()
                 log.debug('SQL: ' + statement)
-                affected = cursor.execute(statement)  
+                affected = cursor.execute(statement)
                 log.debug('SQL Affected: ' + `affected` + ':' + `result`)
             except Exception, details:
-                if cursor: self.logWarnings(cursor)    
-                log.error('SQL Error on [%s] : %s' % (statement, details), exc_info=1)
-                raise              
+                if cursor:
+                    self.logWarnings(cursor)
+                log.error('SQL Error on [%s] : %s' % (statement, details),
+                          exc_info = 1)
+                raise
         finally:
-            if cursor: cursor.close() 
+            if cursor:
+                cursor.close() 
         return affected 
 
-    def generateDelete(self,table_name,column_name,entity_name):       
+    def generateDelete(self, table_name, column_name, entity_name):
         """ 
         Perform an SQL DELETE 
         Index is single name
@@ -258,30 +271,33 @@
                         % (self.database, table_name, column_name, entity_name)
         return statement
 
-    def delete(self,table_name,column_name,entity_name):       
+    def delete(self, table_name, column_name, entity_name):
         """ 
         Perform an SQL DELETE 
         Index is single name
         """
-        statement = self.generateDelete(table_name,column_name, entity_name)
+        statement = self.generateDelete(table_name, column_name, entity_name)
         affected = 0
         cursor = None
         try:
             try:
                 cursor = self.conn.cursor()
                 log.debug('SQL: ' + statement)
-                affected = cursor.execute(statement)       
-                log.debug('SQL Affected: ' + `affected`)              
+                affected = cursor.execute(statement)
+                log.debug('SQL Affected: ' + `affected`)
             except Exception, details:
-                if cursor: self.logWarnings(cursor)    
-                log.error('SQL Error on [%s] : %s' % (statement, details), exc_info=1)
-                raise                
+                if cursor:
+                    self.logWarnings(cursor)
+                log.error('SQL Error on [%s] : %s' % (statement, details),
+                          exc_info = 1)
+                raise
         finally:
-            if cursor: cursor.close()     
+            if cursor:
+                cursor.close()
         return affected 
-        
-    def logWarnings(self,cursor):
+
+    def logWarnings(self, cursor):
         if cursor.messages:
             for (message, details) in cursor.messages:
                 log.warning('SQL Warning:' + str(message) + ':' + str(details))
-            
+