# Path: Peach/generator.py
# class Generator(object):
# class SimpleGenerator(Generator):
# class GeneratorCompleted(StopIteration):
#     def __init__(self):
#     def identity(self):
#     def __iter__(self):
#     def next(self):
#     def getValue(self):
#     def getRawValue(self):
#     def getGroup(self):
#     def setGroup(self, group):
#     def getTransformer(self):
#     def setTransformer(self, trans):
#     def reset(self):
#     def getName(self):
#     def setName(self, name):
#     def __init__(self, group=None):
#     def next(self):
#     def getRawValue(self):
#     def reset(self):


import traceback
import inspect, pyclbr, random
from Peach import generator

    def next(self):
        """
        Iterate all Generators to next value.

        From Python docs on next():

        I{The intention of the protocol is that once an iterator's next() method
        raises StopIteration, it will continue to do so on subsequent calls.
        Implementations that do not obey this property are deemed broken. (This
        constraint was added in Python 2.3; in Python 2.2, various iterators are
        broken according to this rule.)}

        For Groups, please use the GroupCompleted exception instead of
        StopIteration (its a subclass).
        """

        # We will continue until all of our generators are
        # returning GeneratorCompleted exceptions

        if len(self._generators) < 1:
            print("Identity of Group: %s" % self._identity)
            raise Exception("Error: Group does not contain any generators.  This is probably not a good thing.")

        done = 1

        for i in range(len(self._generators)):
            try:
                self._generators[i].next()
                done = 0

# Path: Peach/generator.py
# class Generator(object):
# class SimpleGenerator(Generator):
# class GeneratorCompleted(StopIteration):
#     def __init__(self):
#     def identity(self):
#     def __iter__(self):
#     def next(self):
#     def getValue(self):
#     def getRawValue(self):
#     def getGroup(self):
#     def setGroup(self, group):
#     def getTransformer(self):
#     def setTransformer(self, trans):
#     def reset(self):
#     def getName(self):
#     def setName(self, name):
#     def __init__(self, group=None):
#     def next(self):
#     def getRawValue(self):
#     def reset(self):


# Path: Peach/group.py
import traceback
import inspect, pyclbr, random
from Peach import generator


    def next(self):
        """
        Iterate all Generators to next value.

        From Python docs on next():

        I{The intention of the protocol is that once an iterator's next() method
        raises StopIteration, it will continue to do so on subsequent calls.
        Implementations that do not obey this property are deemed broken. (This
        constraint was added in Python 2.3; in Python 2.2, various iterators are
        broken according to this rule.)}

        For Groups, please use the GroupCompleted exception instead of
        StopIteration (its a subclass).
        """

        # We will continue until all of our generators are
        # returning GeneratorCompleted exceptions

        if len(self._generators) < 1:
            print("Identity of Group: %s" % self._identity)
            raise Exception("Error: Group does not contain any generators.  This is probably not a good thing.")

        done = 1

        for i in range(len(self._generators)):
            try:
                self._generators[i].next()
                done = 0

            except generator.GeneratorCompleted: