[Spambayes-checkins] spambayes/scripts sb_imapfilter.py,1.56,1.57

Tony Meyer anadelonbrin at users.sourceforge.net
Wed Apr 6 04:48:35 CEST 2005


Update of /cvsroot/spambayes/spambayes/scripts
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5523/scripts

Modified Files:
	sb_imapfilter.py 
Log Message:
Record session statistics.

Index: sb_imapfilter.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/scripts/sb_imapfilter.py,v
retrieving revision 1.56
retrieving revision 1.57
diff -C2 -d -r1.56 -r1.57
*** sb_imapfilter.py	29 Mar 2005 07:18:30 -0000	1.56
--- sb_imapfilter.py	6 Apr 2005 02:48:33 -0000	1.57
***************
*** 720,726 ****
  
  class IMAPFolder(object):
!     def __init__(self, folder_name, imap_server):
          self.name = folder_name
          self.imap_server = imap_server
  
          # Unique names for cached messages - see _generate_id below.
--- 720,727 ----
  
  class IMAPFolder(object):
!     def __init__(self, folder_name, imap_server, stats):
          self.name = folder_name
          self.imap_server = imap_server
+         self.stats = stats
  
          # Unique names for cached messages - see _generate_id below.
***************
*** 838,841 ****
--- 839,846 ----
                  msg.delSBHeaders()
                  classifier.unlearn(msg.tokenize(), not isSpam)
+                 if isSpam:
+                     old_class = options["Headers", "header_ham_string"]
+                 else:
+                     old_class = options["Headers", "header_spam_string"]
  
                  # Once the message has been untrained, it's training memory
***************
*** 843,846 ****
--- 848,853 ----
                  # reason the training breaks.
                  msg.RememberTrained(None)
+             else:
+                 old_class = None
  
              if msg.GetTrained() is None:
***************
*** 853,856 ****
--- 860,864 ----
                  num_trained += 1
                  msg.RememberTrained(isSpam)
+                 self.stats.RecordTraining(not isSpam, old_class=old_class)
                  if isSpam:
                      move_opt_name = "move_trained_spam_to_folder"
***************
*** 862,866 ****
                          msg[header] = value
                      msg.MoveTo(IMAPFolder(options["imap", move_opt_name],
!                                            self.imap_server))
                      msg.Save()
          return num_trained
--- 870,874 ----
                          msg[header] = value
                      msg.MoveTo(IMAPFolder(options["imap", move_opt_name],
!                                            self.imap_server, self.stats))
                      msg.Save()
          return num_trained
***************
*** 886,889 ****
--- 894,898 ----
                  msg.delSBHeaders()
                  msg.addSBHeaders(prob, clues)
+                 self.stats.RecordClassification(prob)
  
                  cls = msg.GetClassification()
***************
*** 904,908 ****
  
  class IMAPFilter(object):
!     def __init__(self, classifier):
          self.spam_folder = None
          self.unsure_folder = None
--- 913,917 ----
  
  class IMAPFilter(object):
!     def __init__(self, classifier, stats):
          self.spam_folder = None
          self.unsure_folder = None
***************
*** 910,913 ****
--- 919,923 ----
          self.classifier = classifier
          self.imap_server = None
+         self.stats = stats
  
      def Train(self):
***************
*** 932,936 ****
                      print "   Training %s folder %s" % \
                            (["ham", "spam"][is_spam], fol)
!                 folder = IMAPFolder(fol, self.imap_server)
                  num_trained = folder.Train(self.classifier, is_spam)
                  total_trained += num_trained
--- 942,946 ----
                      print "   Training %s folder %s" % \
                            (["ham", "spam"][is_spam], fol)
!                 folder = IMAPFolder(fol, self.imap_server, self.stats)
                  num_trained = folder.Train(self.classifier, is_spam)
                  total_trained += num_trained
***************
*** 949,960 ****
          if not self.spam_folder:
              self.spam_folder = IMAPFolder(options["imap", "spam_folder"],
!                                           self.imap_server)
          if not self.unsure_folder:
              self.unsure_folder = IMAPFolder(options["imap",
                                                      "unsure_folder"],
!                                             self.imap_server)
          ham_folder_name = options["imap", "ham_folder"]
          if ham_folder_name and not self.ham_folder:
!             self.ham_folder = IMAPFolder(ham_folder_name, self.imap_server)
  
          if options["globals", "verbose"]:
--- 959,971 ----
          if not self.spam_folder:
              self.spam_folder = IMAPFolder(options["imap", "spam_folder"],
!                                           self.imap_server, self.stats)
          if not self.unsure_folder:
              self.unsure_folder = IMAPFolder(options["imap",
                                                      "unsure_folder"],
!                                             self.imap_server, self.stats)
          ham_folder_name = options["imap", "ham_folder"]
          if ham_folder_name and not self.ham_folder:
!             self.ham_folder = IMAPFolder(ham_folder_name, self.imap_server,
!                                          self.stats)
  
          if options["globals", "verbose"]:
***************
*** 992,996 ****
                  continue
  
!             folder = IMAPFolder(filter_folder, self.imap_server)
              subcount = folder.Filter(self.classifier, self.spam_folder,
                                       self.unsure_folder, self.ham_folder)
--- 1003,1007 ----
                  continue
  
!             folder = IMAPFolder(filter_folder, self.imap_server, self.stats)
              subcount = folder.Filter(self.classifier, self.spam_folder,
                                       self.unsure_folder, self.ham_folder)
***************
*** 1090,1094 ****
          servers_data.append((server, port, username, password))
  
!     imap_filter = IMAPFilter(classifier)
  
      # Web interface.  We have changed the rules about this many times.
--- 1101,1108 ----
          servers_data.append((server, port, username, password))
  
!     # Load stats manager.
!     stats = Stats.Stats(options, message_db)
!     
!     imap_filter = IMAPFilter(classifier, stats)
  
      # Web interface.  We have changed the rules about this many times.
***************
*** 1112,1118 ****
                  imaps.append(IMAPSession(server, port, imapDebug, doExpunge))
  
-         # Load stats manager.
-         stats = Stats.Stats(options, message_db)
-         
          httpServer = UserInterfaceServer(options["html_ui", "port"])
          httpServer.register(IMAPUserInterface(classifier, imaps, pwds,
--- 1126,1129 ----



More information about the Spambayes-checkins mailing list