def __init__(self, deviceClass): '''Args: deviceClass: a DeviceClass instance that contains components ''' super(ComponentJS, self).__init__(deviceClass.zenpack) self.deviceClass = deviceClass self.zenpack = self.deviceClass.zenpack self.zPythonClass = self.deviceClass.zPythonClass self.source_template = 'component.js.tmpl' self.dest_file = "%s/resources/js/%s.js" % (zpDir(self.zenpack), self.name)
def __init__(self, zenpack): '''Args: zenpack: ZenPack Class instance ''' super(Configure, self).__init__(zenpack) self.source_template = 'configure.zcml.tmpl' self.dest_file = "%s/%s" % (zpDir(zenpack), 'configure.zcml') self.zenpack = zenpack self.components = zenpack.components self.deviceClasses = zenpack.deviceClasses self.componentJSs = zenpack.componentJSs
def __init__(self, zenpack): self.zenpack = zenpack super(UtilsTemplate, self).__init__(zenpack) self.source_template = 'utils.tmpl' self.dest_file = "%s/%s" % (zpDir(zenpack), 'utils.py')
def __init__(self, ZenPack): super(ZenPackUI, self).__init__(ZenPack) self.zenpack = ZenPack self.source_template = 'zenpackjs.tmpl' self.dest_file = "%s/resources/js/%s.js" % (zpDir(self.zenpack), self.zenpack.id)
def __init__(self, zenpack): self.zenpack = zenpack self.devChildren = None super(RootInit, self).__init__(zenpack) self.source_template = 'root_init.tmpl' self.dest_file = "%s/%s" % (zpDir(zenpack), '__init__.py')
def __init__(self, zenpack, name, klasses=None, imports=None, names=None, meta_type=None, device=False, namespace=None, panelSort='name', panelSortDirection='asc', properties=None, componentTypes=None ): '''Args: name: Component Name names: Plural form of the Component Name [None] zenpack: ZenPack class instance klasses: list of base classes for this component [None] imports: list of imports for this component [None] meta_type: the component meta_type device: Device Component is True or False [False] namespace: python search namespace [None] This will default to the zenpack id panelSort: the default property to sort by panelSortDirection: Direction to sort either 'asc' or 'dsc' properties: an array of dictionaries of property information which will create property objects componentTypes: an array of dictionaries of component information which will create componentType objects ''' super(Component, self).__init__(zenpack) self.source_template = 'component.tmpl' self.name = name.split('.')[-1] self.names = names self.klass = self.name self.zenpack = zenpack self.id = KlassExpand(self.zenpack, name) self.device = device self.panelSort = panelSort self.panelSortDirection = panelSortDirection if not imports: if not device: self.imports = Defaults().component_imports else: self.imports = Defaults().device_imports elif isinstance(imports, basestring): self.imports = [imports] else: # Copy the input array, don't hang on to a reference. self.imports = list(imports) if namespace: self.namespace = namespace else: self.namespace = self.zenpack.namespace self.shortklass = self.id.split('.')[-1] self.relname = self.shortklass.lower() self.relnames = plural(self.relname) self.unique_name = meta_type self.dest_file = "%s/%s.py" % (zpDir(zenpack), self.unique_name) if not klasses: if not device: self.klasses = Defaults().component_classes else: self.klasses = Defaults().device_classes # Copy the input array, don't hang on to a reference. elif isinstance(klasses, basestring): self.klasses = [klasses] else: self.klasses = list(klasses) self.properties = {} self.components = {} self.zenpack.registerComponent(self) Component.components[self.id] = self #Dict loading if properties: for p in properties: self.addProperty(**p) #Dict loading if componentTypes: for component in componentTypes: self.addComponentType(**component) self.updateComponents = {}