summaryrefslogtreecommitdiffstats
path: root/qtip/loader/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'qtip/loader/base.py')
-rw-r--r--qtip/loader/base.py53
1 files changed, 1 insertions, 52 deletions
diff --git a/qtip/loader/base.py b/qtip/loader/base.py
index a0e5d031..abc254bf 100644
--- a/qtip/loader/base.py
+++ b/qtip/loader/base.py
@@ -7,57 +7,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-from collections import defaultdict
-from itertools import chain
-from os import listdir
-from os import path
-import yaml
-
-from qtip.base.error import InvalidFormat, NotFound
-from qtip.base.constant import BaseProp
-
-
-ROOT_DIR = path.join(path.dirname(__file__), path.pardir, path.pardir,
- 'benchmarks')
-
class BaseLoader(object):
- """Abstract class of QTIP benchmark loader"""
- RELATIVE_PATH = '.'
- _paths = [ROOT_DIR]
-
- def __init__(self, name, paths=None):
- self._file = name
- self._abspath = self._find(name, paths=paths)
- content = defaultdict(lambda: None)
-
- try:
- content.update(yaml.safe_load(file(self._abspath)))
- except yaml.YAMLError:
- # TODO(yujunz) log yaml error
- raise InvalidFormat(self._abspath)
-
- self.name = content[BaseProp.NAME] or path.splitext(name)[0]
- self.content = content
-
- def _find(self, name, paths=None):
- """find a benchmark in searching paths"""
- paths = self._paths if paths is None else paths
- for p in paths:
- abspath = path.join(p, self.RELATIVE_PATH, name)
- if path.exists(abspath):
- return abspath
- raise NotFound(name, paths)
-
- @classmethod
- def list_all(cls, paths=None):
- """list all available benchmarks"""
- paths = cls._paths if paths is None else paths
- names = chain.from_iterable([listdir(path.join(p, cls.RELATIVE_PATH))
- for p in paths])
- for name in names:
- item = cls(name, paths=paths)
- yield {
- BaseProp.NAME: name,
- BaseProp.ABSPATH: item._abspath,
- BaseProp.CONTENT: item.content}
+ """Abstract class of QTIP loader"""