old_contents: from collections import namedtuple 
  
  Sequence =  namedtuple("Sequence", "id comment sequence")
  
  def fasta_reader(fasta_path):
      """
      :param fasta_path: the path to the file to parse
      :type fasta_path: string
      :return: the list of sequences read from the file
      :rtype: list of Sequence 
      """
      sequences = []
      with open(fasta_path, 'r') as fasta_infile:
          id_ = ''
          comment = ''
          sequence = ''
          for line in fasta_infile:
              if line.startswith('>'):
                  # a new sequence begin
                  if id_ != '':
                      # a sequence was already parsed so add it to the list
                      sequences.append(Sequence(id_ , comment, sequence))
                      sequence = ''
                  header = line.split()
                  id_ = header[0]
                  comment = ' '.join(header[1:])
              else:
                  sequence += line.strip()
                  sequences.append(Sequence(id_ , comment, sequence))
      return sequences
  
  
  # The problem with this implementation is that we have to load all 
  # sequences in memory before to start to work with
  # it is better to return sequence one by one
  # and treat them as they are loaded.
   
new_contents: from collections import namedtuple 
  
  Sequence = namedtuple("Sequence", "id comment sequence")
  
  def fasta_reader(fasta_path):
      """
      :param fasta_path: the path to the file to parse
      :type fasta_path: string
      :return: the list of sequences read from the file
      :rtype: list of Sequence 
      """
      sequences = []
      with open(fasta_path, 'r') as fasta_infile:
          id_ = ''
          comment = ''
          sequence = ''
          for line in fasta_infile:
              if line.startswith('>'):
                  # a new sequence begin
                  if id_ != '':
                      # a sequence was already parsed so add it to the list
                      sequences.append(Sequence(id_, comment, sequence))
                      sequence = ''
                  header = line.split()
                  id_ = header[0]
                  comment = ' '.join(header[1:])
              else:
                  sequence += line.strip()
                  sequences.append(Sequence(id_, comment, sequence))
      return sequences
  
  
  # The problem with this implementation is that we have to load all 
  # sequences in memory before to start to work with
  # it is better to return sequence one by one
  # and treat them as they are loaded.
subject: fix space to be pep8 compliant