Mercurial > sqlpython
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: