Thanks for the examplanation. As we never supported python 2.3, I wonder
why they got their. Maybe someone tryed to support python 2.3? Anyway, it
is now changed.


On Tue, Apr 1, 2014 at 11:37 AM, abergeron <notifications@github.com> wrote:

> In theano/sandbox/cuda/basic_ops.py:
>
> >          for i, b in enumerate(input_broadcastable):
> >              if i not in new_order:
> > -                # we want to drop this dimension because it's not a
> > -                # value in new_order
> > -                if b == 1:  # 1 aka True
> > -                    self.drop.append(i)
> > -                else:
> > +                if b != 1:
>
> Before python 2.3 (so it was actually not needed before), True and False
> did not exist and people were using 1 and 0 instead, sometimes assigning
> them to 'True' and 'False'.
>
> Then, when they were added, some compatibility goo was added to make sure
> they compare equal to 1 and 0 to work with previous code.
>
> If we ever want to move to python 3, we will have to drop all those
> equivalences though, and it's better to do it piece by piece since it is
> fully compatible with 2.6+.
>
> --
> Reply to this email directly or view it on GitHub<https://github.com/Theano/Theano/pull/1789/files#r11165791>
> .
>