def next(self, iterateAbove=-1, bindingsLen=-1):        
        # iterate hyperspace bindings
        if not self.hyperspaceBindings:
            raise StopIteration
        hsBsToReset = []
        if bindingsLen == -1: 
            bindingsLen = len(self.hyperspaceBindings)
        for iHsB in range(bindingsLen - 1, iterateAbove, -1):
            hsB = self.hyperspaceBindings[iHsB]
            try:
                hsB.next()
                for hsB in hsBsToReset:
                    hsB.reset()
                return # hsB has another value to return
            except __HOLE__:
                hsBsToReset.insert(0, hsB)  # reset after outer iterator advanced
        raise StopIteration # no more outermost loop of iteration
dataset/ETHPy150Open Arelle/Arelle/arelle/plugin/sphinx/SphinxContext.py/HyperspaceBindings.next