Allora, ho una funzione che restituisce un generatore:

codice:
read_sequences{
...
...
...
yield Sequence(name, sequence, qualities)
}
la funzione è richiamata dal main in questo modo:

codice:
reader = read_sequences(parametri vari)
quello che si vuole fare è iterare tutte le read di reader e per ognuna dividere a metà i 3 parametri name, sequence e qualities, salvando le due metà in due nuove stringhe. Quindi nel main dopo la funzione invocata ho messo:
codice:
                  for read in reader:
                                # split the name in two and add the number
                                half = len(read.name) /2
                                first.name = read.name[:half]
                                first.name += '/1'
                                second.name = read.name[half+1:]
                                second.name += '/2'
                                # split the read in two
                                half = len(read.sequence) /2
                                first.sequence = read.sequence[:half]
                                second.sequence = read.sequence[half+1:]
                                # split the quality in two
                                half = len(read.quality) /2
                                first.quality = read.quality[:half]
                                second.quality = read.quality[half+1:]
tuttavia mi da il seguente errore:
line 691, in main
first.name = read.name[:half]
TypeError: slice indices must be integers or None or have an __index__ method

Come mai? (premetto che ho incluso string se può servire)