def __init__(self, labels, walk_to_target_duration, start_time_dep, end_time_dep):
self._node_profile_final_labels = labels<EOL>self.start_time_dep = start_time_dep<EOL>self.end_time_dep = end_time_dep<EOL>self.all_labels = [label for label in self._node_profile_final_labels if<EOL>(start_time_dep <= label.departure_time <= end_time_dep)]<EOL>after_label_candidates = [label for label in self._node_profile_final_labels if<EOL>(label.departure_time > self.end_time_dep)]<EOL>after_label_candidates.sort(key=lambda el: (el.arrival_time_target, el.n_boardings))<EOL>min_n_boardings_observed = float('<STR_LIT>')<EOL>after_labels = []<EOL>for candidate_after_label in after_label_candidates:<EOL><INDENT>if candidate_after_label.n_boardings < min_n_boardings_observed:<EOL><INDENT>after_labels.append(candidate_after_label)<EOL>min_n_boardings_observed = candidate_after_label.n_boardings<EOL><DEDENT><DEDENT>self.all_labels.extend(after_labels)<EOL>if len(after_labels) is <NUM_LIT:0>:<EOL><INDENT>self._labels_within_time_frame = self.all_labels<EOL><DEDENT>else:<EOL><INDENT>self._labels_within_time_frame = self.all_labels[:-len(after_labels)]<EOL><DEDENT>self._walk_to_target_duration = walk_to_target_duration<EOL>self._n_boardings_to_simple_time_analyzers = {}<EOL>self._transfers_on_fastest_paths_analyzer = self._get_transfers_on_fastest_path_analyzer()<EOL>
Initialize the data structures required by

Parameters
----------
node_profile: NodeProfileMultiObjective