[Spambayes-checkins] spambayes/scripts sb_pop3dnd.py,1.13,1.14
Tony Meyer
anadelonbrin at users.sourceforge.net
Wed Dec 22 00:21:25 CET 2004
Update of /cvsroot/spambayes/spambayes/scripts
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15878/scripts
Modified Files:
sb_pop3dnd.py
Log Message:
Pass an existing message info db to message objects where possible.
Correctly initialise the (new and improved) stats manager.
Index: sb_pop3dnd.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/scripts/sb_pop3dnd.py,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** sb_pop3dnd.py 22 Nov 2004 00:16:39 -0000 1.13
--- sb_pop3dnd.py 21 Dec 2004 23:21:22 -0000 1.14
***************
*** 120,125 ****
__implements__ = (IMessage,)
! def __init__(self, date=None):
! message.Message.__init__(self)
# We want to persist more information than the generic
# Message class.
--- 120,125 ----
__implements__ = (IMessage,)
! def __init__(self, date=None, message_db=None):
! message.Message.__init__(self, message_info_db=message_db)
# We want to persist more information than the generic
# Message class.
***************
*** 289,295 ****
class DynamicIMAPMessage(IMAPMessage):
"""An IMAP Message that may change each time it is loaded."""
! def __init__(self, func):
date = imaplib.Time2Internaldate(time.time())[1:-1]
! IMAPMessage.__init__(self, date)
self.func = func
self.load()
--- 289,295 ----
class DynamicIMAPMessage(IMAPMessage):
"""An IMAP Message that may change each time it is loaded."""
! def __init__(self, func, mdb):
date = imaplib.Time2Internaldate(time.time())[1:-1]
! IMAPMessage.__init__(self, date, mdb)
self.func = func
self.load()
***************
*** 303,313 ****
! class IMAPFileMessage(IMAPMessage, FileCorpus.FileMessage):
'''IMAP Message that persists as a file system artifact.'''
! def __init__(self, file_name=None, directory=None):
"""Constructor(message file name, corpus directory name)."""
date = imaplib.Time2Internaldate(time.time())[1:-1]
! IMAPMessage.__init__(self, date)
FileCorpus.FileMessage.__init__(self, file_name, directory)
self.id = file_name
--- 303,313 ----
! class IM.APFileMessage(IMAPMessage, FileCorpus.FileMessage):
'''IMAP Message that persists as a file system artifact.'''
! def __init__(self, file_name=None, directory=None, mdb=None):
"""Constructor(message file name, corpus directory name)."""
date = imaplib.Time2Internaldate(time.time())[1:-1]
! IMAPMessage.__init__(self, date, mdb)
FileCorpus.FileMessage.__init__(self, file_name, directory)
self.id = file_name
***************
*** 538,543 ****
class SpambayesInbox(SpambayesMailbox):
"""A special mailbox that holds status messages from SpamBayes."""
! def __init__(self, id):
IMAPMailbox.__init__(self, "INBOX", "spambayes", id)
self.UID_validity = id
self.nextUID = 1
--- 538,544 ----
class SpambayesInbox(SpambayesMailbox):
"""A special mailbox that holds status messages from SpamBayes."""
! def __init__(self, id, message_db):
IMAPMailbox.__init__(self, "INBOX", "spambayes", id)
+ self.mdb = message_db
self.UID_validity = id
self.nextUID = 1
***************
*** 546,549 ****
--- 547,560 ----
self.storage = {}
self.createMessages()
+ s_thres = options["Categorization", "spam_cutoff"]
+ u_thres = options["Categorization", "ham_cutoff"]
+ fp_cost = options["TestDriver", "best_cutoff_fp_weight"]
+ fn_cost = options["TestDriver", "best_cutoff_fn_weight"]
+ unsure_cost = options["TestDriver", "best_cutoff_unsure_weight"]
+ h_string = options["Headers", "header_ham_string"]
+ s_string = options["Headers", "header_spam_string"]
+ u_string = options["Headers", "header_unsure_string"]
+ self.stats = Stats(s_thres, u_thres, message_db, h_string, u_string,
+ s_string, fp_cost, fn_cost, unsure_cost)
def buildStatusMessage(self, body=False, headers=False):
***************
*** 596,601 ****
msg.append('\r\n')
if body:
- s = Stats()
- s.CalculateStats()
msg.extend(s.GetStats(use_html=False))
return "\r\n".join(msg)
--- 607,610 ----
***************
*** 612,618 ****
msg.date = date
self.addMessage(msg)
! msg = DynamicIMAPMessage(self.buildStatusMessage)
self.addMessage(msg)
! msg = DynamicIMAPMessage(self.buildStatisticsMessage)
self.addMessage(msg)
# XXX Add other messages here, for example
--- 621,627 ----
msg.date = date
self.addMessage(msg)
! msg = DynamicIMAPMessage(self.buildStatusMessage, self.mdb)
self.addMessage(msg)
! msg = DynamicIMAPMessage(self.buildStatisticsMessage, self.mdb)
self.addMessage(msg)
# XXX Add other messages here, for example
***************
*** 912,915 ****
--- 921,927 ----
self.DBName, self.useDB = storage.database_type([])
self.bayes = storage.open_storage(self.DBName, self.useDB)
+ if not hasattr(self, "MBDName"):
+ self.MDBName, self.useMDB = message.database_type()
+ self.mdb = message.open_storage(self.MDBName, self.useMDB)
self.buildStatusStrings()
***************
*** 943,947 ****
"spam_to_train")
spam_train_box = SpambayesMailbox("TrainAsSpam", 3, spam_train_cache)
! inbox = SpambayesInbox(4)
spam_trainer = Trainer(spam_train_box, True)
--- 955,959 ----
"spam_to_train")
spam_train_box = SpambayesMailbox("TrainAsSpam", 3, spam_train_cache)
! inbox = SpambayesInbox(4, state.mdb)
spam_trainer = Trainer(spam_train_box, True)
More information about the Spambayes-checkins
mailing list