def METHOD_NAME(geo_type: str, geo_value: str, signal_source: str, signal_signal: str, current_time: int, basis_time: int, rows: Iterable[Tuple[int, float]]) -> Trend:
    t = Trend(geo_type, geo_value, signal_source, signal_signal, date=current_time, basis_date=basis_time)
    # find all needed rows
    for time, value in rows:
        if time == current_time:
            t.value = value
        if time == basis_time:
            t.basis_value = value
        if t.min_value is None or t.min_value > value:
            t.min_date = time
            t.min_value = value
        if t.max_value is None or t.max_value < value:
            t.max_date = time
            t.max_value = value
    if t.value is None or t.min_value is None:
        # cannot compute trend if current time is not found
        return t
    t.basis_trend = compute_trend_class(compute_trend_value(t.value, t.basis_value, t.min_value)) if t.basis_value else TrendEnum.unknown
    t.min_trend = compute_trend_class(compute_trend_value(t.value, t.min_value, t.min_value))
    t.max_trend = compute_trend_class(compute_trend_value(t.value, t.max_value, t.min_value)) if t.max_value else TrendEnum.unknown
    return t