[SciPy-dev] NumPy f2py GSOC project

Dag Sverre Seljebotn dagss@student.matnat.uio...
Thu Mar 26 17:47:38 CDT 2009

Charles R Harris wrote:
> On Thu, Mar 26, 2009 at 2:44 PM, Kurt Smith <kwmsmith@gmail.com 
> <mailto:kwmsmith@gmail.com>> wrote:
>     2009/3/26 ross smith <rjsm@umich.edu <mailto:rjsm@umich.edu>>:
>      > When I looked at that one,  It seemed to me like they are trying
>     to use it
>      > to bind fortran and C together with only a thin, fairly
>     transparent python
>      > layer in the middle.
>     Actually, it's more like binding Fortran to Python/Cython and
>     enhancing the ability to pass numpy arrays and python buffer objects
>     to external fortran code.  The "f2c" capability (with fortran 2003 ISO
>     C bindings) is just gravy ;-)  The "python layer" will likely have to
>     do a good bit of work to make the passing of arrays seamless to the
>     user and minimize the copying of arrays.
> I'm a bit confused as to how these two projects relate each other. 
> Should they be coordinated or can they stand separately? What would be 
> the upshot? If f2py is updated, then presumably it could act as a drop 
> in replacement for the current f2py. Would the cython project have that 
> same effect?

Kurt's project/Cython-Fortran:
  - Only uses the parser from f2py, but may provide some 
improvements/patches for that part. There's a good chance 3rd gen f2py 
will be chosen in which case there is probably no overlap codewise (if 
Ross' project is for 2nd gen f2py).

  - A drop-in replacement for f2py is not a goal. It could be for 
projects where no changes are made to generated .pyf files, but will not 
become one for custom-written .pyf files

  - Will facilitate wrapping Fortran modules using Cython in the same 
way one uses Cython for C (i.e. if non-trivial wrapping is needed one 
writes Cython code rather than a modify a .pyf file).

If Ross' project involves work on the same parser (likely this means the 
3rd gen f2py) then some coordination would be in order in the parser; 
this could rather trivially be resolved. Otherwise there doesn't seem to 
be any overlap.

As far as I can gather, that is. But I must admit that I don't really 
understand Ross' project. What part will be ported to Cython? As I 
understand it, a) f2py itself is entirely written in Python already, b) 
it generates a C module much like Cython does, which must currently be 
kept Py2 because of the NumPy dependency.

If the plan is to switch to a Cython backend, so that f2py starts 
*generating* Cython code, then there's somewhat more overlap in goals. 
(But that would break existing .pyf files as they can contain free-form 
C code?)

Dag Sverre

More information about the Scipy-dev mailing list