diff sqlpyPlus.py @ 16:2776755a3a7e

beginning separation of cmd2
author devlinjs@FA7CZA6N1254998.wrightpatterson.afmc.ds.af.mil
date Wed, 19 Dec 2007 10:28:01 -0500
parents 9c7df9f825a1
children d6d64c2e3b98
line wrap: on
line diff
--- a/sqlpyPlus.py	Tue Dec 18 19:18:22 2007 -0500
+++ b/sqlpyPlus.py	Wed Dec 19 10:28:01 2007 -0500
@@ -340,54 +340,12 @@
             if not givenBindVars.has_key(varname):
                 print 'Bind variable %s not defined.' % (varname)                
     return result
-
-class HistoryItem(str):
-    def __init__(self, instr):
-        str.__init__(self, instr)
-        self.lowercase = self.lower()
-        self.idx = None
-    def pr(self):
-        print '-------------------------[%d]' % (self.idx)
-        print self
-        
-class History(list):
-    rangeFrom = re.compile(r'^([\d])+\s*\-$')
-    def append(self, new):
-        new = HistoryItem(new)
-        list.append(self, new)
-        new.idx = len(self)
-    def extend(self, new):
-        for n in new:
-            self.append(n)
-    def get(self, getme):
-        try:
-            getme = int(getme)
-            if getme < 0:
-                return self[:(-1 * getme)]
-            else:
-                return [self[getme-1]]
-        except IndexError:
-            return []
-        except (ValueError, TypeError):
-            getme = getme.strip()
-            mtch = self.rangeFrom.search(getme)
-            if mtch:
-                return self[(int(mtch.group(1))-1):]
-            if getme.startswith(r'/') and getme.endswith(r'/'):
-                finder = re.compile(getme[1:-1], re.DOTALL | re.MULTILINE | re.IGNORECASE)
-                def isin(hi):
-                    return finder.search(hi)
-            else:
-                def isin(hi):
-                    return (getme.lower() in hi.lowercase)
-            return [itm for itm in self if isin(itm)]
         
 class sqlpyPlus(sqlpython.sqlpython):
     def __init__(self):
         sqlpython.sqlpython.__init__(self)
         self.binds = CaselessDict()
         self.sqlBuffer = []
-        self.history = History()
         self.settable = ['maxtselctrows', 'maxfetch', 'autobind', 'failover', 'timeout'] # settables must be lowercase
         self.stdoutBeforeSpool = sys.stdout
         self.spoolFile = None
@@ -395,7 +353,6 @@
         self.failover = False
         self.multiline = '''select insert update delete tselect
         create drop alter'''.split()
-        self.excludeFromHistory = '''run r list l history hi ed li'''.split()
 
     def default(self, arg, do_everywhere=False):
         sqlpython.sqlpython.default(self, arg, do_everywhere)
@@ -458,15 +415,6 @@
         except Exception:
             return line
     
-    def postcmd(self, stop, line):
-        """Hook method executed just after a command dispatch is finished."""
-	try:
-	    command = line.split(None,1)[0].lower()
-	    if command not in self.excludeFromHistory:
-		self.history.append(line)
-	finally:
-	    return stop
-    
     def onecmd_plus_hooks(self, line):                          
         line = self.precmd(line)
         stop = self.onecmd(line)
@@ -813,44 +761,7 @@
         print runme
         self.onecmd_plus_hooks(runme)
     do_r = do_run
-    def do_history(self, arg):
-        """history [arg]: lists past commands issued
-        
-        no arg -> list all
-        arg is integer -> list one history item, by index
-        arg is string -> string search
-        arg is /enclosed in forward-slashes/ -> regular expression search
-        """
-        if arg:
-            history = self.history.get(arg)
-        else:
-            history = self.history
-        for hi in history:
-            hi.pr()
-    def last_matching(self, arg):
-        try:
-            if arg:
-                return self.history.get(arg)[-1]
-            else:
-                return self.history[-1]
-        except:
-            return None        
-    def do_list(self, arg):
-        """list [arg]: lists last command issued
-        
-        no arg -> list absolute last
-        arg is integer -> list one history item, by index
-        - arg, arg - (integer) -> list up to or after #arg
-        arg is string -> list last command matching string search
-        arg is /enclosed in forward-slashes/ -> regular expression search
-        """
-        try:
-            self.last_matching(arg).pr()
-        except:
-            pass
-    do_hi = do_history
-    do_l = do_list
-    do_li = do_list
+
     def load(self, fname):
         """Pulls command(s) into sql buffer.  Returns number of commands loaded."""
         try: