OK, I think it's something that happens when expand is called. Perhaps due to caching? If I put e = self.expand(mul=1) above the loop over self.symbols then I get two errors. I go to the releveant code in test pickling and print out the attribute and the values of a and b that are being compared as follows:
attr = getattr(a,i) if not hasattr(attr, "__call__"): assert hasattr(b,i), i got = getattr(b,i) if got != attr: print '-'*22 print 'attr=',i print type(a), a print type(b), b print attr print got assert got==attr Here is the output: attr= __dict__ <class 'sympy.printing.mathml.MathMLPrinter'> <sympy.printing.mathml.MathMLPrint er object at 0x0E382D90> <class 'sympy.printing.mathml.MathMLPrinter'> <sympy.printing.mathml.MathMLPrint er object at 0x0E72AC10> {'reverse': False, 'dom': <xml.dom.minidom.Document instance at 0x0E722DC8>, '_s ettings': {'order': None, 'encoding': 'utf-8'}, '_str': <type 'str'>, '_print_le vel': 0, 'order': None} {'reverse': False, 'dom': <xml.dom.minidom.Document instance at 0x0E7404E0>, '_s ettings': {'order': None, 'encoding': 'utf-8'}, '_print_level': 0, '_str': <type 'str'>, 'order': None} The dictionaries have the same entries but the xml instance is at a different location now and the print_level and str entries switched places. attr= _mhash gamma gamma(1 + x) gamma gamma(1 + x) None 777405089 Here the attribute _mhash is None or that other number for the gamma object. Any ideas? -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sy...@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.