def way_later(request, journey, asap_journey): """ to check if a journey is way later than the asap journey we check for each journey the difference between the requested datetime and the arrival datetime (the other way around for non clockwise) requested dt * |=============> asap |=============> journey ------------------------------- asap pseudo duration ------------------------------------------------------ journey pseudo duration """ requested_dt = request['datetime'] is_clockwise = request.get('clockwise', True) pseudo_asap_duration = get_pseudo_duration(asap_journey, requested_dt, is_clockwise) pseudo_journey_duration = get_pseudo_duration(journey, requested_dt, is_clockwise) max_value = pseudo_asap_duration * request['_night_bus_filter_max_factor'] + request['_night_bus_filter_base_factor'] return pseudo_journey_duration > max_value
def way_later(journey, asap_journey, original_request): """ to check if a journey is way later than the asap journey we check for each journey the difference between the requested datetime and the arrival datetime (the other way around for non clockwise) requested dt * |=============> asap |=============> journey ------------------------------- asap pseudo duration ------------------------------------------------------ journey pseudo duration """ requested_dt = original_request['datetime'] is_clockwise = original_request.get('clockwise', True) pseudo_asap_duration = get_pseudo_duration(asap_journey, requested_dt, is_clockwise) pseudo_journey_duration = get_pseudo_duration(journey, requested_dt, is_clockwise) max_factor = 3 #TODO get it in instance base_factor = 60*60 #TODO get it in instance, for the moment 1h max_value = pseudo_asap_duration * max_factor + base_factor return pseudo_journey_duration > max_value
def combinations_sorter(v): # Hoping to find We sort the solution by the sum of journeys' pseudo duration return np.sum( ( get_pseudo_duration(jrny, requested_dt, is_clockwise) for jrny in np.array(candidates_pool)[np.where(selection_matrix[v, :])] ) )
def way_later(request, journey1, journey2): """to check if a journey is way later than another journey First, this rule doesn't apply if journey1 has a strictly better mode than journey2. Then, we check for each journey the difference between the requested datetime and the arrival datetime (the other way around for non clockwise) requested dt * |=============> journey2 |=============> journey1 ------------------------------- journey2 pseudo duration ------------------------------------------------------ journey1 pseudo duration """ if _get_mode_weight(journey1) < _get_mode_weight(journey2): return False requested_dt = request['datetime'] is_clockwise = request.get('clockwise', True) pseudo_j2_duration = get_pseudo_duration(journey2, requested_dt, is_clockwise) pseudo_j1_duration = get_pseudo_duration(journey1, requested_dt, is_clockwise) max_value = pseudo_j2_duration * request[ '_night_bus_filter_max_factor'] + request[ '_night_bus_filter_base_factor'] return pseudo_j1_duration > max_value