diff options
author | Pearu Peterson <pearu.peterson@gmail.com> | 2006-10-11 11:25:58 +0000 |
---|---|---|
committer | Pearu Peterson <pearu.peterson@gmail.com> | 2006-10-11 11:25:58 +0000 |
commit | d6c1b18483f22c40abb5ae040476491b932ca6e0 (patch) | |
tree | 620cf0c5bab61e39076ae38694a4d87222d1a1ad /numpy/f2py/lib/py_wrap.py | |
parent | 92a25379d95b1b1448f41e601e08ab0239ea7181 (diff) | |
download | numpy-d6c1b18483f22c40abb5ae040476491b932ca6e0.tar.gz |
F2PY G3: Impl. scalar function support and tests.
Diffstat (limited to 'numpy/f2py/lib/py_wrap.py')
-rw-r--r-- | numpy/f2py/lib/py_wrap.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/numpy/f2py/lib/py_wrap.py b/numpy/f2py/lib/py_wrap.py index 695057746..a8db1bb20 100644 --- a/numpy/f2py/lib/py_wrap.py +++ b/numpy/f2py/lib/py_wrap.py @@ -78,7 +78,7 @@ PyMODINIT_FUNC init%(modulename)s(void) { self.list_names = ['header', 'typedef', 'extern', 'objdecl', 'c_code','capi_code','module_method','module_init', 'fortran_code'] - + self.isf90 = False return def add(self, block): @@ -87,12 +87,22 @@ PyMODINIT_FUNC init%(modulename)s(void) { self.add(moduleblock) #for name, subblock in block.a.external_subprogram.items(): # self.add(subblock) - elif isinstance(block, (Subroutine, Function)): + elif isinstance(block, Subroutine): PythonCAPISubProgram(self, block) + elif isinstance(block, Function): + fcode = block.subroutine_wrapper_code() + self.fortran_code_list.append(fcode) + wrapper_block = block.subroutine_wrapper() + PythonCAPISubProgram(self, wrapper_block) elif isinstance(block, Module): + self.isf90 = True for name,declblock in block.a.type_decls.items(): self.add(declblock) + for name,subblock in block.a.module_subprogram.items(): + self.add(subblock) elif isinstance(block, tuple([TypeDecl]+declaration_type_spec)): + if isinstance(block, (TypeDecl, TypeStmt)): + self.isf90 = True PythonCAPIType(self, block) else: raise NotImplementedError,`block.__class__.__name__` |