forked from M-Labs/artiq
transforms/tools/value_to_ast: list support
This commit is contained in:
parent
f3b727b59d
commit
8af0301185
|
@ -50,6 +50,7 @@ class _Misc(AutoContext):
|
||||||
def build(self):
|
def build(self):
|
||||||
self.input = 84
|
self.input = 84
|
||||||
self.inhomogeneous_units = []
|
self.inhomogeneous_units = []
|
||||||
|
self.al = [1, 2, 3, 4, 5]
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def run(self):
|
def run(self):
|
||||||
|
@ -59,6 +60,9 @@ class _Misc(AutoContext):
|
||||||
self.decimal_fraction_d = int(decimal_fraction.denominator)
|
self.decimal_fraction_d = int(decimal_fraction.denominator)
|
||||||
self.inhomogeneous_units.append(Quantity(1000, "Hz"))
|
self.inhomogeneous_units.append(Quantity(1000, "Hz"))
|
||||||
self.inhomogeneous_units.append(Quantity(10, "s"))
|
self.inhomogeneous_units.append(Quantity(10, "s"))
|
||||||
|
self.acc = 0
|
||||||
|
for i in range(5):
|
||||||
|
self.acc += self.al[i]
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def dimension_error1(self):
|
def dimension_error1(self):
|
||||||
|
@ -185,6 +189,7 @@ class ExecutionCase(unittest.TestCase):
|
||||||
Fraction("1.2"))
|
Fraction("1.2"))
|
||||||
self.assertEqual(uut.inhomogeneous_units, [
|
self.assertEqual(uut.inhomogeneous_units, [
|
||||||
Quantity(1000, "Hz"), Quantity(10, "s")])
|
Quantity(1000, "Hz"), Quantity(10, "s")])
|
||||||
|
self.assertEqual(uut.acc, sum(uut.al))
|
||||||
with self.assertRaises(DimensionError):
|
with self.assertRaises(DimensionError):
|
||||||
uut.dimension_error1()
|
uut.dimension_error1()
|
||||||
with self.assertRaises(DimensionError):
|
with self.assertRaises(DimensionError):
|
||||||
|
|
|
@ -54,6 +54,9 @@ def value_to_ast(value):
|
||||||
keywords=[], starargs=None, kwargs=None)
|
keywords=[], starargs=None, kwargs=None)
|
||||||
elif isinstance(value, str):
|
elif isinstance(value, str):
|
||||||
return ast.Str(value)
|
return ast.Str(value)
|
||||||
|
elif isinstance(value, list):
|
||||||
|
elts = [value_to_ast(elt) for elt in value]
|
||||||
|
return ast.List(elts, ast.Load())
|
||||||
else:
|
else:
|
||||||
for kg in core_language.kernel_globals:
|
for kg in core_language.kernel_globals:
|
||||||
if value is getattr(core_language, kg):
|
if value is getattr(core_language, kg):
|
||||||
|
|
Loading…
Reference in New Issue