9 def load_versions(self):
10 path = os.path.dirname(os.path.abspath( __file__ ))
11 versions_path = path + os.sep + 'versions'
12 versions_module_path = 'sfa.rspecs.versions'
13 valid_module = lambda x: os.path.isfile(os.sep.join([versions_path, x])) \
14 and not x.endswith('.pyc') and x not in ['__init__.py']
15 files = [f for f in os.listdir(versions_path) if valid_module(f)]
16 for filename in files:
17 basename = filename.split('.')[0]
18 module_path = versions_module_path +'.'+basename
19 module = __import__(module_path, fromlist=module_path)
20 for attr_name in dir(module):
21 attr = getattr(module, attr_name)
22 if hasattr(attr, 'version'):
23 self.versions.append(attr)
25 def get_version(self, format, version_num=None, type=None):
27 for version in self.versions:
28 if format is None or format.lower() == version.format.lower():
29 if version_num is None or version_num == version.version:
30 if type is None or type.lower() == version.type.lower():
33 raise Exception, "No such version format: %s version: %s type:%s "% (format, version_num, type)
37 if __name__ == '__main__':
40 print v.get_version('sfa')