[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