To "copy" a generator, you can use itertools.tee:

http://docs.python.org/library/itertools.html#itertools.tee

On Fri, Sep 9, 2011 at 3:35 AM, mdb <[email protected]> wrote:
> In a Leo script I  find a portion of my outline and create a generator
>
> pa= p.self_and_subtree()
>
> If I next print the tree as so
>
>   for px in pa:
>        pindent= '-- '*px.level()
>        print ' %s  %s'  % (pindent, px.h)
>
> I can not then print the headline of the top node
>
> print 'Headline of Top Node in Subtree: \n    %s '  %
> iter(pa).next().h
>
> because I have iterated  through the sequence .  I can print the
> headline if I don't run the for loop above. How can I most easily do
> both
>
> I tried to create a copy.copy to the second step but the error is
>
>  line 92: def __newobj__(cls, *args):
> * line 93:     return cls.__new__(cls, *args)
>  line 94:
>  line 95: def _slotnames(cls):
> exception executing script
> TypeError: object.__new__(generator) is not safe, use
> generator.__new__()
>
> I see from messages on this listserv from 2009 that copy has been
> removed from generators
> but I don't understand the alternatives.  Any help with a cleaner way
> to code my steps or the workaround is most appreciated.  I think I
> only need to 'refresh' and get back to the 'top' of generator.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "leo-editor" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/leo-editor?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/leo-editor?hl=en.

Reply via email to