mirror of
https://github.com/Doodle3D/Doodle3D-Slicer.git
synced 2024-11-17 03:27:57 +01:00
57 lines
1.3 KiB
Python
57 lines
1.3 KiB
Python
|
#!/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()
|