[Spambayes-checkins] spambayes/spambayes OptionsClass.py,1.26,1.27
Tony Meyer
anadelonbrin at users.sourceforge.net
Wed Mar 16 04:37:14 CET 2005
Update of /cvsroot/spambayes/spambayes/spambayes
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18352/spambayes
Modified Files:
OptionsClass.py
Log Message:
Speed up a couple of things.
Allow an OptionClass object to set and restore from a particular point.
Index: OptionsClass.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/spambayes/OptionsClass.py,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** OptionsClass.py 16 Jan 2005 22:20:21 -0000 1.26
--- OptionsClass.py 16 Mar 2005 03:37:11 -0000 1.27
***************
*** 208,222 ****
s = str(value)
i = 0
! vals = ()
while True:
m = r.search(s[i:])
if m is None:
break
! vals += (m.group(),)
delimiter = s[i:i + m.start()]
if self.delimiter is None and delimiter != "":
self.delimiter = delimiter
i += m.end()
! return vals
def as_nice_string(self, section=None):
--- 208,222 ----
s = str(value)
i = 0
! vals = []
while True:
m = r.search(s[i:])
if m is None:
break
! vals.append(m.group())
delimiter = s[i:i + m.start()]
if self.delimiter is None and delimiter != "":
self.delimiter = delimiter
i += m.end()
! return tuple(vals)
def as_nice_string(self, section=None):
***************
*** 399,402 ****
--- 399,403 ----
self.verbose = None
self._options = {}
+ self.restore_point = {}
self.conversion_table = {} # set by creator if they need it.
#
***************
*** 519,523 ****
def load_defaults(self, defaults):
! '''Load default values (stored in this module).'''
for section, opts in defaults.items():
for opt in opts:
--- 520,524 ----
def load_defaults(self, defaults):
! '''Load default values (stored in Options.py).'''
for section, opts in defaults.items():
for opt in opts:
***************
*** 537,540 ****
--- 538,563 ----
self._options[section, o.name] = o
+ def set_restore_point(self):
+ '''Remember what the option values are right now, to
+ be able to go back to them, via revert_to_restore_point().
+
+ Any existing restore point is wiped. Restore points do
+ not persist over sessions.
+ '''
+ self.restore_point = {}
+ for key, opt_obj in self._options.iteritems():
+ self.restore_point[key] = opt_obj.get()
+
+ def revert_to_restore_point(self):
+ '''Restore option values to their values when set_restore_point()
+ was last called.
+
+ If set_restore_point() has not been called, then this has no
+ effect. If new options have been added since set_restore_point,
+ their values are not effected.
+ '''
+ for key, value in self.restore_point.iteritems():
+ self._options[key].set(value)
+
def merge_files(self, file_list):
for f in file_list:
***************
*** 802,810 ****
# where number represents the number of CHAR8 octets
# but this is too complex for us at the moment.
! IMAP_ASTRING = ""
for i in range(1, 128):
if not chr(i) in ['"', '\\', '\n', '\r']:
! IMAP_ASTRING += chr(i)
! IMAP_ASTRING = r"\"?\\?[" + re.escape(IMAP_ASTRING) + r"]+\"?"
# Similarly, each option must specify whether it should be reset to
--- 825,833 ----
# where number represents the number of CHAR8 octets
# but this is too complex for us at the moment.
! IMAP_ASTRING = []
for i in range(1, 128):
if not chr(i) in ['"', '\\', '\n', '\r']:
! IMAP_ASTRING.append(chr(i))
! IMAP_ASTRING = r"\"?[" + re.escape(''.join(IMAP_ASTRING)) + r"]+\"?"
# Similarly, each option must specify whether it should be reset to
More information about the Spambayes-checkins
mailing list