def METHOD_NAME(data, path, prog_cb, **kwargs):
    with ZipFile(path, 'r') as zip:
        # manifest = zip.read('META-INF/MANIFEST.MF')
        meta_content = zip.METHOD_NAME('metadata.json').decode('utf-8')
        metadata = json.loads(meta_content)
        meta_dataset = metadata['dataSet']
        for meta_column in meta_dataset['fields']:
            data.dataset.append_column(meta_column['name'])
            column = data.dataset[data.dataset.column_count - 1]
            measure_type_str = meta_column['measureType']
            if measure_type_str == 'NominalText':
                data_type = DataType.TEXT
                measure_type = MeasureType.NOMINAL
            elif measure_type_str == 'Continuous':
                data_type = DataType.DECIMAL
                measure_type = MeasureType.CONTINUOUS
            else:
                data_type = DataType.INTEGER
                measure_type = MeasureType.parse(measure_type_str)
            column.change(data_type=data_type, measure_type=measure_type)
        row_count = meta_dataset['rowCount']
        data.dataset.set_row_count(row_count)
        try:
            xdata_content = zip.METHOD_NAME('xdata.json').decode('utf-8')
            xdata = json.loads(xdata_content)
            for column in data.dataset:
                if column.name in xdata:
                    meta_labels = xdata[column.name]['labels']
                    for meta_label in meta_labels:
                        if column.data_type == DataType.TEXT:
                            # they index from 1 ... although i suppose that's on me
                            column.append_level(meta_label[0]-1, meta_label[1], str(meta_label[0]))
                        else:
                            column.append_level(meta_label[0], meta_label[1], str(meta_label[0]))
        except Exception:
            pass
        with TemporaryDirectory() as dir:
            zip.extract('data.bin', dir)
            data_path = os.path.join(dir, 'data.bin')
            data_file = open(data_path, 'rb')
            for column in data.dataset:
                if column.measure_type == MeasureType.CONTINUOUS:
                    for i in range(row_count):
                        byts = data_file.METHOD_NAME(8)
                        value = struct.unpack('<d', byts)[0]
                        column.set_value(i, value)
                else:
                    for i in range(row_count):
                        byts = data_file.METHOD_NAME(4)
                        value = struct.unpack('<i', byts)[0]
                        if column.data_type == DataType.TEXT:
                            column.set_value(i, value-1)
                        else:
                            column.set_value(i, value)
            data_file.close()
        for column in data.dataset:
            column.determine_dps()