[SciPy-Dev] Changing return types in a public API?

Ralf Gommers ralf.gommers at gmail.com
Tue Aug 4 17:58:27 EDT 2020


On Tue, Aug 4, 2020 at 6:03 PM Eric Larson <larson.eric.d at gmail.com> wrote:

> First, KDTree returns NumPy scalars everywhere because the results come
>> from indexing NumPy arrays. Whereas, cKDTree returns python ints wherever
>> possible. Is it reasonable for an API to change from returning NumPy
>> scalars to python int? The NumPy scalars do mimic the array interface to
>> some extent so there is a small interface incompatibility. However, the
>> documentation usually just says a function returns int or float, not NumPy
>> scalar specifically.
>>
>> Secondly, KDTree uses `dtype=int` everywhere which results in 64-bit
>> integers on linux but 32-bit integers on windows. Ideally, I'd want to
>> return 64-bit integers (or at least np.intp) on all platforms for
>> consistency and to avoid issues with integer overflow. Again, this is
>> behaviour that isn't documented but code could still be relying on
>> implicitly.
>>
>
> Changing to a NumPy int return type seems fine in this case, especially
> since it can be considered a bugfix (32-bit int problems seem to come up a
> lot across SciPy for Windows users).
>

I agree, seems okay to make this change

Cheers,
Ralf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20200804/2d6eb65a/attachment.html>


More information about the SciPy-Dev mailing list