<p dir="ltr"><br>
On Feb 22, 2016 10:18 PM, "Ralf Gommers" <<a href="mailto:ralf.gommers@gmail.com">ralf.gommers@gmail.com</a>> wrote:<br>
><br>
><br>
><br>
> On Sun, Feb 21, 2016 at 2:41 PM, Sturla Molden <<a href="mailto:sturla.molden@gmail.com">sturla.molden@gmail.com</a>> wrote:<br>
>><br>
>> Ralf Gommers <<a href="mailto:ralf.gommers@gmail.com">ralf.gommers@gmail.com</a>> wrote:<br>
>> > Hi all,<br>
>> ><br>
>> > For a long time we've had both a Python (KDTree) and a Cython/C++ (cKDTree)<br>
>> > version of a k-d tree structure in scipy.spatial. The cKDTree version<br>
>> > reached feature-parity with KDTree in 0.12.0, and new features are being<br>
>> > added regularly now. So keeping the orders of magnitude slower pure Python<br>
>> > version seems to be a bit pointless - only adds to a maintenance burden and<br>
>> > to giving users an unnecessary choice to make.<br>
>> ><br>
>> > So proposal: remove the pure Python code and make KDTree an alias for<br>
>> > cKDTree. This can be done straight away.<br>
>> ><br>
>> > For the future it may also be desirable to get rid of the duplicate name.<br>
>> > The issue then is which one to keep. KDTree is nicer, but it would require<br>
>> > users who have picked the fast version now to change their code. So maybe<br>
>> > just deprecate one in documentation, but keep both names working?<br>
>><br>
>><br>
>> What about this?<br>
>><br>
>> 1. make KDTree an alias for cKDTree<br>
>> 2. make KDTreeNode an alias for cKDTreeNode<br>
>> 3. keep all names working<br>
>> 4. only have KDTree and KDTreeNode in the documentation<br>
>> 5. keep kdtree.py for the test suite, but do not export its contents<br>
><br>
><br>
> That sounds good to me. Keeping the Python version as a fancy test class may be useful.<br>
><br>
> The only thing that we should probably provide is a robust version comparator (anyway a good idea), so users can write this in a robust way:<br>
><br>
>      if scipy_version >= (0, 18, 0):<br>
>          KDTree()<br>
>      else:<br>
>          cKDTree()<br>
><br>
>  Ralf<br>
></p>
<p dir="ltr">If people want backwards compatibility, can't they just continue to use the cKDTree name?<br>
</p>