It is complaining that you tried to access an element that doesn't exist in an list.
In the stack trace it will show you exactly where is the problem, but - unless it is an internal pygame call - the only points that it can be are here:
self.img = pygame.image.load(self.ani[self.ani_pos])
self.img = pygame.image.load(self.ani)
You can either use pdb to debug it or print those lists to check what is inside and how many elements they have.