spambayes/testtools sort+group.py,1.2,1.3

"Tony Meyer" <[email protected]>
Newsgroups gmane.mail.spam.spambayes.cvs
Message-ID <[email protected]>
Update of /cvsroot/spambayes/spambayes/testtools
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13964/testtools

Modified Files:
	sort+group.py 
Log Message:
Add options to sort_group.py

-h usage
-q for suppressing verbose output
-o Skip's fantastic set and option at the command line

Also observe the ham/spam directory options, rather than assuming a "Data" directory in the cwd.  In addition, only run through the specified directories, unless
 the -a option is used (this is more like the old behaviour).

Index: sort+group.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/testtools/sort+group.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** sort+group.py	28 Dec 2003 01:12:11 -0000	1.2
--- sort+group.py	7 Apr 2005 01:33:50 -0000	1.3
***************
*** 1,11 ****
  #! /usr/bin/env python
  
! ### Sort and group the messages in the Data hierarchy.
! ### Run this prior to mksets.py for setting stuff up for
! ### testing of chronological incremental training.
  
! """Usage: sort+group.py
  
! This program has no options!  Muahahahaha!
  """
  
--- 1,22 ----
  #! /usr/bin/env python
  
! """Usage: sort+group.py [options]
  
! Where:
!     -h
!         Show usage and exit.
!     -q
!         Suppress verbose output.
!     -a
!         Run through all directories in the directories that the
!         ham_directories and spam_directories are in.  This is
!         similar (identical with default ham/spam directories)
!         to the 1.0.x sort+group.py behaviour.
!     -o section:option:value
!         set [section, option] in the options database to value.
  
! Sort and group the messages in the Data hierarchy.
! Run this prior to mksets.py for setting stuff up for testing of
! chronological incremental training.
  """
  
***************
*** 14,21 ****
  import glob
  import time
  
  from email.Utils import parsedate_tz, mktime_tz
  
! loud = True
  SECONDS_PER_DAY = 24 * 60 * 60
  
--- 25,34 ----
  import glob
  import time
+ import getopt
  
  from email.Utils import parsedate_tz, mktime_tz
  
! from spambayes.Options import options
! 
  SECONDS_PER_DAY = 24 * 60 * 60
  
***************
*** 60,67 ****
--- 73,106 ----
      return mktime_tz(as_tuple)
  
+ def usage(code, msg=''):
+     """Print usage message and sys.exit(code)."""
+     if msg:
+         print >> sys.stderr, msg
+         print >> sys.stderr
+     print >> sys.stderr, __doc__ % globals()
+     sys.exit(code)
+ 
  def main():
      """Main program; parse options and go."""
  
      from os.path import join, split
+     import getopt
+ 
+     try:
+         opts, args = getopt.getopt(sys.argv[1:], 'hqao:')
+     except getopt.error, msg:
+         usage(1, msg)
+ 
+     loud = True
+     all_data = False
+     for opt, arg in opts:
+         if opt == '-h':
+             usage(0)
+         elif opt == '-q':
+             loud = False
+         elif opt == '-a':
+             all_data = True
+         elif opt in ('-o', '--option'):
+             options.set_from_cmdline(arg, sys.stderr)
  
      data = []   # list of (time_received, dirname, basename) triples
***************
*** 69,73 ****
          print "Scanning everything"
      now = time.time()
!     for name in glob.glob('Data/*/*/*'):
          if loud:
              sys.stdout.write("%-78s\r" % name)
--- 108,123 ----
          print "Scanning everything"
      now = time.time()
!     hdir = os.path.dirname(options["TestDriver", "ham_directories"])
!     sdir = os.path.dirname(options["TestDriver", "spam_directories"])
!     if all_data:
!         hdir = os.path.dirname(hdir)
!         sdir = os.path.dirname(sdir)
!         files = glob.glob(os.path.join(hdir, "*", "*", "*"))
!         if sdir != hdir:
!             files.extend(glob.glob(os.path.join(sdir, "*", "*", "*")))
!     else:
!         files = glob.glob(os.path.join(hdir, "*", "*"))
!         files.extend(glob.glob(os.path.join(sdir, "*", "*")))
!     for name in files:
          if loud:
              sys.stdout.write("%-78s\r" % name)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.