def __init__(self, parent, description, full_slave=True, name=None): self.parent = parent self.description = description self.load_time = time.time() self.name = name or description['type'] self.pause_time = 0 super(Element, self).__init__() elements = description.get('elements', None) if elements: # This has to be local to avoid an infinite loop... # pylint: disable=R0401 from echomesh.element import Load # pylint: enable=R0401 self.elements = Load.make(self, elements) if full_slave: self.add_slave(*self.elements) else: self.add_pause_only_slave(*self.elements) else: self.elements = [] self.element_table = dict((e.name, e) for e in reversed(self.elements)) self.variables = {} for key in description.keys(): if len(key) > 2 and ((key == 'vars') or 'variables'.startswith(key)): items = list(description[key].iteritems()) self.variables = dict((k, Variable.variable(self, v)) for k, v in items) break
def __init__(self, parent, description): super(Mapper, self).__init__(parent, description) self.target = description.get('target', Name.NAME) self.source = description.get('source') self.mapping = description.get('mapping', {}) handlers = description.get('handlers', []) self.handlers = Load.make(self, handlers) for key, element in self.mapping.iteritems(): self.mapping[key] = Load.make_one(self, element)