mirror of
https://github.com/Doodle3D/Doodle3D-Slicer.git
synced 2024-11-30 09:24:57 +01:00
57 lines
1.3 KiB
Python
Executable File
57 lines
1.3 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
__doc__ = '''
|
|
Convert a json file to msgpack.
|
|
|
|
If fed only an input file the converted will write out a .pack file
|
|
of the same base name in the same directory
|
|
$ json2msgpack.py -i foo.json
|
|
foo.json > foo.pack
|
|
|
|
Specify an output file path
|
|
$ json2msgpack.py -i foo.json -o /bar/tmp/bar.pack
|
|
foo.json > /bar/tmp/bar.pack
|
|
|
|
Dependencies:
|
|
https://github.com/msgpack/msgpack-python
|
|
'''
|
|
|
|
import os
|
|
import sys
|
|
import json
|
|
import argparse
|
|
|
|
sys.path.append(os.path.dirname(os.path.realpath(__file__)))
|
|
|
|
import msgpack
|
|
|
|
EXT = '.pack'
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('-i', '--infile', required=True,
|
|
help='Input json file to convert to msgpack')
|
|
parser.add_argument('-o', '--outfile',
|
|
help=('Optional output. If not specified the .pack file '\
|
|
'will write to the same director as the input file.'))
|
|
args = parser.parse_args()
|
|
convert(args.infile, args.outfile)
|
|
|
|
def convert(infile, outfile):
|
|
if not outfile:
|
|
ext = infile.split('.')[-1]
|
|
outfile = '%s%s' % (infile[:-len(ext)-1], EXT)
|
|
|
|
print('%s > %s' % (infile, outfile))
|
|
|
|
print('reading in JSON')
|
|
with open(infile) as op:
|
|
data = json.load(op)
|
|
|
|
print('writing to msgpack')
|
|
with open(outfile, 'wb') as op:
|
|
msgpack.dump(data, op)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|