def load_handler(self, fqcn): """ Load Handler class named fqcn """ # Load class cls = load_class_from_name(fqcn) # Check if cls is subclass of Handler if cls == Handler or not issubclass(cls, Handler): raise TypeError("%s is not a valid Handler" % fqcn) # Log self.log.debug("Loaded Handler: %s", fqcn) return cls
def load_collector(self, fqcn): """ Load Collector class named fqcn """ # Load class cls = load_class_from_name(fqcn) # Check if cls is subclass of Collector if cls == Collector or not issubclass(cls, Collector): raise TypeError("%s is not a valid Collector" % fqcn) # Log self.log.debug("Loaded Collector: %s", fqcn) return cls
def load_dynamic_class(fqn, subclass): """ Dynamically load fqn class and verify it's a subclass of subclass """ if not isinstance(fqn, basestring): return fqn cls = load_class_from_name(fqn) if cls == subclass or not issubclass(cls, subclass): raise TypeError("%s is not a valid %s" % (fqn, subclass.__name__)) return cls
def load_dynamic_class(fqn, subclass): """ Dynamically load fqn class and verify it's a subclass of `subclass` """ if not isinstance(fqn, str): return fqn cls = load_class_from_name(fqn) # print( "class:", cls, "... subclass:", subclass) # print( "isSubclass:", issubclass(cls, subclass)) # print( cls.__bases__ ) if cls == subclass or not issubclass(cls, subclass): raise TypeError("%s is not a valid %s" % (fqn, subclass.__name__)) return cls