def test_DotDict(self): """Test DotDict class""" res = {u"zip": {u"code": u"14850"}} mdict = DotDict(res) mdict["zip.code"] = 14850 expect = {u"zip": {u"code": 14850}} self.assertEqual(expect, mdict) res = {"a": {"b": {"c": 10}, "d": 10}} mdict = DotDict(res) mdict["x.y.z"] = 10 expect = {"a": {"b": {"c": 10}, "d": 10}, "x": {"y": {"z": 10}}} self.assertEqual(expect, mdict) mdict["a.b.k.m"] = 10 expect = {"a": {"b": {"c": 10, "k": {"m": 10}}, "d": 10}, "x": {"y": {"z": 10}}} self.assertEqual(expect, mdict) expect = 10 result = mdict.get("a.b.k.m") self.assertEqual(expect, result) res = {"a": {"b": {"c": 10}, "d": [{"x": 1}, {"x": 2}]}} mdict = DotDict(res) expect = 1 result = mdict.get("a.d.x") self.assertEqual(expect, result) expect = None result = mdict.get("a.M.Z") self.assertEqual(expect, result) res = {"a": {"b": {"c": 1, "d": 2}}} mdict = DotDict(res) expect = {"a": {"b": {"c": 1}}} mdict.delete("a.b.d") self.assertEqual(expect, mdict)
def test_DotDict_list(self): """Test DotDict class""" res = {'a': [{'b': 1, 'c': 1}, {'c': 1}]} mdict = DotDict(res) expect = 1 result = mdict.get('a.b') self.assertEqual(expect, result) res = {'a': [{'c': 1}, {'b': 1, 'c': 1}]} mdict = DotDict(res) expect = 1 result = mdict.get('a.b') self.assertEqual(expect, result)
def test_DotDict_list(self): """Test DotDict class""" res = {"a": [{"b": 1, "c": 1}, {"c": 1}]} mdict = DotDict(res) expect = 1 result = mdict.get("a.b") self.assertEqual(expect, result) res = {"a": [{"c": 1}, {"b": 1, "c": 1}]} mdict = DotDict(res) expect = 1 result = mdict.get("a.b") self.assertEqual(expect, result)
def test_DotDict(self): """Test DotDict class""" res = {u'zip': {u'code': u'14850'}} mdict = DotDict(res) mdict['zip.code'] = 14850 expect = {u'zip': {u'code': 14850}} self.assertEqual(expect, mdict) res = {'a': {'b': {'c': 10}, 'd': 10}} mdict = DotDict(res) mdict['x.y.z'] = 10 expect = {'a': {'b': {'c': 10}, 'd': 10}, 'x': {'y': {'z': 10}}} self.assertEqual(expect, mdict) mdict['a.b.k.m'] = 10 expect = { 'a': { 'b': { 'c': 10, 'k': { 'm': 10 } }, 'd': 10 }, 'x': { 'y': { 'z': 10 } } } self.assertEqual(expect, mdict) expect = 10 result = mdict.get('a.b.k.m') self.assertEqual(expect, result) res = {'a': {'b': {'c': 10}, 'd': [{'x': 1}, {'x': 2}]}} mdict = DotDict(res) expect = 1 result = mdict.get('a.d.x') self.assertEqual(expect, result) expect = None result = mdict.get('a.M.Z') self.assertEqual(expect, result) res = {'a': {'b': {'c': 1, 'd': 2}}} mdict = DotDict(res) expect = {'a': {'b': {'c': 1}}} mdict.delete('a.b.d') self.assertEqual(expect, mdict)
def test_get(self): """test get method""" rec = DotDict(self.rec1) expect = [1, 2] result = rec.get('a.c') self.assertEqual(expect, result) self.assertEqual(expect, rec['a.c'])
def test_get(self): """test get method""" rec = DotDict(self.rec1) expect = [1, 2] result = rec.get("a.c") self.assertEqual(expect, result) self.assertEqual(expect, rec["a.c"])
class UfoJob(UfoJob, LogMixin): def __init__(self, profiling=False, schedfixed=False, deviceCPU=False): self._profiling = profiling self._schedfixed = schedfixed self._deviceCPU = deviceCPU self.pm = PluginManager() self.graph = TaskGraph() self.tasks = DotDict() def init_scheduler(self): if self._deviceCPU: self.logger.debug('run on cpu') self.resource = Ufo.Resources(device_type=Ufo.DeviceType.CPU) else: self.logger.debug('run on gpu') self.resource = Ufo.Resources(device_type=Ufo.DeviceType.GPU) if self._schedfixed: self.logger.debug('fixed Scheduler') self.sched = Ufo.FixedScheduler() else: self.logger.debug('normal Scheduler') self.sched = Ufo.Scheduler() self.sched.set_resources(self.resource) self.sched.set_property('enable_tracing', self._profiling) def run_t(self, n=1): self.init_scheduler() def timer_function(): self.sched.run(self.graph) tm = Timer(timer_function) t = tm.timeit(n) # print self.sched # print self.resource return t @property def profiling(self): return self._profiling @profiling.setter def profiling(self, value): self._profiling = value @property def schedfixed(self): return self._schedfixed @schedfixed.setter def schedfixed(self, value): self._schedfixed = value @property def deviceCPU(self): return self._deviceCPU @deviceCPU.setter def deviceCPU(self, value): self._deviceCPU = value def branch(self, *args): try: b = [self.tasks.get(n) for n in args] self.graph.connect_branch(b) except KeyError: sys.exit("task %s does not exists" % n) return b def add_copy_task(self, taskname): task = Ufo.CopyTask() self.tasks[taskname] = task def add_task(self, taskname, plugin=None, **kargs): if self.tasks.get('taskname'): print 'Warning: %s already exists' % taskname if plugin is None: plugin = taskname task = self.pm.get_task(plugin, **kargs) self.tasks[taskname] = task