[Synopsis-changes] Synopsis/Synopsis/bin synopsis,1.3,1.4

Stefan Seefeld stefan at synopsis.fresco.org
Tue Dec 9 21:27:21 UTC 2003


Update of /cvs/synopsis/Synopsis/bin
In directory frida:/tmp/cvs-serv28419/bin

Modified Files:
	synopsis 
Log Message:
use the new import_processor

Index: synopsis
===================================================================
RCS file: /cvs/synopsis/Synopsis/bin/synopsis,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -d -r1.3 -r1.4
--- synopsis	5 Dec 2003 19:43:53 -0000	1.3
+++ synopsis	9 Dec 2003 21:27:19 -0000	1.4
@@ -13,33 +13,22 @@ from Synopsis.Processor import Processor
 
 import sys, os, os.path, string, getopt
 
-def _import(package, module, processor, verbose=False):
-   """import a processor as <package>.<module>.<processor>,
-   i.e. as the equivalent to 'from <package>.<module> import <processor>"""
+def __import__(name, verbose):
+   """Import a named processor. Instead of returning the module, this
+   reimplementation returns the processor itself. Exits on error."""
 
+   from Synopsis.import_processor import import_processor
    try:
-      mod = __import__(string.join([package, module], '.'))
+      return import_processor(name)
 
    except ImportError, msg:
-      if 'verbose' in kwds:
-         print 'Unable to import %s'%string.join([package, module], '.')
+      if verbose:
+         print 'Unable to import %s'%name
          print 'Reason :', msg
       else:
-         print 'Error : no processor \'%s\'', name[-1]
+         print 'Error : no processor \'%s\'', name.split('.')[-1]
       sys.exit(-1)
 
-   name = string.join([package, module], '.')
-   if processor: name = string.join([name, processor], '.')
-   components = string.split(name, '.')
-   for c in components[1:]:
-      try:
-         mod = getattr(mod, c)
-      except AttributeError, msg:
-         print "Error: Unable to find %s in:\n%s"%(c, repr(mod))
-         sys.exit(-1)
-
-   return mod
-
 def usage():
    """Print a little usage text"""
 
@@ -93,21 +82,19 @@ def get_opt(argv):
          options['output'] = a
 
       elif o == '-p' or o == '--parser':
-         parser = _import('Synopsis.Parsers', a, 'Parser',
-                          'verbose' in options)
+         parser = __import__('Synopsis.Parsers.%s.Parser'%a,
+                             'verbose' in options)
 
       elif o == '-l' or o == '--linker':
-         linker = _import('Synopsis.Processors', 'Linker',
-                          'verbose' in options)
-         print 'a', a
-         if a:
-            linker_opts['processors'] = map(lambda x: _import('Synopsis.Processors', x, x,
+         linker = __import__('Synopsis.Processors.Linker',
+                             'verbose' in options)
+         linker_opts['processors'] = map(lambda x: __import__('Synopsis.Processors.%s.%s'%(x, x),
                                                               'verbose' in options)(),
-                                            string.split(a, ','))
+                                         string.split(a, ','))
 
       elif o == '-f' or o == '--formatter':
-         formatter = _import('Synopsis.Formatters', a, 'Formatter',
-                             'verbose' in options)
+         formatter = __import__('Synopsis.Formatters.%s.Formatter'%a,
+                                'verbose' in options)
 
       elif o == '-I':
          if not parser_opts.get('cppflags'): parser_opts['cppflags'] = []





More information about the Synopsis-changes mailing list