Changeset 2449 for trunk/GSASII.py
- Timestamp:
- Aug 24, 2016 9:20:07 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r2431 r2449 2074 2074 2075 2075 # find all the exporter files 2076 pathlist = sys.path2077 filelist = []2078 for path in pathlist:2079 for filename in glob.iglob(os.path.join(path,"G2export*.py")):2080 f ilelist.append(filename)2081 filelist = sorted(list(set(filelist))) # remove duplicates2082 self.exporterlist = []2083 # go through the routines and import them, saving objects that2084 # have export routines (method Exporter)2085 for filename in filelist:2086 path,rootname = os.path.split(filename)2087 pkg = os.path.splitext(rootname)[0]2088 try:2089 fp = None2090 fp, fppath,desc = imp.find_module(pkg,[path,])2091 pkg = imp.load_module(pkg,fp,fppath,desc)2092 for clss in inspect.getmembers(pkg): # find classes defined in package2093 if clss[0].startswith('_'): continue2094 if inspect.isclass(clss[1]):2095 # check if we have the required methods2096 for m in 'Exporter','loadParmDict':2097 if not hasattr(clss[1],m): break2098 if not callable(getattr(clss[1],m)): break2099 else:2100 exporter = clss[1](self) # create an export instance2101 self.exporterlist.append(exporter)2102 except AttributeError:2103 print 'Import_'+errprefix+': Attribute Error'+str(filename)2104 pass2105 except ImportError:2106 print 'Import_'+errprefix+': Error importing file'+str(filename)2107 pass2108 if fp: fp.close()2076 if not self.exporterlist: # this only needs to be done once 2077 pathlist = sys.path 2078 filelist = [] 2079 for path in pathlist: 2080 for filename in glob.iglob(os.path.join(path,"G2export*.py")): 2081 filelist.append(filename) 2082 filelist = sorted(list(set(filelist))) # remove duplicates 2083 # go through the routines and import them, saving objects that 2084 # have export routines (method Exporter) 2085 for filename in filelist: 2086 path,rootname = os.path.split(filename) 2087 pkg = os.path.splitext(rootname)[0] 2088 try: 2089 fp = None 2090 fp, fppath,desc = imp.find_module(pkg,[path,]) 2091 pkg = imp.load_module(pkg,fp,fppath,desc) 2092 for clss in inspect.getmembers(pkg): # find classes defined in package 2093 if clss[0].startswith('_'): continue 2094 if inspect.isclass(clss[1]): 2095 # check if we have the required methods 2096 for m in 'Exporter','loadParmDict': 2097 if not hasattr(clss[1],m): break 2098 if not callable(getattr(clss[1],m)): break 2099 else: 2100 exporter = clss[1](self) # create an export instance 2101 self.exporterlist.append(exporter) 2102 except AttributeError: 2103 print 'Import_'+errprefix+': Attribute Error'+str(filename) 2104 pass 2105 except ImportError: 2106 print 'Import_'+errprefix+': Error importing file'+str(filename) 2107 pass 2108 if fp: fp.close() 2109 2109 # Add submenu item(s) for each Exporter by its self-declared type (can be more than one) 2110 2110 for obj in self.exporterlist: … … 2314 2314 def __init__(self, parent): 2315 2315 self.ExportLookup = {} 2316 self.exporterlist = [] 2316 2317 self._init_ctrls(parent) 2317 2318 self.Image = wx.Image(
Note: See TracChangeset
for help on using the changeset viewer.