Changeset 270c882b in sasview for src/sas/sascalc/data_util
- Timestamp:
- Apr 5, 2017 5:31:36 AM (8 years ago)
- 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.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- cfc6f3c7
- Parents:
- b9b612a
- git-author:
- Jeff Krzywon <krzywon@…> (04/05/17 05:31:36)
- git-committer:
- krzywon <krzywon@…> (04/05/17 05:31:36)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sascalc/data_util/registry.py
rb699768 r270c882b 7 7 """ 8 8 9 import os.path 9 from sas.sascalc.dataloader.loader_exceptions import NoKnownLoaderException 10 10 11 11 12 class ExtensionRegistry(object): … … 61 62 def __init__(self, **kw): 62 63 self.loaders = {} 64 63 65 def __setitem__(self, ext, loader): 64 66 if ext not in self.loaders: 65 67 self.loaders[ext] = [] 66 68 self.loaders[ext].insert(0,loader) 69 67 70 def __getitem__(self, ext): 68 71 return self.loaders[ext] 72 69 73 def __contains__(self, ext): 70 74 return ext in self.loaders 75 71 76 def formats(self): 72 77 """ … … 76 81 names.sort() 77 82 return names 83 78 84 def extensions(self): 79 85 """ … … 83 89 exts.sort() 84 90 return exts 91 85 92 def lookup(self, path): 86 93 """ … … 105 112 # Raise an error if there are no matching extensions 106 113 if len(loaders) == 0: 107 raise ValueError , "Unknown file type for "+path114 raise ValueError("Unknown file type for "+path) 108 115 # All done 109 116 return loaders 117 110 118 def load(self, path, format=None): 111 119 """ … … 117 125 """ 118 126 if format is None: 119 loaders = self.lookup(path) 127 try: 128 loaders = self.lookup(path) 129 except ValueError as e: 130 pass 120 131 else: 121 loaders = self.loaders[format] 132 try: 133 loaders = self.loaders[format] 134 except KeyError as e: 135 pass 122 136 for fn in loaders: 123 137 try: 124 138 return fn(path) 125 except :126 pass # give other loaders a chance to succeed139 except Exception as e: 140 pass # give other loaders a chance to succeed 127 141 # If we get here it is because all loaders failed 128 raise # reraises lastexception142 raise NoKnownLoaderException(e.message) # raise generic exception 129 143 144 145 # TODO: Move this to the unit test folder 130 146 def test(): 131 147 reg = ExtensionRegistry() … … 163 179 try: reg.load('hello.missing') 164 180 except ValueError,msg: 165 assert str(msg)=="Unknown file type for hello.missing",'Message: <%s>'%(msg) 181 assert str(msg)=="Unknown file type for hello.missing",\ 182 'Message: <%s>'%(msg) 166 183 else: raise AssertError,"No error raised for missing extension" 167 184 assert reg.formats() == ['new_cx']
Note: See TracChangeset
for help on using the changeset viewer.