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

Eric Larson larson.eric.d at gmail.com
Tue Aug 4 13:02:49 EDT 2020


>
> 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).

My 2c,
Eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20200804/2099937a/attachment.html>


More information about the SciPy-Dev mailing list