On Sunday, January 10, 2016 at 9:26:53 AM UTC-8, Daniel Krenn wrote: > > On 2016-01-10 15:18, Vincent Delecroix wrote: > > Would better to post to sage-support. > > F'up set > > > What about doing the test in the console? You can also change the > > doctest to > > > > m2.__repr__() > > > > that would show the traceback. > > This shows that the problem is += in > s += self.separator.join(E) > with > TypeError: unsupported operand type(s) for +=: > 'NoneType' and NoneType' > > The weird thing is, that when I put an > print E > before that line, it magically works. >
Does "print E" initialize some variables or do anything relevant? John > > Daniel > > > On 10/01/16 08:16, Daniel Krenn wrote: > >> I am trying to rewrite some code and have troubles with the following > >> code: > >> > >> cdef str s = self.name > >> if s: > >> s += ' ' > >> s += self.opening_delimiter > >> cdef list E = list('{!r}'.format(self.get(n)) > >> for n in xrange(min(num_elts, > self.preview))) > >> if num_elts >= self.preview: > >> # PROBLEM/BUG with the following code line > >> # (run doctests of this file to see) > >> E.append(self.more) # <<<<<<<<<<<<<<< here > >> s += self.separator.join(E) > >> s += self.closing_delimiter > >> return s > >> > >> With the marked line, many doctests fail; like this: > >> > >> Failed example: > >> m2 > >> Expected: > >> lazy list [8, 10, 12, ...] > >> Got: > >> <repr(<sage.data_structures.lazy_list.lazy_list_abstract at > >> 0x7f684d746d40>) failed: TypeError: unsupported operand type(s) for +=: > >> 'NoneType' and 'NoneType'> > >> > >> Any ideas what goes wrong? (I've debugged now for over one hour and > have > >> no glue (but I am no Cython expert)). > >> I've also tried without the "cdef str" and "cdef list" above. The > >> strings self.* are defined in the corresponding .pxd > >> > >> A branch with the code is on trac: u/dkrenn/cython-str-problem-append > >> file sage/data_structures/lazy_list.pyx, method __repr__, line 502 > >> > >> Best Daniel > >> > > > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.