forked from M-Labs/artiq
protocols/pyon: fix formatting, support OrderedDict
This commit is contained in:
parent
23a84500a3
commit
2904b31e7e
|
@ -19,6 +19,7 @@ function call syntax to mark special data types.
|
||||||
|
|
||||||
import base64
|
import base64
|
||||||
from fractions import Fraction
|
from fractions import Fraction
|
||||||
|
from collections import OrderedDict
|
||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
|
@ -36,6 +37,7 @@ _encode_map = {
|
||||||
list: "list",
|
list: "list",
|
||||||
dict: "dict",
|
dict: "dict",
|
||||||
Fraction: "fraction",
|
Fraction: "fraction",
|
||||||
|
OrderedDict: "ordereddict",
|
||||||
numpy.ndarray: "nparray"
|
numpy.ndarray: "nparray"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,21 +115,24 @@ class _Encoder:
|
||||||
return r
|
return r
|
||||||
|
|
||||||
def encode_fraction(self, x):
|
def encode_fraction(self, x):
|
||||||
return "Fraction({}, {})".format(encode(x.numerator),
|
return "Fraction({}, {})".format(self.encode(x.numerator),
|
||||||
encode(x.denominator))
|
self.encode(x.denominator))
|
||||||
|
|
||||||
|
def encode_ordereddict(self, x):
|
||||||
|
return "OrderedDict("+ self.encode(list(x.items())) +")"
|
||||||
|
|
||||||
def encode_nparray(self, x):
|
def encode_nparray(self, x):
|
||||||
r = "nparray("
|
r = "nparray("
|
||||||
r += encode(x.shape) + ", "
|
r += self.encode(x.shape) + ", "
|
||||||
r += encode(str(x.dtype)) + ", "
|
r += self.encode(str(x.dtype)) + ", "
|
||||||
r += encode(base64.b64encode(x).decode())
|
r += self.encode(base64.b64encode(x).decode())
|
||||||
r += ")"
|
r += ")"
|
||||||
return r
|
return r
|
||||||
|
|
||||||
def encode_npscalar(self, x):
|
def encode_npscalar(self, x):
|
||||||
r = "npscalar("
|
r = "npscalar("
|
||||||
r += "\"" + type(x).__name__ + "\", "
|
r += "\"" + type(x).__name__ + "\", "
|
||||||
r += encode(base64.b64encode(x).decode())
|
r += self.encode(base64.b64encode(x).decode())
|
||||||
r += ")"
|
r += ")"
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
@ -164,6 +169,7 @@ _eval_dict = {
|
||||||
"true": True,
|
"true": True,
|
||||||
|
|
||||||
"Fraction": Fraction,
|
"Fraction": Fraction,
|
||||||
|
"OrderedDict": OrderedDict,
|
||||||
"nparray": _nparray,
|
"nparray": _nparray,
|
||||||
"npscalar": _npscalar
|
"npscalar": _npscalar
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue