+1, thanks! On Mon, Dec 8, 2008 at 10:18 PM, <[EMAIL PROTECTED]> wrote: > > From: Andy R. Terrel <[EMAIL PROTECTED]> > > --- > examples/all.py | 143 > +++++++++++++++++++++++++++++++++++++------------------ > 1 files changed, 97 insertions(+), 46 deletions(-) > > diff --git a/examples/all.py b/examples/all.py > index 65988af..3a395ab 100755 > --- a/examples/all.py > +++ b/examples/all.py > @@ -1,57 +1,78 @@ > #!/usr/bin/env python > -"""Runner script > - > -Runs all the known working examples. > - > - Usage: > - > - When all examples run: > - $ ./all > out > - $ > - > - When some examples fail: > - $ ./all > out > - Traceback (most recent call last): > - File "./limits_examples.py", line 17, in ? > - [...] > - $ > - > - Obviously, we want to achieve the first result. > +"""all.py > + > +Runs all the examples for testing purposes and reports success and failure > +to stderr. An example is marked successful if the running thread does not > +throw an exception, for threaded examples, such as plotting, one needs to > +check the stderr messages as well. > + > + $ ./all.py [-hw] > + > +Options: > + -h print this help message and exit > + -w Also run examples requiring windowed environment. > + > +Example Usage: > + When no examples fail: > + $ ./all.py > out > + SUCCESSFUL: > + - beginner.basic > + [...] > + NO FAILED EXAMPLES > + $ > + > + When examples fail: > + $ ./all.py -W > out > + Traceback (most recent call last): > + File "./all.py", line 111, in run_examples > + [...] > + SUCCESSFUL: > + - beginner.basic > + [...] > + FAILED: > + - intermediate.mplot2D > + [...] > + $ > + > + Obviously, we want to achieve the first result. > """ > > import imp > import os > import sys > import traceback > +import getopt > > -WORKING_EXAMPLES = [ > +TERMINAL_EXAMPLES = [ > "beginner.basic", > "beginner.differentiation", > "beginner.expansion", > "beginner.functions", > "beginner.limits_examples", > - #"beginner.plotting_nice_plot", > "beginner.precision", > "beginner.print_pretty", > "beginner.series", > "beginner.substitution", > "beginner.expansion", > "intermediate.differential_equations", > - #"intermediate.mplot2d", > - #"intermediate.mplot3d", > - #"intermediate.print_gtk", > "intermediate.trees", > "intermediate.vandermonde", > "advanced.fem", > "advanced.gibbs_phenomenon", > "advanced.pidigits", > - #"advanced.plotting", > "advanced.qft", > "advanced.relativity", > ] > > -example_dir = os.path.dirname(__file__) > -example_modules = [] > +WINDOWED_EXAMPLES = [ > + "beginner.plotting_nice_plot", > + #"intermediate.print_gtk", > + "intermediate.mplot2d", > + "intermediate.mplot3d", > + "advanced.plotting", > + ] > + > +EXAMPLE_DIR = os.path.dirname(__file__) > > def __import__(name, globals=None, locals=None, fromlist=None): > """An alternative to the import function so that we can import > @@ -68,7 +89,7 @@ def __import__(name, globals=None, locals=None, > fromlist=None): > # If any of the following calls raises an exception, > # there's a problem we can't handle -- let the caller handle it. > module_name = name.split('.')[-1] > - module_path = os.path.join(example_dir, *name.split('.')[:-1]) > + module_path = os.path.join(EXAMPLE_DIR, *name.split('.')[:-1]) > > fp, pathname, description = imp.find_module(module_name, [module_path]) > > @@ -79,37 +100,67 @@ def __import__(name, globals=None, locals=None, > fromlist=None): > if fp: > fp.close() > > -def load_example_modules (): > - """Loads modules based upon the given package name""" > - global example_modules > > - for entry in WORKING_EXAMPLES: > - mod = __import__(entry) > - example_modules.append(mod) > +def load_example_module(example): > + """Loads modules based upon the given package name""" > + mod = __import__(example) > + return mod > > -def setup_path (): > - """Put example directories in the path to load easily""" > - sys.path.insert(0,example_dir) > > -def run_examples(): > +def run_examples(windowed=False): > + """Run example in list of modules""" > success = [] > fail = [] > - for mod in example_modules: > + examples = TERMINAL_EXAMPLES > + if windowed: > + examples += WINDOWED_EXAMPLES > + for example in examples: > print "="*79 > - print "Running: ", mod.__name__ > + print "Running: ", example > try: > + mod = load_example_module(example) > mod.main() > - success.append(mod.__name__) > + success.append(example) > except: > traceback.print_exc() > - fail.append(mod.__name__) > - print "SUCCESS: ", success > - print "FAIL: ", fail > + fail.append(example) > + if success: > + print >> sys.stderr, "SUCCESSFUL: " > + for example in success: > + print >> sys.stderr, " -", example > + else: > + print >> sys.stderr, "NO SUCCESSFUL EXAMPLES" > + if fail: > + print >> sys.stderr, "FAILED: " > + for example in fail: > + print >> sys.stderr, " -", example > + else: > + print >> sys.stderr, "NO FAILED EXAMPLES" > + > > def main (*args, **kws): > - setup_path() > - load_example_modules() > - run_examples() > + """Main script runner""" > + > + use_windowed = False > + try: > + opts, remainder = getopt.getopt(args, "hw") > + print opts > + for opt_key, opt_val in opts: > + print opt_key == '-w' > + if opt_key == '-w': > + use_windowed = True > + elif opt_key == "-h": > + print __doc__ > + sys.exit(0) > + else: > + raise getopt.GetoptError, "option %s not processed" % opt_key > + except getopt.GetoptError, message: > + print >> sys.stderr, message > + print >> sys.stderr, "Use -h option for usage.\n" > + sys.exit(1) > + > + run_examples(use_windowed) > + > > if __name__ == "__main__": > main(*sys.argv[1:]) > -- > 1.6.0.3 > > > > >
--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sympy-patches" group. To post to this group, send email to sympy-patches@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sympy-patches?hl=en -~----------~----~----~----~------~----~------~--~---