def __init__(self, data_block, fmt, sections=None):
self.data_block = data_block<EOL>self.fmt = fmt<EOL>self.sections = sections if sections is not None else _extract_sections(data_block)<EOL>
Section Data Wrapper

        data_block is np.array-like with the following columns:
            [X, Y, Z, R, TYPE, ID, P]
            X(float): x-coordinate
            Y(float): y-coordinate
            Z(float): z-coordinate
            R(float): radius
            TYPE(integer): one of the types described by POINT_TYPE
            ID(integer): unique integer given to each point, the `ROOT_ID` is -1
            P(integer): the ID of the parent

        Args:
            data_block: as defined above
            fmt: File format designation, eg: SWC
            sections: Already extracted sections, otherwise data_block will be used

        Notes:
            - there is no ordering constraint: a child can reference a parent ID that comes
              later in the block
            - there is no requirement that the IDs are dense
            - there is no upper bound on the number of rows with the same 'P'arent: in other
              words, multifurcations are allowed