docs: def get_ancestor_object_by_type(self, obj_type):
          """
          :param obj_type: requested ancestor type.
          :return: the ancestor of the object who's type is obj_type if exists else None.
          """
  
          if self.type.lower() == obj_type.lower():
              return self
          else:
              if not self.parent:
                  return None
              return self.parent.get_ancestor_object_by_type(obj_type)