Modified:
/trunk/sympycore/basealgebra/tests/test_verbatim.py
/trunk/sympycore/basealgebra/verbatim.py
=======================================
--- /trunk/sympycore/basealgebra/tests/test_verbatim.py Sat Jan 31 02:52:12
2009
+++ /trunk/sympycore/basealgebra/tests/test_verbatim.py Tue Oct 18 10:33:50
2011
@@ -10,11 +10,12 @@
assert repr(a) == "Verbatim(SYMBOL, 'a')"
assert Verbatim.convert('1') == Verbatim(heads.NUMBER, 1)
- assert Verbatim.convert(1) == Verbatim(heads.SYMBOL, 1)
+ assert Verbatim.convert(1) == Verbatim(heads.NUMBER, 1)
assert Verbatim.convert(None) == Verbatim(heads.SPECIAL, None)
assert Verbatim.convert(Ellipsis) == Verbatim(heads.SPECIAL, Ellipsis)
assert Verbatim.convert(['a']) == Verbatim(heads.LIST,
(Verbatim(heads.SYMBOL, 'a'), )),`Verbatim.convert(['a'])`
assert Verbatim.convert(('a','1')) == Verbatim(heads.TUPLE,
(Verbatim(heads.SYMBOL, 'a'), Verbatim(heads.NUMBER,
1))),`Verbatim.convert(('a',1))`
+ assert Verbatim.convert({1:'2'}) == Verbatim(heads.DICT,
((Verbatim(heads.NUMBER, 1), Verbatim(heads.NUMBER,
2)),)),`Verbatim.convert({1:2})`
assert str(Verbatim(heads.SPECIAL, None))=='None'
assert str(Verbatim(heads.SPECIAL, Ellipsis)) in
['...', 'Ellipsis'],`str(Verbatim(heads.SPECIAL, Ellipsis))`
=======================================
--- /trunk/sympycore/basealgebra/verbatim.py Tue Oct 18 10:09:36 2011
+++ /trunk/sympycore/basealgebra/verbatim.py Tue Oct 18 10:33:50 2011
@@ -31,6 +31,7 @@
EllipsisType = type(Ellipsis)
special_types = (EllipsisType, type(None), type(NotImplemented))
special_objects = set([Ellipsis, None, NotImplemented])
+number_types = (int, long, float, complex)
containing_lst = set([IN, NOTIN])
@@ -109,6 +110,10 @@
return cls(LIST, tuple(map(cls.convert, obj)))
elif isinstance(obj, special_types):
return cls(SPECIAL, obj)
+ elif isinstance(obj, number_types):
+ return cls(NUMBER, obj)
+ elif isinstance(obj, dict):
+ return cls(DICT, tuple([(cls.convert(k), cls.convert(v)) for
k,v in obj.iteritems()]))
return Verbatim(SYMBOL, obj)
def as_verbatim(self):