import pkg_resources try: from collections import OrderedDict except ImportError: from ordereddict import OrderedDict class Core(object): @classmethod def js_package(cls): return __package__ @classmethod def css_package(cls): return __package__ @classmethod def image_package(cls): return __package__ + ".images" @classmethod def js_files(cls): js_files = sorted(list(filter(lambda x: '.js' in x, pkg_resources.resource_listdir(cls.js_package(), '.')))) # jasmine.js needs to be first js_files.insert(0, 'jasmine.js') # boot needs to be last js_files.remove('boot.js') js_files.append('boot.js') return cls._uniq(js_files) @classmethod def css_files(cls): return cls._uniq(sorted(filter(lambda x: '.css' in x, pkg_resources.resource_listdir(cls.css_package(), '.')))) @classmethod def favicon(cls): return 'jasmine_favicon.png' @classmethod def _uniq(self, items, idfun=None): # order preserving if idfun is None: def idfun(x): return x seen = {} result = [] for item in items: marker = idfun(item) # in old Python versions: # if seen.has_key(marker) # but in new ones: if marker in seen: continue seen[marker] = 1 result.append(item) return result