<div dir="ltr">Ondrej's blog is pretty scary :-)<div><br></div><div>It re-emphasizes my thought that this is not a step to be taken lightly. It will take time to get a code base working on both 2.x and 3.x and we need to do it while continuing to support 2.x well. We also need to figure out what the minimum x in 2.x is. It sounds like it should be at least 6 but possibly 7 or higher.</div>

<div><br></div><div>-berk</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 6, 2014 at 1:33 PM, Matthew Brett <span dir="ltr"><<a href="mailto:matthew.brett@gmail.com" target="_blank">matthew.brett@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<div><div class="h5"><br>
On Wed, Aug 6, 2014 at 4:25 AM, Berk Geveci <<a href="mailto:berk.geveci@kitware.com">berk.geveci@kitware.com</a>> wrote:<br>
> Hi David,<br>
><br>
> Sounds great. I am glad that you are hooked on the wrappers :-) You have<br>
> done a lot of wonderful work on them and as a big Python fan I am very<br>
> grateful.<br>
><br>
> PS: Sorry for the late reply. I was on vacation.<br>
><br>
> Best,<br>
> -berk<br>
><br>
><br>
> On Fri, Aug 1, 2014 at 11:30 AM, David Gobbi <<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>> wrote:<br>
>><br>
>> Hi Berk,<br>
>><br>
>> Thanks for the insight into how this will impact your customers.  I wasn't<br>
>> suggesting the the conversion of the tests be done now, or even before<br>
>> the core.  And, yes, you're probably right that 2-to-3 is the way to go<br>
>> until<br>
>> the major sites are ready to switch to python3.<br>
>><br>
>> For myself, there are two major wrapper-related tasks that have far higher<br>
>> priority than py3k:<br>
>><br>
>> 1) wrap enum types (so that enum types can be used as method args),<br>
>> and also wrap namespaces, since these are blockers for some code that<br>
>> I want to wrap.<br>
>><br>
>> 2) eliminate the "PyVTKClass" type, which relies on an obsolete metaclass<br>
>> mechanism (search for "Don Beaudry hack" if you're curious) and instead<br>
>> use python's unified type/class extension system.<br>
>><br>
>> For #2, I'll see if I can put up a wiki page with more detail.  But I<br>
>> don't have<br>
>> time to move forward on either 1 or 2 until the fall.  And you aren't<br>
>> going<br>
>> to see me pushing for py3k, because I still have no need for it myself.  I<br>
>> just want to be involved when the conversion occurs, because wrapper<br>
>> stuff is fun.<br>
<br>
</div></div>Just for reference, nearly all of the big scientific python projects<br>
(numpy, scipy, matplotlib, ipython, sympy) have switched to using a<br>
common code-base for Python 2 / Python 3.  [1, 2].  This now seems to<br>
be the standard Python advice if you want to keep Python 2<br>
compatibility [3] (in days gone past, the standard advice was to use<br>
2to3).  The numerical Python community is likely to start switching<br>
over to standardizing on Python 3 fairly soon (over the next couple of<br>
years), and all standard numerical packages now have Python 3 support.<br>
In general our experience has been that when we used a compatibility<br>
file such as that provided by the 'six' [6] project, and with good<br>
tests, porting to a Python 2 / 3 compatible code base was a lot easier<br>
than we had feared.<br>
<br>
Cheers,<br>
<br>
Matthew<br>
<br>
[1] <a href="http://ondrejcertik.blogspot.com/2013/08/how-to-support-both-python-2-and-3.html" target="_blank">http://ondrejcertik.blogspot.com/2013/08/how-to-support-both-python-2-and-3.html</a><br>
[2] <a href="http://asmeurersympy.wordpress.com/2013/08/22/python-3-single-codebase-vs-2to3" target="_blank">http://asmeurersympy.wordpress.com/2013/08/22/python-3-single-codebase-vs-2to3</a><br>
[3] <a href="https://docs.python.org/3/howto/pyporting.html" target="_blank">https://docs.python.org/3/howto/pyporting.html</a><br>
[6] <a href="https://pypi.python.org/pypi/six" target="_blank">https://pypi.python.org/pypi/six</a><br>
</blockquote></div><br></div>