Changeset 6d19988 in sasview


Ignore:
Timestamp:
Jul 2, 2008 4:09:27 PM (16 years ago)
Author:
Gervaise Alina <gervyh@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
87bff18
Parents:
0fc05f9
Message:

loaded with plugins

File:
1 edited

Legend:

Unmodified
Added
Removed
  • DataLoader/loader.py

    raa749ac r6d19988  
    66and registers the built-in file extensions. 
    77""" 
     8import imp,os,sys 
    89import logging 
    910import os.path 
    10  
     11def _findReaders(dir): 
     12    # List of plugin objects 
     13    plugins = [] 
     14    # Go through files in plug-in directory 
     15    try: 
     16         
     17        list = os.listdir(dir) 
     18        for item in list: 
     19             
     20            toks = os.path.splitext(os.path.basename(item)) 
     21            if toks[1]=='.py' and not toks[0]=='__init__': 
     22                name = toks[0] 
     23                path = [os.path.abspath(dir)] 
     24                file = None 
     25         
     26                try: 
     27                    print"name",name  
     28                    print "path",path 
     29                    print imp.find_module(name, path) 
     30                    (file, path, info) = imp.find_module(name, path) 
     31                    print"file",file 
     32                    print "path", path 
     33                    print "info",info 
     34                    print"hasattr",imp.load_module( name, file, item, info ) 
     35                    module = imp.load_module( name, file, item, info ) 
     36                    print"module", module 
     37     
     38                    if hasattr(module, "Reader"): 
     39                        print "went here" 
     40                        try: 
     41                            plugins.append(module.Reader()) 
     42                        except: 
     43                            log("Error accessing Reader in %s\n  %s" % (name, sys.exc_value)) 
     44                except : 
     45                    print"Error importing %s\n  %s" % (name,sys.exc_value) 
     46                    log("Error importing %s\n  %s" % (name, sys.exc_value)) 
     47                finally: 
     48                    if not file==None: 
     49                        file.close() 
     50    except: 
     51        # Should raise and catch at a higher level and display error on status bar 
     52        pass    
     53    return plugins 
    1154class Loader(object): 
    1255    """ 
     
    5699         
    57100         
    58     def __setitem__(self, ext, reader): 
    59         if ext not in self.readers: 
    60             self.readers[ext] = [] 
    61         self.readers[ext].insert(0,reader) 
     101    def __setitem__(self, ext=None, reader=None): 
     102        if reader==None: 
     103            print os.getcwd() 
     104            print  os.path.isdir('plugins') 
     105            print "absolute path : ",os.path.abspath('plugins') 
     106            plugReader=None 
     107            if os.path.isdir('plugins'): 
     108                print "went here" 
     109                plugReader=_findReaders('plugins')# import all module in plugins 
     110            elif os.path.isdir('../plugins'): 
     111                plugReader=_findReaders('../plugins') 
     112            if plugReader !=None: 
     113                print "this is plugreader",plugReader 
     114                for preader in plugReader:# for each modules takes list of extensions 
     115                    #print preader.ext 
     116                    for item in preader.ext: 
     117                        ext=item 
     118                        if ext not in self.readers:#assign extension with its reader 
     119                            self.readers[ext] = [] 
     120                        self.readers[ext].insert(0,preader) 
     121                        print "extension",ext 
     122                        print "readers",self.readers 
     123        else: 
     124            if ext not in self.readers: 
     125                self.readers[ext] = [] 
     126            self.readers[ext].insert(0,reader) 
    62127         
    63128         
    64129    def __getitem__(self, ext): 
    65130        return self.readers[ext] 
     131         
    66132     
    67133     
     
    121187                except ValueError,msg: 
    122188                    print str(msg) 
     189if __name__=="__main__": 
     190    l=Loader() 
     191    l.__setitem__() 
     192    print "look up",l.lookup('angles_flat.png') 
     193    print l.__getitem__('.tiff') 
     194    print l.__contains__('.tiff') 
     195     
Note: See TracChangeset for help on using the changeset viewer.