def rule_decorator(object): if isclass(object): clazz = object def init(self, *args, **kwargs): scope.SimpleRule.__init__(self) if name is None: if hasattr(clazz, '__name__'): self.name = clazz.__name__ else: self.name = "JSR223-Jython" else: self.name = name #set_uid_prefix(self) self.log = logging.getLogger(LOG_PREFIX + "." + self.name) clazz.__init__(self, *args, **kwargs) if description is not None: self.description = description elif self.description is None and clazz.__doc__: self.description = clazz.__doc__ if hasattr(self, "getEventTriggers"): self.triggers = log_traceback(self.getEventTriggers)() if tags is not None: self.tags = set(tags) subclass = type(clazz.__name__, (clazz, scope.SimpleRule), dict(__init__=init)) subclass.execute = log_traceback(clazz.execute) return addRule(subclass()) else: function = object newRule = _FunctionRule(function, function.triggers, name=name, description=description, tags=tags) get_automation_manager().addRule(newRule) function.triggers = None return function
def __init__(self, callback, triggers, name=None, description=None, tags=None): self.triggers = triggers if name is None: if hasattr(callback, '__name__'): name = callback.__name__ else: name = "JSR223-Jython" self.name = name callback.log = logging.getLogger("{}.{}".format(LOG_PREFIX, name)) self.callback = log_traceback(callback) if description is not None: self.description = description if tags is not None: self.tags = set(tags)
def rule_decorator(new_rule): if isclass(new_rule): class_ = new_rule def init(self, *args, **kwargs): SimpleRule.__init__(self) if name is None: if hasattr(class_, '__name__'): self.name = class_.__name__ else: self.name = "JSR223-Jython" else: self.name = name # set_uid_prefix(self) self.log = logging.getLogger(u"{}.{}".format( LOG_PREFIX, self.name)) class_.__init__(self, *args, **kwargs) if description is not None: self.description = description elif self.description is None and class_.__doc__: self.description = class_.__doc__ if hasattr(self, "getEventTriggers"): self.triggers = log_traceback(self.getEventTriggers)() if tags is not None: self.tags = set(tags) subclass = type(class_.__name__, (class_, SimpleRule), dict(__init__=init)) subclass.execute = log_traceback(class_.execute) new_rule = addRule(subclass()) subclass.UID = new_rule.UID return subclass else: callable_obj = new_rule if callable_obj.triggers.count(None) == 0: simple_rule = _FunctionRule(callable_obj, callable_obj.triggers, name=name, description=description, tags=tags) new_rule = addRule(simple_rule) callable_obj.UID = new_rule.UID callable_obj.triggers = None return callable_obj else: LOG.warn( u"rule: not creating rule '{}' due to an invalid trigger definition" .format(name)) return None
def init(self, *args, **kwargs): SimpleRule.__init__(self) if name is None: if hasattr(class_, '__name__'): self.name = class_.__name__ else: self.name = "JSR223-Jython" else: self.name = name # set_uid_prefix(self) self.log = getLogger(self.name) class_.__init__(self, *args, **kwargs) if description is not None: self.description = description elif self.description is None and class_.__doc__: self.description = class_.__doc__ if hasattr(self, "getEventTriggers"): self.triggers = log_traceback(self.getEventTriggers)() if tags is not None: self.tags = set(tags)
def init(self, *args, **kwargs): scope.SimpleRule.__init__(self) if name is None: if hasattr(clazz, '__name__'): self.name = clazz.__name__ else: self.name = "JSR223-Jython" else: self.name = name #set_uid_prefix(self) self.log = logging.getLogger("{}.{}".format(LOG_PREFIX, self.name)) clazz.__init__(self, *args, **kwargs) if description is not None: self.description = description elif self.description is None and clazz.__doc__: self.description = clazz.__doc__ if hasattr(self, "getEventTriggers"): self.triggers = log_traceback(self.getEventTriggers)() if tags is not None: self.tags = set(tags)