I am facing some problems regarding a generator. I have a list of 1000 elements. I want to read single item one by one and do some operation. The operation is something like comparing with some specific value. If I able to find that value from the list I want to stop iteration and reset the yield again.
I looking for the funtionality how to reset __next__ pointer in generator. Also I have to make 100 object in runtime FN_SOVLS.
class FN_SOV1S:
    def __init__(self,elementlist,idxNo):
        self._elementlist = elementlist
        self._idxNo =idxNo
        setup()
        process()
    def setup(self):
        try:
            self.df = pd.read_excel(r'D:\OPCUA\Working_VF1.xls', sheet_name='Valve1S')
            for tag,col in self.readcmd():
                if col==4:
                    self.cmd = tag
                if col == 5:
                    self.openFB = tag
                if col == 6:
                    self.clsFB = tag
                if col == 7:
                    self.delaytime = tag
        except Exception as e:
            log_exception(e)
    def process(self):
        for tagname,tagvalue in self.searchValueBytag():
            if tagname == self.cmd:
                if tagvalue == 1:
                    sleep(self.delaytime)
                    gen.writegeneral.writenodevalue(self.openFB,1)
                    gen.writegeneral.writenodevalue(self.clsFB,0)
                else:
                    gen.writegeneral.writenodevalue(self.openFB, 0)
                    gen.writegeneral.writenodevalue(self.clsFB, 1)
    def searchValueBytag(self):
        n = 0
        while n < len(self._elementlist):
            tagname, tagvalue = self._elementlist[n]
            yield tagname, tagvalue
            n =+ 1
The condition is to reset Generator function is:
 for tagname,tagvalue in self.searchValueBytag():
            if tagname == self.cmd:
 
     
     
    