def __init__(self, subdata_length, bin_type, name='none', shape=None, chunk_height=256):
        """subdata_length: int: the length for the underlying numpy objects.
        bin_type: str: the binary data type, like uint8
        destination: numpy array class (not instance): destination object to be used by other MCEdit objects as 'chunk.Blocks', or 'chunk.Data'
                     If a subchunk does not exists, the corresponding 'destination' aera is filled with zeros
                     The 'destination is initialized filled and shaped here.
        name: str: the interna name used mainly for debug display
        shape: tuple: the subchunk array shape, unused
        """
        self.name = name
        self.subdata_length = subdata_length
        self.bin_type = bin_type
        # the first two argument for the shape always are 16
        if shape is None:
            self.shape = (16, 16, subdata_length / (16 * 16))
        else:
            self.shape = shape
        self.destination = numpy.zeros(subdata_length * (chunk_height / 16), bin_type)
        self.destination.shape = (self.shape[0], self.shape[1], chunk_height)
        self.subchunks = []  # Store here the valid subchunks as ints
        self.binary_data = [None] * 16  # Has to be a numpy arrays. This list is indexed using the subchunks content.
subdata_length: int: the length for the underlying numpy objects.
        bin_type: str: the binary data type, like uint8
        destination: numpy array class (not instance): destination object to be used by other MCEdit objects as 'chunk.Blocks', or 'chunk.Data'
                     If a subchunk does not exists, the corresponding 'destination' aera is filled with zeros
                     The 'destination is initialized filled and shaped here.
        name: str: the interna name used mainly for debug display
        shape: tuple: the subchunk array shape, unused
        
pymclevel/leveldbpocket.py