@staticmethod
def _first_not_none(seq, supplier_func):
    """Applies supplier_func to each element in seq, returns 1st not None

        :param seq: Sequence of object
        :type seq: iterable
        :param supplier_func: Function that extracts the desired value from
            elements in seq
        :type supplier_func: function
        """
    for i in seq:
        obj = supplier_func(i)
        if obj is not None:
            return obj
    return None
