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.

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.

Reply via email to