Indeed that is the issue. If I just remove the line that adds to the
Mapping (M[cluster] = es), then the loop finishes correctly. Thank you
so much for your help...hope I didn't cause any heart attacks for such
a trivial thing!

Kenny

On Jun 16, 10:16 am, Christopher Lee <l...@chem.ucla.edu> wrote:
> Hi Kenny,
> OK, I see the problem.  Your Mapping is given the AnnotationDB events  
> as its target.  You are looping over events.itervalues(), and in the  
> middle of that loop you are adding to the Mapping. events.sliceDB is a  
> SQLTable, I believe.  Iteration over that SQLTable uses a cursor.  Any  
> operation that interacts with that SQLTable uses the same cursor, and  
> will thus interfere with continuing the iteration of the SQLTable.
>
> This is analogous to deleting objects from a dictionary d within an  
> iterator loop (for v in d.itervalues():); the results are undefined  
> because the statements inside the loop interfere with the iterator  
> that is feeding the loop.  You can't use an iterator in this case; you  
> have to capture all of the values in a list before beginning to run  
> the statements inside the loop.  I.e. you can't use itervalues(); you  
> have to use values().
>
> -- Chris
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pygr-dev" group.
To post to this group, send email to pygr-dev@googlegroups.com
To unsubscribe from this group, send email to 
pygr-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/pygr-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to