Hi,

On Mon, Jan 7, 2013 at 8:50 PM, Andrew Collette
<andrew.colle...@gmail.com> wrote:
> Hi Matthew,
>
>> Just to be clear, you mean you might have something like this?
>>
>> def my_func('array_name', some_offset):
>>     arr = load_somehow('array_name') # dtype hitherto unknown
>>     return arr + some_offset
>>
>> ?  And the problem is that it fails late?   Is it really better that
>> something bad happens for the addition than that it raises an error?
>>
>> You'll also often get an error when trying to add structured dtypes,
>> but maybe you cant return these from a 'load'?
>
> In this specific case I would like to just use "+" and say "We add
> your offset using the NumPy rules," which is a problem if there are no
> NumPy rules for addition in the specific case where some_offset
> happens to be a scalar and not an array, and also slightly larger than
> arr.dtype can hold. I personally prefer upcasting to some reasonable
> type big enough to hold some_offset, as I described earlier, although
> that's not crucial.
>
> But I think we're getting a little caught up in the details of this
> example.  My basic point is: yes, people should be careful to check
> dtypes, etc. where it's important to their application; but people who
> want to rely on some reasonable NumPy-supplied default behavior should
> be excused from doing so.

For myself, I find detailed examples helpful, because I find it
difficult to think about more general rules without applying them to
practical cases.

In this case I think you'd probably agree it would be reasonable to
raise an error - all other things being equal?

Can you think of another practical case where it would be reasonably
clear that it was the wrong thing to do?

Cheers,

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

Reply via email to