[Python-checkins] CVS: distutils/distutils util.py,1.40,1.41

Greg Ward python-dev@python.org
Tue, 1 Aug 2000 18:37:33 -0700


Update of /cvsroot/python/distutils/distutils
In directory slayer.i.sourceforge.net:/tmp/cvs-serv12526

Modified Files:
	util.py 
Log Message:
Added the 'execute()' function (moved here from cmd.py with minor tweakage).

Index: util.py
===================================================================
RCS file: /cvsroot/python/distutils/distutils/util.py,v
retrieving revision 1.40
retrieving revision 1.41
diff -C2 -r1.40 -r1.41
*** util.py	2000/08/02 00:37:32	1.40
--- util.py	2000/08/02 01:37:30	1.41
***************
*** 224,225 ****
--- 224,251 ----
  
  # split_quoted ()
+ 
+ 
+ def execute (func, args, msg=None, verbose=0, dry_run=0):
+     """Perform some action that affects the outside world (eg.  by writing
+     to the filesystem).  Such actions are special because they are disabled
+     by the 'dry_run' flag, and announce themselves if 'verbose' is true.
+     This method takes care of all that bureaucracy for you; all you have to
+     do is supply the function to call and an argument tuple for it (to
+     embody the "external action" being performed), and an optional message
+     to print.
+     """
+     # Generate a message if we weren't passed one
+     if msg is None:
+         msg = "%s%s" % (func.__name__, `args`)
+         if msg[-2:] == ',)':        # correct for singleton tuple 
+             msg = msg[0:-2] + ')'
+ 
+     # Print it if verbosity level is high enough
+     if verbose:
+         print msg
+ 
+     # And do it, as long as we're not in dry-run mode
+     if not dry_run:
+         apply(func, args)
+ 
+ # execute()