On Fr, 2014-02-28 at 09:10 -0600, Anthony Scopatz wrote:
> Thanks All, 
> 
> 
> I am sorry I missed the issue.  (I still can't seem to find it,
> actually.)  I agree that there would be minimal overhead here and I
> bet that would be easy to show.  I really look forward to seeing this
> get in!
> 

Best way to make sure it happens soon is to open a pull request about
it ;).

- Sebastian

> 
> Be Well
> Anthony
> 
> 
> On Fri, Feb 28, 2014 at 4:59 AM, Robert Kern <robert.k...@gmail.com>
> wrote:
>         On Fri, Feb 28, 2014 at 9:03 AM, Sebastian Berg
>         <sebast...@sipsolutions.net> wrote:
>         > On Fr, 2014-02-28 at 08:47 +0000, Sturla Molden wrote:
>         >> Anthony Scopatz <scop...@gmail.com> wrote:
>         >> > Hello All,
>         >> >
>         >> > The semantics of this seem quite insane to me:
>         >> >
>         >> > In [1]: import numpy as np
>         >> >
>         >> > In [2]: import collections
>         >> >
>         >> > In [4]: isinstance(np.arange(5), collections.Sequence)
>         Out[4]: False
>         >> >
>         >> > In [6]: np.version.full_version
>         >> > Out[6]: '1.9.0.dev-eb40f65'
>         >> >
>         >> > Is there any possibility that ndarray could inherit (in
>         the last place)
>         >> > from collections.Sequence?  It seems like this would only
>         be a 1 - 5 line
>         >> > fix somewhere.  I just spent a few hours tracking down a
>         bug related to
>         >> > this.  Thanks for considering!
>         >>
>         >> This should be very easy to do. But what would this give
>         us, and what would
>         >> the extra overhead be? collections.Sequence is basically an
>         abstract base
>         >> class. If this just slows down ndarray it would be highly
>         undesirable. Note
>         >> that ndarray has a very specific use (numerical computing).
>         If inheriting
>         >> collections.Sequence has no benefit for numerical computing
>         it is just
>         >> wasteful overhead. In this resepect ndarray is very
>         different for other
>         >> Python containers in that they have no specific use and
>         computational
>         >> performance is not a big issue.
>         >
>         > There is no overhead for the array itself.
>         
>         
>         Right, since it's an abstract base class, we don't need to
>         subclass
>         from Sequence, just register ndarray with it.
>         
>         > The biggest concern is about
>         > corner cases like 0-d arrays.
>         
>         
>         I think it's reasonable to allow it. The pre-ABC way to check
>         this
>         kind of thing also gives a false positive on 0-d arrays, so
>         we're not
>         regressing.
>         
>         [~]
>         |1> import operator
>         
>         [~]
>         |2> operator.isSequenceType(np.array(5))
>         True
>         
>         > That said we probably need to do it anyway
>         > because the sequence check like that seems standard in
>         python 3. There
>         > is an issue about it open on github with some discussion
>         about this
>         > issue.
>         
>         
>         https://github.com/numpy/numpy/issues/2776
>         
>         Also, while we're doing this, we should also register the
>         scalar types
>         with their appropriate ABCs:
>         
>           numbers.Real.register(np.floating)
>           numbers.Integral.register(np.integer)
>           numbers.Complex.register(np.complexfloating)
>         
>         --
>         Robert Kern
>         
>         On Fri, Feb 28, 2014 at 9:03 AM, Sebastian Berg
>         <sebast...@sipsolutions.net> wrote:
>         > On Fr, 2014-02-28 at 08:47 +0000, Sturla Molden wrote:
>         >> Anthony Scopatz <scop...@gmail.com> wrote:
>         >> > Hello All,
>         >> >
>         >> > The semantics of this seem quite insane to me:
>         >> >
>         >> > In [1]: import numpy as np
>         >> >
>         >> > In [2]: import collections
>         >> >
>         >> > In [4]: isinstance(np.arange(5), collections.Sequence)
>         Out[4]: False
>         >> >
>         >> > In [6]: np.version.full_version
>         >> > Out[6]: '1.9.0.dev-eb40f65'
>         >> >
>         >> > Is there any possibility that ndarray could inherit (in
>         the last place)
>         >> > from collections.Sequence?  It seems like this would only
>         be a 1 - 5 line
>         >> > fix somewhere.  I just spent a few hours tracking down a
>         bug related to
>         >> > this.  Thanks for considering!
>         >> >
>         >>
>         >> This should be very easy to do. But what would this give
>         us, and what would
>         >> the extra overhead be? collections.Sequence is basically an
>         abstract base
>         >> class. If this just slows down ndarray it would be highly
>         undesirable. Note
>         >> that ndarray has a very specific use (numerical computing).
>         If inheriting
>         >> collections.Sequence has no benefit for numerical computing
>         it is just
>         >> wasteful overhead. In this resepect ndarray is very
>         different for other
>         >> Python containers in that they have no specific use and
>         computational
>         >> performance is not a big issue.
>         >>
>         >
>         > There is no overhead for the array itself. The biggest
>         concern is about
>         > corner cases like 0-d arrays. That said we probably need to
>         do it anyway
>         > because the sequence check like that seems standard in
>         python 3. There
>         > is an issue about it open on github with some discussion
>         about this
>         > issue.
>         >
>         > - Sebastian
>         >
>         >
>         >> Sturla
>         >>
>         >> _______________________________________________
>         >> NumPy-Discussion mailing list
>         >> NumPy-Discussion@scipy.org
>         >> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>         >>
>         >
>         >
>         > _______________________________________________
>         > NumPy-Discussion mailing list
>         > NumPy-Discussion@scipy.org
>         > http://mail.scipy.org/mailman/listinfo/numpy-discussion
>         
>         
>         
>         
>         --
>         Robert Kern
>         _______________________________________________
>         NumPy-Discussion mailing list
>         NumPy-Discussion@scipy.org
>         http://mail.scipy.org/mailman/listinfo/numpy-discussion
>         
> 
> 
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion


_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to