diff options
author | Yujun Zhang <zhang.yujunz@zte.com.cn> | 2016-12-30 14:08:15 +0800 |
---|---|---|
committer | Yujun Zhang <zhang.yujunz@zte.com.cn> | 2017-01-03 18:16:12 +0800 |
commit | d8c05b528b5a75377848d130286bc997da06a792 (patch) | |
tree | d88f44e3a0d87ffdf64ba20ecf0417e01f63427f /qtip/runner/__init__.py | |
parent | decad5f7fdb212c4f78fc31f00e591eaba104450 (diff) |
Implement plan, qpi and metric constructors
- separate runner from `plan` and move `plan` to `loader`
- rename `algorithm` to `formula`
- use `numpy` for formulas
- update sample qpi and metrics
Change-Id: I3131ca79907376f2de31d6cb920bd7d0230664a6
Signed-off-by: Yujun Zhang <zhang.yujunz@zte.com.cn>
Diffstat (limited to 'qtip/runner/__init__.py')
-rw-r--r-- | qtip/runner/__init__.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/qtip/runner/__init__.py b/qtip/runner/__init__.py index e69de29b..eab81156 100644 --- a/qtip/runner/__init__.py +++ b/qtip/runner/__init__.py @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 2016 ZTE Corp and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +from qtip.base.constant import PkgName, PropName +from qtip.base.error import NotFound +from qtip.collector.stdout import StdoutCollector +from qtip.driver.random import RandomDriver +from qtip.reporter.console import ConsoleReporter + + +class Runner(object): + def __init__(self, spec, config=None): + if config is None: + config = spec[PropName.CONFIG] + + driver_name = config[PropName.DRIVER] + collector_name = config[PropName.COLLECTOR] + reporter_name = config[PropName.REPORTER] + + # TODO(yujunz) dynamically load modules by name + + if driver_name == 'random': + self.driver = RandomDriver() + else: + raise NotFound(driver_name, package=PkgName.DRIVER) + + if collector_name == 'stdout': + self.collector = StdoutCollector() + else: + raise NotFound(collector_name, + package=PkgName.COLLECTOR) + + if reporter_name == 'console': + self.reporter = ConsoleReporter() + else: + raise NotFound(reporter_name, + package=PkgName.REPORTER) |