def first_not_none(itr):
    """
    returns the first non-none result from an iterable, similar to any() but return value not true/false
    """
    for x in itr:
        if x:
            return x
    return None