def to_timeout(str_in):
    """
    Tries to coerce provided argument `str_in` to a valid timeout float
    value.

    Args:
        str_in (string): String to coerce to timeout.

    Returns:
        (float) or (None): Floating point number - timeout value if provided
                           `str_in` is a valid timeout string, None otherwise.
    """

    try:
        timeout = float(str_in)
        if timeout < 0:
            return None
    except ValueError:
        return None
    return timeout