[Numpy-discussion] [review] py3k_bootstrap branch

Bruce Southey bsouthey at gmail.com
Tue May 5 11:26:04 EDT 2009


David Cournapeau wrote:
> Hi,
>
> I spent some more time on making numpy.distutils runnable under python
> 3. I finally made up to the point where it breaks at C code
> compilation, so we can start working on the hard part. The branch is
> there for review
>
> http://github.com/cournape/numpy/commits/py3k_bootstrap
>
> The code is quite ugly to be honest, but I have not found a better
> way; suggestions are welcomed. The biggest pain is by far exception
> catching (you can't do except IOError, e in python 3), and then print.
> Most other things can be handled by careful application of 2to3 with
> the fixers which keep python2 compatibility (print is unfortunately
> not one of them). There are also a few python 3.* bugs in distutils (I
> guess few C-based extensions made it for python 3 already).
>
> The rationale for making numpy.distutils runnable under both python2
> and python3 (instead of just applying 2to3 on it):
>  - it enables us to bootstrap our build process through the distutils
> 2to3 command (which is supposed to convert code to python 3 from
> python 2 sources on the fly).
>  - The few informations I found on non trivial port all made sure
> their setup.py was python 2 and 3 compatible - which means
> numpy.distutils for us.
>  - 2to3 is very slow (takes 5 minutes for me on numpy), so having to
> apply it every time from pristine source for python 3 support would be
> very painful IMHO.
>
> cheers,
>
> David
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>   
Hi,
This is really impressive!

I agree that there should only be one source for Python 2 and Python 3. 
Although it does mean that any new code must be compatible with both 
Python 2.4+ and Python 3.+.

I have only been browsing some of the code and was wondering about the 
usage of print. In many cases it seems that the print statements are 
perhaps warnings. If so, should the print statements be changed to warnings?

For example, I think, in setup.py 663d9e7, this clearly should be a warning.
http://github.com/cournape/numpy/commit/663d9e7e29bfea0f7adc8de5ff0e9d83264c3962

print(" --- Could not run svn info --- ")




Bruce



More information about the NumPy-Discussion mailing list