def __init__(self, name_driver_entity, **kwargs): if not isinstance(name_driver_entity, (str, unicode, Entity, Driver)): raise TypeError("First argument must be a string, " "Driver, or Entity.") if isinstance(name_driver_entity, Driver): return if isinstance(name_driver_entity, Entity): self.entity = name_driver_entity self._choose_best_driver() return elif isinstance(name_driver_entity, (str, unicode)): try: existing = clusto.get_by_name(name_driver_entity) except LookupError: existing = None if existing: raise NameException("Driver with the name %s already exists." % (name_driver_entity)) self.entity = Entity(name_driver_entity, driver=self._driver_name, clustotype=self._clusto_type) else: raise TypeError("Could not create driver from given arguments.") for key, val in self._properties.iteritems(): if key in kwargs: val = kwargs[key] if val is None: continue setattr(self, key, val)