def get_swarm_informations_from_file(filename,
                                      informations_grep,
                                      information_map=float,
                                      **kargs):
     _, informations = SwarmParser.read_files_and_measures(
         [('', filename)],
         informations_grep=informations_grep,
         information_map=information_map,
         **kargs)
     informations = informations[''][-1]  # there is no window here!
     # let's get the longest information sequence
     max_information_length = float("-inf")
     max_information_key = None
     for information_grep in informations:
         if len(informations[information_grep]) > max_information_length:
             max_information_length = len(informations[information_grep])
             max_information_key = information_grep
     iterations = [
         iteration for (iteration, _) in informations[max_information_key]
     ]
     iterations.sort()
     df = pd.DataFrame({'x': iterations})
     for information_grep in informations:
         dict_information = dict(informations[information_grep])
         df[information_grep] = [
             dict_information[i] if i in dict_information else float("nan")
             for i in iterations
         ]
     return df
 def get_graph_matrices_from_files(filenames,
                                   influence_graph_grep='ig\:#',
                                   **kargs):
     pos_callback = Callback.to_symmetric
     graph_matrices, _ = SwarmParser.read_files_and_measures(
         filenames,
         influence_graph_grep=influence_graph_grep,
         pos_callback=pos_callback,
         **kargs)
     return graph_matrices