diff --git a/artiq/protocols/pyon.py b/artiq/protocols/pyon.py index 092e46b52..0d48d6749 100644 --- a/artiq/protocols/pyon.py +++ b/artiq/protocols/pyon.py @@ -188,6 +188,7 @@ _eval_dict = { "false": False, "true": True, "slice": slice, + "nan": numpy.nan, "Fraction": Fraction, "OrderedDict": OrderedDict, diff --git a/artiq/test/test_serialization.py b/artiq/test/test_serialization.py index e54234e00..803e42cde 100644 --- a/artiq/test/test_serialization.py +++ b/artiq/test/test_serialization.py @@ -26,6 +26,8 @@ class PYON(unittest.TestCase): with self.subTest(enc=enc): self.assertEqual(pyon.decode(enc(_pyon_test_object)), _pyon_test_object) + # NaNs don't compare equal, so test separately. + assert np.isnan(pyon.decode(enc(np.nan))) def test_encdec_array(self): orig = {k: (np.array(v), np.array([v]))