Common pitfalls - acroucher/PyTOUGH GitHub Wiki
Deleting generators
Deleting selected generators from a t2data
object has to be done a little carefully. If you try to loop over the generator list and delete the generators you don't want, like this:
dat = t2data('mydata.dat')
# this code won't work:
for gen in dat.generatorlist:
if gen.name.startswith('r'):
dat.delete_generator((gen.block, gen.name))
it won't work. The reason is that the delete_generator()
method is altering the list you are iterating over, which confuses the looping process.
The solution is to first make a separate list of the generators you want to delete, and iterate over that instead of the t2data
generator list, e.g.:
del_gens = [(gen.block,gen.name) for gen in dat.generatorlist if gen.name.startswith('r')]
for g in del_gens: dat.delete_generator(g)