nodes: 0, module; 1, function_definition; 2, function_name:load_file; 3, parameters; 4, block; 5, identifier:self; 6, identifier:filepath; 7, expression_statement; 8, expression_statement; 9, expression_statement; 10, expression_statement; 11, with_statement; 12, return_statement; 13, comment:"""
          This function opens any type of a readable file and decompose
          the file object into a list, for each line, of lists containing
          splitted line strings using space as a spacer.
  
          Parameters
          ----------
          filepath : :class:`str`
              The full path or a relative path to any type of file.
  
          Returns
          -------
          :class:`dict`
              Returns a dictionary containing the molecular information
              extracted from the input files. This information will
              vary with file type and information stored in it.
              The data is sorted into lists that contain one feature
              for example key atom_id: [atom_id_1, atom_id_2]
              Over the process of analysis this dictionary will be updated
              with new data.
          """; 14, assignment; 15, assignment; 16, assignment; 17, with_clause; 18, block; 19, parenthesized_expression; 20, attribute; 21, identifier:filepath; 22, pattern_list; 23, call; 24, pattern_list; 25, call; 26, with_item; 27, expression_statement; 28, call; 29, identifier:self; 30, identifier:file_path; 31, identifier:_; 32, attribute; 33, attribute; 34, argument_list; 35, identifier:_; 36, attribute; 37, attribute; 38, argument_list; 39, as_pattern; 40, assignment; 41, subscript; 42, argument_list; 43, identifier:self; 44, identifier:file_type; 45, attribute; 46, identifier:splitext; 47, identifier:filepath; 48, identifier:self; 49, identifier:file_name; 50, attribute; 51, identifier:split; 52, identifier:filepath; 53, call; 54, as_pattern_target; 55, attribute; 56, call; 57, attribute; 58, attribute; 59, identifier:os; 60, identifier:path; 61, identifier:os; 62, identifier:path; 63, identifier:open; 64, argument_list; 65, identifier:ffile; 66, identifier:self; 67, identifier:file_content; 68, attribute; 69, argument_list; 70, identifier:self; 71, identifier:_load_funcs; 72, identifier:self; 73, identifier:file_type; 74, identifier:filepath; 75, identifier:ffile; 76, identifier:readlines
code: def load_file(self, filepath):
          """
          This function opens any type of a readable file and decompose
          the file object into a list, for each line, of lists containing
          splitted line strings using space as a spacer.
  
          Parameters
          ----------
          filepath : :class:`str`
              The full path or a relative path to any type of file.
  
          Returns
          -------
          :class:`dict`
              Returns a dictionary containing the molecular information
              extracted from the input files. This information will
              vary with file type and information stored in it.
              The data is sorted into lists that contain one feature
              for example key atom_id: [atom_id_1, atom_id_2]
              Over the process of analysis this dictionary will be updated
              with new data.
          """
          self.file_path = filepath
          _, self.file_type = os.path.splitext(filepath)
          _, self.file_name = os.path.split(filepath)
          with open(filepath) as ffile:
              self.file_content = ffile.readlines()
  
          return (self._load_funcs[self.file_type]())