oplus/epm/table_descriptor.py
def prepare_extensible(self):
        """
        This function finishes initialization, must be called once all field descriptors and tag have been filled.
        """
        # see if extensible and store cycle len
        for k in self._tags:
            if "extensible" in k:
                cycle_len = int(k.split(":")[1])
                break
        else:
            # not extensible
            return

        # find cycle start and prepare patterns
        cycle_start = None
        cycle_patterns = []
        for i, field_descriptor in enumerate(self._field_descriptors):
            # quit if finished
            if (cycle_start is not None) and (i >= (cycle_start + cycle_len)):
                break

            # set cycle start if not set yet
            if (cycle_start is None) and ("begin-extensible" in field_descriptor.tags):
                cycle_start = i

            # leave if cycle start not reached yet
            if cycle_start is None:
                continue

            # store pattern
            cycle_patterns.append(field_descriptor.ref.replace("1", r"(\d+)"))
        else:
            raise RuntimeError("cycle start not found")

        # detach unnecessary field descriptors
        self._field_descriptors = self._field_descriptors[:cycle_start + cycle_len]

        # store cycle info
        self.extensible_info = (cycle_start, cycle_len, tuple(cycle_patterns))

        # set field descriptor cycle_start index (for error messages while serialization)
        for i, fd in enumerate(self._field_descriptors[cycle_start:]):
            fd.set_extensible_info(cycle_start, cycle_len, cycle_patterns[i])
def prepare_extensible(self):
        """
        This function finishes initialization, must be called once all field descriptors and tag have been filled.
        """
        # see if extensible and store cycle len
        for k in self._tags:
            if "extensible" in k:
                cycle_len = int(k.split(":")[1])
                break
        else:
            # not extensible
            return

        # find cycle start and prepare patterns
        cycle_start = None
        cycle_patterns = []
        for i, field_descriptor in enumerate(self._field_descriptors):
            # quit if finished
            if (cycle_start is not None) and (i >= (cycle_start + cycle_len)):
                break

            # set cycle start if not set yet
            if (cycle_start is None) and ("begin-extensible" in field_descriptor.tags):
                cycle_start = i

            # leave if cycle start not reached yet
            if cycle_start is None:
                continue

            # store pattern
            cycle_patterns.append(field_descriptor.ref.replace("1", r"(\d+)"))
        else:
            raise RuntimeError("cycle start not found")

        # detach unnecessary field descriptors
        self._field_descriptors = self._field_descriptors[:cycle_start + cycle_len]

        # store cycle info
        self.extensible_info = (cycle_start, cycle_len, tuple(cycle_patterns))

        # set field descriptor cycle_start index (for error messages while serialization)
        for i, fd in enumerate(self._field_descriptors[cycle_start:]):
            fd.set_extensible_info(cycle_start, cycle_len, cycle_patterns[i])
def prepare_extensible ( self ) : # see if extensible and store cycle len for k in self . _tags : if "extensible" in k : cycle_len = int ( k . split ( ":" ) [ 1 ] ) break else : # not extensible return # find cycle start and prepare patterns cycle_start = None cycle_patterns = [ ] for i , field_descriptor in enumerate ( self . _field_descriptors ) : # quit if finished if ( cycle_start is not None ) and ( i >= ( cycle_start + cycle_len ) ) : break # set cycle start if not set yet if ( cycle_start is None ) and ( "begin-extensible" in field_descriptor . tags ) : cycle_start = i # leave if cycle start not reached yet if cycle_start is None : continue # store pattern cycle_patterns . append ( field_descriptor . ref . replace ( "1" , r"(\d+)" ) ) else : raise RuntimeError ( "cycle start not found" ) # detach unnecessary field descriptors self . _field_descriptors = self . _field_descriptors [ : cycle_start + cycle_len ] # store cycle info self . extensible_info = ( cycle_start , cycle_len , tuple ( cycle_patterns ) ) # set field descriptor cycle_start index (for error messages while serialization) for i , fd in enumerate ( self . _field_descriptors [ cycle_start : ] ) : fd . set_extensible_info ( cycle_start , cycle_len , cycle_patterns [ i ] )
This function finishes initialization, must be called once all field descriptors and tag have been filled.
This function finishes initialization must be called once all field descriptors and tag have been filled .