File size: 25,191 Bytes
be5030f
1
{"version":3,"sources":["bin/arrow2csv.ts"],"names":[],"mappings":"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","file":"arrow2csv.js","sourcesContent":["#! /usr/bin/env node\n\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements.  See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership.  The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License.  You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied.  See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/* tslint:disable */\n\nimport * as fs from 'fs';\nimport * as stream from 'stream';\nimport { valueToString } from '../util/pretty';\nimport { Schema, RecordBatch, RecordBatchReader, AsyncByteQueue } from '../Arrow.node';\n\nconst padLeft = require('pad-left');\nconst bignumJSONParse = require('json-bignum').parse;\nconst argv = require(`command-line-args`)(cliOpts(), { partial: true });\nconst files = argv.help ? [] : [...(argv.file || []), ...(argv._unknown || [])].filter(Boolean);\n\nconst state = { ...argv, closed: false, maxColWidths: [10] };\n\ntype ToStringState = {\n    hr: string;\n    sep: string;\n    schema: any;\n    closed: boolean;\n    metadata: boolean;\n    maxColWidths: number[];\n};\n\n(async () => {\n\n    const sources = argv.help ? [] : [\n        ...files.map((file) => () => fs.createReadStream(file)),\n        ...(process.stdin.isTTY ? [] : [() => process.stdin])\n    ].filter(Boolean) as (() => NodeJS.ReadableStream)[];\n\n    let reader: RecordBatchReader | null;\n    let hasReaders = false;\n\n    for (const source of sources) {\n        if (state.closed) { break; }\n        for await (reader of recordBatchReaders(source)) {\n            hasReaders = true;\n            const transformToString = batchesToString(state, reader.schema);\n            await pipeTo(\n                reader.pipe(transformToString),\n                process.stdout, { end: false }\n            ).catch(() => state.closed = true); // Handle EPIPE errors\n        }\n        if (state.closed) { break; }\n    }\n\n    return hasReaders ? 0 : print_usage();\n})()\n.then((x) => +x || 0, (err) => {\n    if (err) {\n        console.error(`${err && err.stack || err}`);\n    }\n    return process.exitCode || 1;\n}).then((code) => process.exit(code));\n\nfunction pipeTo(source: NodeJS.ReadableStream, sink: NodeJS.WritableStream, opts?: { end: boolean }) {\n    return new Promise((resolve, reject) => {\n\n        source.on('end', onEnd).pipe(sink, opts).on('error', onErr);\n\n        function onEnd() { done(undefined, resolve); }\n        function onErr(err:any) { done(err, reject); }\n        function done(e: any, cb: (e?: any) => void) {\n            source.removeListener('end', onEnd);\n            sink.removeListener('error', onErr);\n            cb(e);\n        }\n    });\n}\n\nasync function *recordBatchReaders(createSourceStream: () => NodeJS.ReadableStream) {\n\n    let json = new AsyncByteQueue();\n    let stream = new AsyncByteQueue();\n    let source = createSourceStream();\n    let reader: RecordBatchReader | null = null;\n    let readers: AsyncIterable<RecordBatchReader> | null = null;\n    // tee the input source, just in case it's JSON\n    source.on('end', () => [stream, json].forEach((y) => y.close()))\n        .on('data', (x) => [stream, json].forEach((y) => y.write(x)))\n       .on('error', (e) => [stream, json].forEach((y) => y.abort(e)));\n\n    try {\n        for await (reader of RecordBatchReader.readAll(stream)) {\n            reader && (yield reader);\n        }\n        if (reader) return;\n    } catch (e) { readers = null; }\n\n    if (!readers) {\n        await json.closed;\n        if (source instanceof fs.ReadStream) { source.close(); }\n        // If the data in the `json` ByteQueue parses to JSON, then assume it's Arrow JSON from a file or stdin\n        try {\n            for await (reader of RecordBatchReader.readAll(bignumJSONParse(await json.toString()))) {\n                reader && (yield reader);\n            }\n        } catch (e) { readers = null; }\n    }\n}\n\nfunction batchesToString(state: ToStringState, schema: Schema) {\n\n    let rowId = 0;\n    let batchId = -1;\n    let maxColWidths = [10];\n    const { hr, sep } = state;\n\n    const header = ['row_id', ...schema.fields.map((f) => `${f}`)].map(valueToString);\n\n    state.maxColWidths = header.map((x, i) => Math.max(maxColWidths[i] || 0, x.length));\n\n    return new stream.Transform({\n        encoding: 'utf8',\n        writableObjectMode: true,\n        readableObjectMode: false,\n        final(cb: (error?: Error | null) => void) {\n            // if there were no batches, then print the Schema, and metadata\n            if (batchId === -1) {\n                hr && this.push(`${horizontalRule(state.maxColWidths, hr, sep)}\\n\\n`);\n                this.push(`${formatRow(header, maxColWidths, sep)}\\n`);\n                if (state.metadata && schema.metadata.size > 0) {\n                    this.push(`metadata:\\n${formatMetadata(schema.metadata)}\\n`);\n                }\n            }\n            hr && this.push(`${horizontalRule(state.maxColWidths, hr, sep)}\\n\\n`);\n            cb();\n        },\n        transform(batch: RecordBatch, _enc: string, cb: (error?: Error, data?: any) => void) {\n    \n            batch = !(state.schema && state.schema.length) ? batch : batch.select(...state.schema);\n    \n            if (state.closed) { return cb(undefined, null); }\n    \n            // Pass one to convert to strings and count max column widths\n            state.maxColWidths = measureColumnWidths(rowId, batch, header.map((x, i) => Math.max(maxColWidths[i] || 0, x.length)));\n    \n            // If this is the first batch in a stream, print a top horizontal rule, schema metadata, and \n            if (++batchId === 0) {\n                hr && this.push(`${horizontalRule(state.maxColWidths, hr, sep)}\\n`);\n                if (state.metadata && batch.schema.metadata.size > 0) {\n                    this.push(`metadata:\\n${formatMetadata(batch.schema.metadata)}\\n`);\n                    hr && this.push(`${horizontalRule(state.maxColWidths, hr, sep)}\\n`);\n                }\n                if (batch.length <= 0 || batch.numCols <= 0) {\n                    this.push(`${formatRow(header, maxColWidths = state.maxColWidths, sep)}\\n`);\n                }\n            }\n    \n            if (batch.length > 0 && batch.numCols > 0) {\n                // If any of the column widths changed, print the header again\n                if (rowId % 350 !== 0 && JSON.stringify(state.maxColWidths) !== JSON.stringify(maxColWidths)) {\n                    this.push(`${formatRow(header, state.maxColWidths, sep)}\\n`);\n                }\n                maxColWidths = state.maxColWidths;\n                for (const row of batch) {\n                    if (state.closed) { break; } else if (!row) { continue; }\n                    if (rowId++ % 350 === 0) {\n                        this.push(`${formatRow(header, maxColWidths, sep)}\\n`);\n                    }\n                    this.push(`${formatRow([rowId, ...row.toArray()].map(valueToString), maxColWidths, sep)}\\n`);\n                }\n            }\n            cb();\n        }\n    });\n}\n\nfunction horizontalRule(maxColWidths: number[], hr = '', sep = ' | ') {\n    return ` ${padLeft('', maxColWidths.reduce((x, y) => x + y, -2 + maxColWidths.length * sep.length), hr)}`;\n}\n\nfunction formatRow(row: string[] = [], maxColWidths: number[] = [], sep = ' | ') {\n    return `${row.map((x, j) => padLeft(x, maxColWidths[j])).join(sep)}`;\n}\n\nfunction formatMetadata(metadata: Map<string, string>) {\n\n    return [...metadata].map(([key, val]) =>\n        `  ${key}: ${formatMetadataValue(val)}`\n    ).join(',  \\n');\n\n    function formatMetadataValue(value: string = '') {\n        let parsed = value;\n        try {\n            parsed = JSON.stringify(JSON.parse(value), null, 2);\n        } catch (e) { parsed = value; }\n        return valueToString(parsed).split('\\n').join('\\n  ');\n    }\n}\n\nfunction measureColumnWidths(rowId: number, batch: RecordBatch, maxColWidths: number[] = []) {\n    let val: any, j = 0;\n    for (const row of batch) {\n        if (!row) { continue; }\n        maxColWidths[j = 0] = Math.max(maxColWidths[0] || 0, (`${rowId++}`).length);\n        for (val of row) {\n            if (val && typedArrayElementWidths.has(val.constructor) && (typeof val[Symbol.toPrimitive] !== 'function')) {\n                // If we're printing a column of TypedArrays, ensure the column is wide enough to accommodate\n                // the widest possible element for a given byte size, since JS omits leading zeroes. For example:\n                // 1 |  [1137743649,2170567488,244696391,2122556476]\n                // 2 |                                          null\n                // 3 |   [637174007,2142281880,961736230,2912449282]\n                // 4 |    [1035112265,21832886,412842672,2207710517]\n                // 5 |                                          null\n                // 6 |                                          null\n                // 7 |     [2755142991,4192423256,2994359,467878370]\n                const elementWidth = typedArrayElementWidths.get(val.constructor)!;\n    \n                maxColWidths[j + 1] = Math.max(maxColWidths[j + 1] || 0,\n                    2 + // brackets on each end\n                    (val.length - 1) + // commas between elements\n                    (val.length * elementWidth) // width of stringified 2^N-1\n                );\n            } else {\n                maxColWidths[j + 1] = Math.max(maxColWidths[j + 1] || 0, valueToString(val).length);\n            }\n            ++j;\n        }\n    }\n    return maxColWidths;\n}\n\n// Measure the stringified representation of 2^N-1 for each TypedArray variant\nconst typedArrayElementWidths = (() => {\n    const maxElementWidth = (ArrayType: any) => {\n        const octets = Array.from({ length: ArrayType.BYTES_PER_ELEMENT - 1 }, _ => 255);\n        return `${new ArrayType(new Uint8Array([...octets, 254]).buffer)[0]}`.length;\n    };\n    return new Map<any, number>([\n        [Int8Array, maxElementWidth(Int8Array)],\n        [Int16Array, maxElementWidth(Int16Array)],\n        [Int32Array, maxElementWidth(Int32Array)],\n        [Uint8Array, maxElementWidth(Uint8Array)],\n        [Uint16Array, maxElementWidth(Uint16Array)],\n        [Uint32Array, maxElementWidth(Uint32Array)],\n        [Float32Array, maxElementWidth(Float32Array)],\n        [Float64Array, maxElementWidth(Float64Array)],\n        [Uint8ClampedArray, maxElementWidth(Uint8ClampedArray)]\n    ])\n})();\n\nfunction cliOpts() {\n    return [\n        {\n            type: String,\n            name: 'schema', alias: 's',\n            optional: true, multiple: true,\n            typeLabel: '{underline columns}',\n            description: 'A space-delimited list of column names'\n        },\n        {\n            type: String,\n            name: 'file', alias: 'f',\n            optional: true, multiple: true,\n            description: 'The Arrow file to read'\n        },\n        {\n            type: String,\n            name: 'sep', optional: true, default: ' | ',\n            description: 'The column separator character (default: \" | \")'\n        },\n        {\n            type: String,\n            name: 'hr', optional: true, default: '',\n            description: 'The horizontal border character (default: \"\")'\n        },\n        {\n            type: Boolean,\n            name: 'metadata', alias: 'm',\n            optional: true, default: false,\n            description: 'Flag to print Schema metadata (default: false)'\n        },\n        {\n            type: Boolean,\n            name: 'help', optional: true, default: false,\n            description: 'Print this usage guide.'\n        }\n    ];    \n}\n\nfunction print_usage() {\n    console.log(require('command-line-usage')([\n        {\n            header: 'arrow2csv',\n            content: 'Print a CSV from an Arrow file'\n        },\n        {\n            header: 'Synopsis',\n            content: [\n                '$ arrow2csv {underline file.arrow} [{bold --schema} column_name ...]',\n                '$ arrow2csv [{bold --schema} column_name ...] [{bold --file} {underline file.arrow}]',\n                '$ arrow2csv {bold -s} column_1 {bold -s} column_2 [{bold -f} {underline file.arrow}]',\n                '$ arrow2csv [{bold --help}]'\n            ]\n        },\n        {\n            header: 'Options',\n            optionList: cliOpts()\n        },\n        {\n            header: 'Example',\n            content: [\n                '$ arrow2csv --schema foo baz --sep \" , \" -f simple.arrow',\n                '>   \"row_id\", \"foo: Int32\", \"baz: Utf8\"',\n                '>          0,            1,        \"aa\"',\n                '>          1,         null,        null',\n                '>          2,            3,        null',\n                '>          3,            4,       \"bbb\"',\n                '>          4,            5,      \"cccc\"',\n            ]\n        }\n    ]));\n    return 1;\n}\n"]}