def __init__(self, cx, cz, world, data=None, create=False, world_version=None, chunk_version=None):
        """
        cx, cz: int: coordinates of the chunk.
        world: PocketLeveldbWorld object: instance of the world the chunk belongs too.
        data: list of str: terrain, entities and tile entities data. Defaults to 'None'.
            Unused, but kept for compatibility.
        create: bool: wether to create the chunk. Defaults to 'False'.
            Unused, but kept for compatibility.
        world_version: str: used to track if the 'world' is a pre 1.0 or 1.0+ PE one. Defaults to 'None'.

        Initialize the subchunbk containers.
        """
        self.world_version = world_version  # For info and tracking
        if chunk_version:
            self.chunk_version = chunk_version
        self.chunkPosition = (cx, cz)
        self.world = world
        self.subchunks = []
        self.subchunks_versions = {}

        possible_dtypes = [2 ** x for x in range(3, 8)]
        max_blocks_dtype = int(ceil(log(max([i for i,x in enumerate(pocketMaterials.idStr) if x]), 2)))
        max_blocks_dtype = next(possible_dtype for possible_dtype in possible_dtypes if possible_dtype >= max_blocks_dtype)
        max_data_dtype = int(ceil(log(max([x[1] for x in pocketMaterials.blocksByID.keys()]), 2)))
        max_data_dtype = next(possible_dtype for possible_dtype in possible_dtypes if possible_dtype >= max_data_dtype)

        self._Blocks = PE1PlusDataContainer(4096, 'uint'+str(max_blocks_dtype), name='Blocks', chunk_height=self.Height)
        self.Blocks = self._Blocks.destination
        self._Data = PE1PlusDataContainer(4096, 'uint'+str(max_data_dtype), name='Data')
        self.Data = self._Data.destination
        self._SkyLight = PE1PlusDataContainer(4096, 'uint8', name='SkyLight')
        self.SkyLight = self._SkyLight.destination
        self.SkyLight[:] = 15
        self._BlockLight = PE1PlusDataContainer(4096, 'uint8', name='BlockLight')
        self.BlockLight = self._BlockLight.destination

        self.TileEntities = nbt.TAG_List(list_type=nbt.TAG_COMPOUND)
        self.Entities = nbt.TAG_List(list_type=nbt.TAG_COMPOUND)

        self.Biomes = numpy.zeros((16, 16), 'uint8')
        self.data2d = None

        self._extra_blocks = PE1PlusDataContainer(4096, 'uint' + str(max_blocks_dtype), name='extra_blocks', chunk_height=self.Height)
        self.extra_blocks = self._extra_blocks.destination
        self._extra_blocks_data = PE1PlusDataContainer(4096, 'uint' + str(max_data_dtype), name='extra_blocks_data')
        self.extra_blocks_data = self._extra_blocks_data.destination

        cx, cz: int: coordinates of the chunk.
        world: PocketLeveldbWorld object: instance of the world the chunk belongs too.
        data: list of str: terrain, entities and tile entities data. Defaults to 'None'.
            Unused, but kept for compatibility.
        create: bool: wether to create the chunk. Defaults to 'False'.
            Unused, but kept for compatibility.
        world_version: str: used to track if the 'world' is a pre 1.0 or 1.0+ PE one. Defaults to 'None'.

        Initialize the subchunbk containers.
        
pymclevel/leveldbpocket.py