[Numpy-discussion] Proposal to accept NEP-18, __array_function__ protocol
einstein.edison at gmail.com
einstein.edison at gmail.com
Fri Aug 24 18:54:55 EDT 2018
> I’m On 25. Aug 2018, at 00:13, Nathaniel Smith <njs at pobox.com> wrote:
>
>> On Fri, Aug 24, 2018 at 1:46 PM, Stephan Hoyer <shoyer at gmail.com> wrote:
>> On Fri, Aug 24, 2018 at 1:36 AM Hameer Abbasi <einstein.edison at gmail.com>
>> wrote:
>>>
>>>
>>>> On Fri, Aug 24, 2018 at 9:38 AM Nathaniel Smith <njs at pobox.com> wrote:
>>>>
>>>>> On Thu, Aug 23, 2018 at 9:02 AM, <einstein.edison at gmail.com> wrote:
>>>>> I might add that most duck array authors are highly unlikely to be
>>>>> newcomers
>>>>> to the Python space. We should just put a big warning there while
>>>>> enabling
>>>>> and that’ll be enough to scare away most devs from doing it by default.
>>>>
>>>> That's a reasonable idea... a Big Obnoxious Warning(tm) when it's
>>>> enabled, or on first use, would achieve a lot of the same purpose.
>>>> E.g.
>>>>
>>>> if this_is_the_first_array_function_usage():
>>>> sys.stderr.write(
>>>> "WARNING: this program uses NumPy's experimental
>>>> '__array_function__' feature.\n"
>>>> "It may change or be removed without warning, which might
>>>> break this program.\n"
>>>> "For details see
>>>> http://www.numpy.org/neps/nep-0018-array-function-protocol.html\n"
>>>> )
>>>>
>>>> -n
>>>>
>>>
>>> I was thinking of a FutureWarning... That's essentially what it's for.
>>> Writing to stderr looks un-pythonic to me.
>>
>>
>> Issuing a FutureWarning seems roughly appropriate here. The Python 3.7 docs
>> write:
>> "Base category for warnings about deprecated features when those warnings
>> are intended for end users of applications that are written in Python."
>>
>> Writing to sys.stderr directly is generally considered poor practice for a
>> Python libraries.
>>
>> In my experience FutureWarning does a good job of satisfying the goals of
>> being a "Big Obnoxious Warning" while still being silence-able and testable
>> with standard tools.
>
> Yeah, the reason warnings are normally recommended is because
> normally, you want to make it easy to silence. But this is the rare
> case where I didn't want to make it easy to silence, so I didn't
> suggest using a warning :-).
I really doubt anyone is going to silence a FutureWarning and then come complaining that a feature was removed.
>
> Calling warnings.warn (or the C equivalent) is also very expensive,
> even if the warning ultimately isn't displayed. I guess we could do
> our own tracking of whether we've displayed the warning yet, and only
> even attempt to issue it once, but that partially defeats the purpose
> of using warnings in the first place.
How about calling it at enable-time once? That’s why I suggested that in the first place.
>
> -n
>
> --
> Nathaniel J. Smith -- https://vorpus.org
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
Best regards,
Hameer Abbasi
Sent from my iPhone
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20180825/ebbd2122/attachment.html>
More information about the NumPy-Discussion
mailing list