docs: def read_adjacency_matrix(file_path, separator, numbering="matlab"):
      """
      Reads an edge list in csv format and returns the adjacency matrix in SciPy Sparse COOrdinate format.
  
      Inputs:  - file_path: The path where the adjacency matrix is stored.
               - separator: The delimiter among values (e.g. ",", "\t", " ")
               - numbering: Array numbering style: * "matlab"
                                                   * "c"
  
      Outputs: - adjacency_matrix: The adjacency matrix in SciPy Sparse COOrdinate format.
      """
      # Open file
      file_row_generator = get_file_row_generator(file_path, separator)
  
      file_row = next(file_row_generator)
      number_of_rows = file_row[1]
      number_of_columns = file_row[3]
      directed = file_row[7]
      if directed == "True":
          directed = True
      elif directed == "False":
          directed = False
      else:
          print("Invalid metadata.")
          raise RuntimeError
  
      # Initialize lists for row and column sparse matrix arguments
      row = list()
      col = list()
      data = list()
      append_row = row.append
      append_col = col.append
      append_data = data.append
  
      # Read all file rows
      for file_row in file_row_generator:
          source_node = np.int64(file_row[0])
          target_node = np.int64(file_row[1])
          edge_weight = np.float64(file_row[2])
  
          # Add edge
          append_row(source_node)
          append_col(target_node)
          append_data(edge_weight)
  
          # Since this is an undirected network also add the reciprocal edge
          if not directed:
              if source_node != target_node:
                  append_row(target_node)
                  append_col(source_node)
                  append_data(edge_weight)
  
      row = np.array(row, dtype=np.int64)
      col = np.array(col, dtype=np.int64)
      data = np.array(data, dtype=np.float64)
  
      if numbering == "matlab":
          row -= 1
          col -= 1
      elif numbering == "c":
          pass
      else:
          print("Invalid numbering style.")
          raise RuntimeError
  
      # Form sparse adjacency matrix
      adjacency_matrix = spsp.coo_matrix((data, (row, col)), shape=(number_of_rows, number_of_columns))
  
      return adjacency_matrix