30 lines
668 B
Python
Executable File
30 lines
668 B
Python
Executable File
#!/usr/bin/env python
|
|
import capnp
|
|
import os
|
|
capnp.add_import_hook([os.getcwd(), "/usr/local/include/"]) # change this to be auto-detected?
|
|
|
|
import test_capnp
|
|
|
|
import sys
|
|
|
|
def format_decode(val):
|
|
val = val.replace('\n ', '')
|
|
val = val.replace('( ', '(')
|
|
val = val.replace(' )', ')')
|
|
|
|
return val
|
|
|
|
def decode(name):
|
|
print format_decode(str(getattr(test_capnp, name)))
|
|
|
|
def encode(name):
|
|
val = getattr(test_capnp, name)
|
|
class_name = name[0].upper() + name[1:]
|
|
message = getattr(test_capnp, class_name).from_dict(val.to_dict())
|
|
print message.to_bytes()
|
|
|
|
if sys.argv[1] == 'decode':
|
|
decode(sys.argv[2])
|
|
else:
|
|
encode(sys.argv[2])
|